adaptives Editfeld möglich?

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Aphadias
Beiträge: 124
Registriert: Mi 28. Okt 2015, 18:28

adaptives Editfeld möglich?

Beitrag von Aphadias »

moin

wie ich meine Software eben getestet habe zum X. male ist mir etwas eingefallen. Könnte man das Editfeld nicht irgend wie schlauer machen? Bei HTML PHP Java und co. kann man es ja so machen, das wenn man anfängt etwas zu schreiben das er gleich eine Vorauswahl zeigt die man mit Leertaste oder so bestätigen kann. So das evtl das Editfeld aus einer Textdatei vllt ließt und wenn er es nicht kennt das Wort dort rein schreibt.

Gibt es sowas bei Lazarus?

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: adaptives Editfeld möglich?

Beitrag von wp_xyz »

Natürlich. Nimm eine Combobox, und schreibe die Nachschlagewörter in die Items. Setze AutoComplete auf true. Wenn noch Style auf csSimple steht, verschwindet der Dropdown-Button, und TCombobox ist visuell von TEdit nicht zu unterscheiden. Einen Haken hat die Sache allerdings: Wenn man Pfeil auf/ab drückt, scrollt die Combobox zum nächsten Eintrag in der Liste. Eigentlich, meine ich, müsste das mit ArrowKeysTraverse=false unterdrückt sein, aber das funktioniert nicht. Also bleibt nur, im OnKeyDown the Cursortasten abzufangen und zu schlucken:

Code: Alles auswählen

uses
  LCLType;
 
procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key = VK_DOWN) or (Key = VK_UP) then
    Key := 0;
end;

Aphadias
Beiträge: 124
Registriert: Mi 28. Okt 2015, 18:28

Re: adaptives Editfeld möglich?

Beitrag von Aphadias »

aber mit dazu lernt es trotzdem nicht oder?

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: adaptives Editfeld möglich?

Beitrag von wp_xyz »

Dazu musst du nur in OnEditingDone den aktuell eingegebenen String in die Items der Combobox aufnehmen. Vorher prüfen, ob er schon vorhanden ist.

Aphadias
Beiträge: 124
Registriert: Mi 28. Okt 2015, 18:28

Re: adaptives Editfeld möglich?

Beitrag von Aphadias »

übernächste woche probier ich mal mein glück

Aphadias
Beiträge: 124
Registriert: Mi 28. Okt 2015, 18:28

Re: adaptives Editfeld möglich?

Beitrag von Aphadias »

Ich probiere jetzt gerade ein bisschen mal rum... kann ich die Itemslist irgend wie in eine Textdatei auslagern? Weil ich habe mehrere Comboboxen an verschiedene stellen die alle das gleiche lernen sollen....

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: adaptives Editfeld möglich?

Beitrag von wp_xyz »

Code: Alles auswählen

  Combobox1.Items.SaveToFile('d:\test.txt');    

Aphadias
Beiträge: 124
Registriert: Mi 28. Okt 2015, 18:28

Re: adaptives Editfeld möglich?

Beitrag von Aphadias »

wp_xyz hat geschrieben:

Code: Alles auswählen

  Combobox1.Items.SaveToFile('d:\test.txt');    


danke schön hat zwar so nicht geklappt aber durch kurzes nachdenken habe ich einfach noch ein Combobox.Items.Add(Combobox1.text); davor gehangen :D

Aphadias
Beiträge: 124
Registriert: Mi 28. Okt 2015, 18:28

Re: adaptives Editfeld möglich?

Beitrag von Aphadias »

habe jetzt doch nocht mal eine frage zu loadfromfile

wie lade ich die datei mit UTF8? weil der zeigt mir kein äöü an :cry:

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: adaptives Editfeld möglich?

Beitrag von wp_xyz »

Leider kann ich hier nichts mehr anhängen, aber mein Demo würde zeigen, dass eine Combobox, der direkt im Objektinspektor Umlaute hinzugefügt worden sind, diese korrekt in die Datei speichert. Wenn das bei dir nicht funktioniert, sind diese bereits vorher verloren gegangen. Woher stammen letztendlich die Daten, die die Combobox anzeigen soll. Ich erinnere mich, da war etwas mit von Datei einlesen. Ist die Datei UTF8-kodiert? Wenn nicht, musst du dafür sorgen, dass gleich beim Einlesen eine Konvertierung nach UTF8 erfolgt - wenn du das nicht machst, schleppst du ein permanentes Problem mit, das immer wieder Überraschungen machen kann.

Aphadias
Beiträge: 124
Registriert: Mi 28. Okt 2015, 18:28

Re: adaptives Editfeld möglich?

Beitrag von Aphadias »

beim abspeichern macht er äöü aber beim auslesen nicht... es ist eine normale txt datei... ich weiß nicht wie ich dort das format ändern kann... deswegen bräuchte ich nur zum auslesen bzw anzeigen ein utf8 format oder so

Aphadias
Beiträge: 124
Registriert: Mi 28. Okt 2015, 18:28

Re: adaptives Editfeld möglich?

Beitrag von Aphadias »

beim abspeichern macht er äöü aber beim auslesen nicht... es ist eine normale txt datei... ich weiß nicht wie ich dort das format ändern kann... deswegen bräuchte ich nur zum auslesen bzw anzeigen ein utf8 format oder so

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: adaptives Editfeld möglich?

Beitrag von wp_xyz »

Redest du von der Datei, die von der Combobox per SaveToFile erzeugt worden ist? Die meine ich nicht, ich meine die Datei, aus der letztendlich die Comboboxeinträge eingelesen worden sind (sofern ich da nicht mit einem anderen Thread durcheinanderkomme).

Öffne die Datei mit einem Hex-Editor. Stehen dort, wo sich das 'ä', ö', 'ü' befindet, 1 oder 2 Bytes? Bei 1 Byte ist es eine ANSI-Codierung (wahrscheinlich Codepage 1252), bei zwei UTF8. Folgt nach jedem Zeichen ein Null-Byte? Dann ist es UTF16. Wenn du's nicht hinkriegst, dann lade die Datei irgendwo auf einen Online-Speicher hoch und poste den Link (leider kann man hier keine Attachments mehr anhängen).

Aphadias
Beiträge: 124
Registriert: Mi 28. Okt 2015, 18:28

Re: adaptives Editfeld möglich?

Beitrag von Aphadias »

hast eine pn

Antworten