![]() |
Re: AutoComplete für TMemo, TRichEdit uvm.
Zitat:
Aber Spaß beiseite. Es liegt ja in der Verantwortung des Programmieres, welchem Formular er das AutoComplete zuweist.
Delphi-Quellcode:
Da könnte auch Form2, Form3 oder sonstwas stehen. In der Komponente selbst greife ich ja nicht direkt auf die Form zu. Ich könnte natürlich noch eine Prüfung einbauen etwa
AutoComplete1 := TAutoComplete.Create(Form1,'TextDatei',Memo1);
Wenn AOwner = nil dann löse eine Exeption aus. |
Re: AutoComplete für TMemo, TRichEdit uvm.
Tipps:
warum 'ne lokale Variable, wie z.B. comp, global in der Klase definieren? als Owner (für die ListView) kannst du entweder das EditControl oder dessen .Parent verwenden. wenn du in dieser for k:= 0 to wortzahl-1 do-Schleife viele Werte hinzufügen (Items.Add) willst, dann bietet sich Items.BeginUpdate und danach Items.EndUpdate an. geht so schneller, da dann nichtmehr bei jedem Hinzufügen ein Update der StringList(ListView) ausgeführt wird. die ListView sollte wieder ausgeblendet werden, wen sie nicht mehr benötigt wird. (z.B. das Edit verliert den Fokus) in deinem Bild sieht man sogar gleich mehrere von diesen Dingern, zur selben Zeit. kannst dich ja gern mal etwas umschauen:
[edit] Datei siehe ![]() |
Re: AutoComplete für TMemo, TRichEdit uvm.
Wow, ich erkenne meine Komponente nicht wieder :roll: (Das soll jetzt keine Bewertung sein)
Zitat:
Zitat:
Zitat:
Zitat:
Aber: Etwas klemmt noch in Deiner Version: Versuch mal im RichEdit diesen Satz flüssig einzugeben: Zitat:
|
Re: AutoComplete für TMemo, TRichEdit uvm.
Zitat:
Ich wiederhole deinen Code vom 1. Beitrag:
Delphi-Quellcode:
Siehst du es jetzt? (weg mit den Tomaten :stupid: )
procedure TForm1.FormCreate(Sender: TObject);
begin AutoComplete1 := TAutoComplete.Create(self,'worte.txt',Memo1); // RICHTIG AutoComplete2 := TAutoComplete.Create(Form1,'plz.txt',LabeledEdit1); // FALSCH AutoComplete3 := TAutoComplete.Create(Form1,'words4.txt',RichEdit1); // FALSCH end; Du bist innerhalb der Klasse TForm1. Self ist das aktuelle Objekt, auf dem du gerade arbeitet. Form1 ist unter Umständen <> self. Self ist richtig und Form1 ist falsch. Ich hoffe du hast den Fehler jetzt erkannt. Du musst zugeben, dass dieser Fehler ziemlich gemein und schwer zu erkennen ist. |
Re: AutoComplete für TMemo, TRichEdit uvm.
Zitat:
|
Re: AutoComplete für TMemo, TRichEdit uvm.
Zitat:
|
Re: AutoComplete für TMemo, TRichEdit uvm.
Liste der Anhänge anzeigen (Anzahl: 1)
joar, vielleicht sollte man alle Zeichen (auch die in WordSeparator definierten) an das Edit weiterleiten :oops:
Zitat:
Zitat:
Zitat:
Code:
TAutoComplete = class(TListView)
... private [s]comp: TControl;[/s] constructor TAutoComplete.Create(... [b]var comp: TControl;[/b] begin Zitat:
Zitat:
Zitat:
war/ist aber och nicht so leicht es innerhalb des Fensters zu behalten und ist bestimmt och 'ne fehleranfällige Berechnung (du glaubst garnicht was da das vorher fehlende Minus von TEdit(_Edit).Font.Height mir für 'nen Spaß bereitete :wall: ) Zitat:
Zitat:
dafür muß ich alles Andere zum Edit zurückleiten. siehe "vielleicht sollte man alle Zeichen ... weiterleiten :oops:" sonst passieren komische Dinge :shock: kleine Ändrung bei Case-Else in ListViewKeyPress |
Re: AutoComplete für TMemo, TRichEdit uvm.
Zitat:
|
Re: AutoComplete für TMemo, TRichEdit uvm.
@himitsu: Ich hab' mir erst jetzt Dein AutoComplete richtig angesehen :o . Da sieht man den professionellen Komponenten-Entwickler - alles ist konfigurierbar und sogar die eventuell bestehenden Events hast Du berücksichtigt :thumb: .
Zitat:
Zitat:
Zitat:
|
Re: AutoComplete für TMemo, TRichEdit uvm.
Also, mit der letzen Version hab ich bei mir keine Probleme :gruebel:
[edit]Anhang entfernt (man darf ja mal die DP entlasten) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz