![]() |
Hallo Diesel :lol: ,
schau was ich so bei mir gefunden habe... (das ist schon lange her...als ich das programmiert habe... da war ich noch JUNG und na...ja... schön...)... ist vielleicht nicht perfekt... aber schon etwas...:
Code:
Gruß(*____________________________________________________________________________ Diese Procedur dient zum löschen der Inhalte des ComboBox Sie wird nur (!!!) einmall in dem Ereignis OnkeyDown des FORMULARS aufgerufen. FormLookComboDelete(Sender,Key); Gelöscht wird anhand der Taste Entf und der Rück (Back)-Taste __________ Wichtig: Bitte nicht vergessen die Eigenschaft KeyPrieview des Formulars auf TRUE zu setzen. ____________________________________________________________________________ *) PROCEDURE FormLookComboDelete(Sender: TObject; VAR Key: Word); VAR strDataField : STRING; BEGIN IF (Key = vk_Delete) OR (Key = vk_Back) THEN BEGIN (* Bei DBLookupComboBox unterscheiden wir zwischen zwei Fällen: 1.) Seine Eigenschaft DataSource und logische Weise auch DataField sind nicht belegt d.h. DataField = ''; In dem Fall reicht es der Eigenschaft DataField zuerst ein beliebiges Wert zuzuweisen, da so wie so DataSource leer ist und kein Widerspruch erheben wird. Anschließend weisen wir schon wieder die Eigenschaft DataField = ''; Und so erreichen wir das der Eintrag in dem DBLookupComboBox ausgelöscht wird. 2.) Jetzt wird bißchen schwieriger, da die Eigenschaften DataSource und DataField entsprechende Werte besitzen. Aus diesem Grund greiffen wir direkt die DataSet(also Tabelle oder vielleicht Query) an. Die DataField Eigenschaft = strDataField verrät uns natürlich die Tabellen Feld-Name dessen wert Value auf Null gesetzt wird. Und schon ist der Inhalt gelöscht *) // für ComboBox des Typs TDBLookupComboBox IF (Sender as TForm).ActiveControl is TDBLookupComboBox THEN BEGIN strDataField := ((Sender as TForm). ActiveControl as TDBLookupComboBox).DataField; IF strDataField = '' THEN BEGIN // Fall 1.) ((Sender as TForm). ActiveControl as TDBLookupComboBox).DataField := '#'; ((Sender as TForm). ActiveControl as TDBLookupComboBox).DataField := ''; END ELSE // Fall 2.) ((Sender as TForm).ActiveControl as TDBLookupComboBox). DataSource.DataSet.FieldByName(strDataField).Value := NULL; END; // für ComboBox des Typs TRxDBLookupCombo IF (Sender as TForm).ActiveControl is TRxDBLookupCombo THEN BEGIN strDataField := ((Sender as TForm). ActiveControl as TRxDBLookupCombo).DataField; IF strDataField = '' THEN BEGIN // Fall 1.) ((Sender as TForm). ActiveControl as TRxDBLookupCombo).DataField := '#'; ((Sender as TForm). ActiveControl as TRxDBLookupCombo).DataField := ''; END ELSE // Fall 2.) ((Sender as TForm).ActiveControl as TRxDBLookupCombo). DataSource.DataSet.FieldByName(strDataField).Value := NULL; END; // für ComboBox des Typs TRxDBLookupCombo IF (Sender as TForm).ActiveControl is TDBComboBox THEN BEGIN strDataField := ((Sender as TForm). ActiveControl as TDBComboBox).DataField; IF strDataField = '' THEN BEGIN // Fall 1.) ((Sender as TForm). ActiveControl as TDBComboBox).DataField := '#'; ((Sender as TForm). ActiveControl as TDBComboBox).DataField := ''; END ELSE // Fall 2.) ((Sender as TForm).ActiveControl as TDBComboBox). DataSource.DataSet.FieldByName(strDataField).Value := NULL; END; END; //_______________________***__ ENDE DER PROCEDUR __***________________________ END; Paul Jr. |
:hello: Jipiiee :hello:
genau das war es was ich gesucht habe !!! Vielen Dank Paul Jr !! Gruß Diesel |
Re: DBLookupComboBox in einem Suchformular
Hi,
jetzt habe ich mal eine Frage zu dem Thema: Ich habe eine Gefüllte Dblookupcombobox mit listsource . Jetzt wähle ich was aus der Liste aus . Danach will ich auch mit einem Button die Dblookupcombo löschen.und wieder aktiv machen,aber dann ist der alte gewählte wert wieder drin. Wie kann ich das besser Lösen? Danke. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:56 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