adaptives Editfeld möglich?

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut

adaptives Editfeld möglich?

Beitragvon Aphadias » 29. Dez 2017, 14:21 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?
Aphadias
 
Beiträge: 124
Registriert: 28. Okt 2015, 18:28

Beitragvon wp_xyz » 29. Dez 2017, 14:49 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;
wp_xyz
 
Beiträge: 2672
Registriert: 8. Apr 2011, 08:01

Beitragvon Aphadias » 29. Dez 2017, 14:58 Re: adaptives Editfeld möglich?

aber mit dazu lernt es trotzdem nicht oder?
Aphadias
 
Beiträge: 124
Registriert: 28. Okt 2015, 18:28

Beitragvon wp_xyz » 29. Dez 2017, 15:06 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.
wp_xyz
 
Beiträge: 2672
Registriert: 8. Apr 2011, 08:01

Beitragvon Aphadias » 29. Dez 2017, 15:11 Re: adaptives Editfeld möglich?

übernächste woche probier ich mal mein glück
Aphadias
 
Beiträge: 124
Registriert: 28. Okt 2015, 18:28

Beitragvon Aphadias » 12. Jan 2018, 12:57 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....
Aphadias
 
Beiträge: 124
Registriert: 28. Okt 2015, 18:28

Beitragvon wp_xyz » 12. Jan 2018, 13:45 Re: adaptives Editfeld möglich?

Code: Alles auswählen
  Combobox1.Items.SaveToFile('d:\test.txt');    
wp_xyz
 
Beiträge: 2672
Registriert: 8. Apr 2011, 08:01

Beitragvon Aphadias » 14. Jan 2018, 10:30 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 :D
Aphadias
 
Beiträge: 124
Registriert: 28. Okt 2015, 18:28

Beitragvon Aphadias » 14. Jan 2018, 11:37 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 :cry:
Aphadias
 
Beiträge: 124
Registriert: 28. Okt 2015, 18:28

Beitragvon wp_xyz » 14. Jan 2018, 12:24 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.
wp_xyz
 
Beiträge: 2672
Registriert: 8. Apr 2011, 08:01

Beitragvon Aphadias » 14. Jan 2018, 13:07 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
Aphadias
 
Beiträge: 124
Registriert: 28. Okt 2015, 18:28

Beitragvon Aphadias » 14. Jan 2018, 13:07 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
Aphadias
 
Beiträge: 124
Registriert: 28. Okt 2015, 18:28

Beitragvon wp_xyz » 14. Jan 2018, 14:42 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).
wp_xyz
 
Beiträge: 2672
Registriert: 8. Apr 2011, 08:01

Beitragvon Aphadias » 14. Jan 2018, 18:01 Re: adaptives Editfeld möglich?

hast eine pn
Aphadias
 
Beiträge: 124
Registriert: 28. Okt 2015, 18:28

• Themenende •

Zurück zu Freepascal



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste

porpoises-institution
accuracy-worried