AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DBLookupComboBox in einem Suchformular
Thema durchsuchen
Ansicht
Themen-Optionen

DBLookupComboBox in einem Suchformular

Ein Thema von diesel · begonnen am 4. Apr 2003 · letzter Beitrag vom 8. Aug 2005
Antwort Antwort
Seite 2 von 2     12   
Gast
(Gast)

n/a Beiträge
 
#11
  Alt 7. Apr 2003, 14:19
Hallo Diesel ,

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:

(*____________________________________________________________________________

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;
Gruß

Paul Jr.
  Mit Zitat antworten Zitat
Benutzerbild von diesel
diesel

Registriert seit: 4. Apr 2003
20 Beiträge
 
Delphi 7 Professional
 
#12
  Alt 7. Apr 2003, 14:53
Jipiiee
genau das war es was ich gesucht habe !!!
Vielen Dank Paul Jr !!

Gruß Diesel
  Mit Zitat antworten Zitat
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#13

Re: DBLookupComboBox in einem Suchformular

  Alt 8. Aug 2005, 23:36
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz