Michael_Kluetsch Geschrieben 19. Oktober 2001 Geschrieben 19. Oktober 2001 Ich wünsche allen einen wunderschönen Freitag und hoffe das jemand in der Lage ist imr zu helfen. Und zwar geht es um folgendes ich muss eine DelphiKomponente erstellen die von einer Combox abgeleitet wurde und nun die Fähigkeit erhalten soll in den vorhandenen Items den eingegebenen Text zu suchen im Prinzip genau wie bei der Adressleiste des Internetexplorers. Leider habe ich im Moment nur 2 Probleme damit: 1. Wie kann ich ein neues Ereignis definieren (z.B. OnTextinput, das dann greift, wenn der User etwas in die Textbox einträgt? Dies ist leider dringend notwendig, weil das original OnChange Ereignis bestehen bleiben muss. 2. In der jetzigen Version markiere ich den nicht selbst eingegeben Text ähnlich wie beim IE(s.O.) allerdings löscht er mir nur den markierten teil und nicht den von mir eingegebenen Buchstaben. Danke im Vorraus ! Euer Michael Hier ist der Quellcode: unit SearchingComboBox; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TSearchingComboBox = class(TComboBox) private { Private-Deklarationen } bSearching: Boolean; protected { Protected-Deklarationen } public { Public-Deklarationen } published { Published-Deklarationen } procedure change; override; Function Eingabepruefen(sEingabe: String): Boolean; property Searching: Boolean read bSearching write bSearching default False; end; procedure Register; implementation procedure Register; begin RegisterComponents('Klu', [TSearchingComboBox]); end; procedure TSearchingComboBox.change; begin if Searching then begin if not Eingabepruefen(Text) then ShowMessage('Kein Eintrag vorhanden'); end; end; Function TSearchingcomboBox.Eingabepruefen(sEingabe: String): Boolean; Var i: integer; begin result := false; if (items.Count > 0) AND (sEingabe <> '') then begin for i:= 0 to items.Count -1 do begin if Pos(sEingabe, items) = 1 then begin Text := items; selStart := Length(Text)+1; selLength := Length(sEingabe) - Length(Text); result := true; exit; end; end; end else result := true; end; end. Zitieren
lpd Geschrieben 19. Oktober 2001 Geschrieben 19. Oktober 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von Michael_Kluetsch: <STRONG>1. Wie kann ich ein neues Ereignis definieren (z.B. OnTextinput, das dann greift, wenn der User etwas in die Textbox einträgt? Dies ist leider dringend notwendig, weil das original OnChange Ereignis bestehen bleiben muss. </STRONG> Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.