Veröffentlicht 19. Oktober 200123 j 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.
19. Oktober 200123 j <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>
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.