adaptives Editfeld möglich?
adaptives Editfeld möglich?
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?
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?
Re: adaptives Editfeld möglich?
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;
Re: adaptives Editfeld möglich?
aber mit dazu lernt es trotzdem nicht oder?
Re: adaptives Editfeld möglich?
Dazu musst du nur in OnEditingDone den aktuell eingegebenen String in die Items der Combobox aufnehmen. Vorher prüfen, ob er schon vorhanden ist.
Re: adaptives Editfeld möglich?
übernächste woche probier ich mal mein glück
Re: adaptives Editfeld möglich?
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....
Re: adaptives Editfeld möglich?
Code: Alles auswählen
Combobox1.Items.SaveToFile('d:\test.txt');
Re: adaptives Editfeld möglich?
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
Re: adaptives Editfeld möglich?
habe jetzt doch nocht mal eine frage zu loadfromfile
wie lade ich die datei mit UTF8? weil der zeigt mir kein äöü an
wie lade ich die datei mit UTF8? weil der zeigt mir kein äöü an
Re: adaptives Editfeld möglich?
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.
Re: adaptives Editfeld möglich?
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
Re: adaptives Editfeld möglich?
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
Re: adaptives Editfeld möglich?
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).
Ö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).
Re: adaptives Editfeld möglich?
hast eine pn