Einzelnen Beitrag anzeigen

Benutzerbild von Woodman
Woodman

Registriert seit: 17. Mär 2007
74 Beiträge
 
Delphi 10.1 Berlin Starter
 
#26

Re: AutoComplete für TMemo, TRichEdit uvm.

  Alt 18. Dez 2008, 20:02
Zitat von himitsu:
...
Du hast 'nen Fehler beim Befüllen der ListBox ... es fehlen viele Wörter.
(siehe Anhang > Unbenannt.png und Unbenannt2.png)

"sch" = 4464 wörter, aber bei dir sind es nur 5
"fra" = 655 wörter und bei dir sind's wieder nur 5
Das ist in Ordnung, wie Du oben siehst, öffne ich im Memo eine ander Textdatei als im RichEdit.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
   AutoComplete1 := TAutoComplete.Create(self,'worte.txt',Memo1);
   AutoComplete2 := TAutoComplete.Create(Form1,'plz.txt',LabeledEdit1);
   AutoComplete3 := TAutoComplete.Create(Form1,'words4.txt',RichEdit1);
   
end;
Zitat von himitsu:
Gut, ich laß auch nicht unendlich viele Wörter in der ListView zu, da die Delphi-Version leider ein "klitzekleines" Geschwindigkeitsproblem hat, wenn sie zu voll wird.
Bei der Option, das AutoComplete nur "anspringt", wenn 3 Zeichen eingetippt sind, gibt es dieses Problem (fast) nicht.
Zitat von himitsu:
Zitat:
// Wichtig: Parent festlegen, sonst gibt's
// einen Laufzeitfehler
ach ja, weißt du auch warum?

Owner = Besitzer des Komponente und das kann alles (jeder nachkomme von TComponent) und nichts (nil) sein.
es ist nur derjenige, welcher sich um die Freigabe der Komponente kümmert (wenn er selber freigegeben wird), falls niemand anderes die Komponente freigibt,

welches eigentlich auch der Programmierer machen könnte:
Delphi-Quellcode:
procedure TForm1.FormDestroy(Sender: TObject);
begin
  AutoComplete1.Free;
  AutoComplete2.Free;
  AutoComplete3.Free;
end;
PS: drum hab ich als Owner auch die Edit-Komponente gewählt, da die Funktion an diese Komponente gebunden ist.

Parent aber ist die Komponente, auf welcher deine Komponente dargestellt wird ... und wenn da nichts angegeben ist, wo soll die ListView dann hin? (sozusagen ohne Leinwand um sich zu Zeichnen)
Das ist ein wichtiger Hinweis und war mir bis jetzt noch nicht bewusst bzw. bekannt:
Der Unterschied Owner <> Parent.
Früher dachte ich, die Kinder gehören den Eltern

Zitat von himitsu:
hab jetzt auch mal mit 'ner Version einer "unsichtbaren" ListView gespielt (ListView ist zwar noch vorhanden, da über sie die Eingabe läuft, aber so klein, daß man sie nicht sieht)
Mhm, muss ich mal mit spielen. Ist etwas gewöhnungsbedürftig, besonders da man nicht weiß, was die Liste noch anbietet.
Zitat von himitsu:
...[edit]merk grad, hab mir irgendwo 'nen Fehler bei der Positionierung der ListView eingebaut ... muß ich mal nachsehn wo der sich versteckt
Jau, denn ich blick jetzt nicht mehr durch
Keep
Horst
Delphi 10.1 Berlin Starter unter Windows 10 - 1803
  Mit Zitat antworten Zitat