![]() |
Datenbank: mybase • Version: 1 • Zugriff über: delphi
DBLookupcombobox bei auswahl Actionlist / Action ausführen
Hallo,
habe ein kleines Problem.. Ich habe eine DBLookupCombobox und würde gerne bei Auswahl aus der DBLookupcombo eine Action aus einer Actionlist ausführen. Bei normalen Comboboxen habe ich es hinbekommen, folgendermaßen:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin ComboBox1.Items.AddObject('>Bitte wählen', TObject(0)); ComboBox1.ItemIndex := 0; ComboBox1.Items.AddObject('test1', TObject(1111)); ComboBox1.Items.AddObject('test2', TObject(2222)); ComboBox1.Items.AddObject('test3', TObject(3333));
Delphi-Quellcode:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin if Assigned( ComboBox1.Items.Objects[ ComboBox1.ItemIndex ] ) and ( ComboBox1.Items.Objects[ ComboBox1.ItemIndex ] is TAction ) then TAction( ComboBox1.Items.Objects[ ComboBox1.ItemIndex ] ).Execute; end; Wie funktioniert der Code bei einer DBLookupCombobox hin zu sagen, er soll mir den Wert der Tabelle Spalete "ID" anzeigen und wenn ID xy ausgewählt wird soll er eine Action ausführen z.B. bei ID 1 = Action1 usw. das würde mir schon sehr viel weiterhelfen. Für jeden Tipp bin ich sehr dankbar. |
AW: DBLookupcombobox bei auswahl Actionlist / Action ausführen
Bei einer DBLookupComboBox arbeitest du nicht mit den Properties der Komponente, sondern wertest das zugrundeliegende DataSet aus. Letztlich hast du wahrscheinlich eine ID und einen angezeigten Wert in deinem DataSet. Ob du jetzt auf die ID oder den Wert reagierst, bleibt dir überlassen, ich verwende im Allgemeinen die ID für die weitere Verarbeitung.
Grüße Mikhal |
AW: DBLookupcombobox bei auswahl Actionlist / Action ausführen
Ja hab ich mir auch so gedacht.
habe eine DBLookupcombobox und ein dbedit.text feld und diese verbunden und bei auswahl gibt mir die DBLookup an das DBedit dieses ID feld rüber und im dbedit.feld habe ich als code hinterlegt
Delphi-Quellcode:
soweit so gut, nur jetzt kommt beim ausführen ein richtiges ergebnis, aber dann im anschluss eine Fehlermeldung. :(unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DBCtrls, DB, DBClient, StdCtrls, Mask, AppEvnts, ActnList; type TForm1 = class(TForm) DataSource1: TDataSource; ClientDataSet1: TClientDataSet; DBLookupComboBox1: TDBLookupComboBox; DBEdit1: TDBEdit; ActionList1: TActionList; Action1: TAction; Edit1: TEdit; procedure Action1Execute(Sender: TObject); procedure Edit1Change(Sender: TObject); procedure DBEdit1Change(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Action1Execute(Sender: TObject); begin showmessage('test'); end; procedure TForm1.Edit1Change(Sender: TObject); begin if (Edit1. Text = '1') then showmessage('test'); if (Edit1. Text = '2') then showmessage('test') end; procedure TForm1.DBEdit1Change(Sender: TObject); begin //if (DBEdit1.Text = '1111') then //showmessage('test'); if (DBEdit1.Text = '1111') then Action1.execute else showmessage('nichts'); end; procedure TForm1.FormCreate(Sender: TObject); begin end; end. Zugriffsverletzung bei adresse 004849B3 und dann mal eine andere frage, wenn ich in einem edit text feld eine Spalte aus einer Datenbank einlesen möchte wie mache ich das, z.B. spalte 1 zeile 1 anzeigen lassen möchte..wie funktioniert das das geht
Delphi-Quellcode:
edit1.text := datasource1.dataset.fieldsvalue['name'];
|
AW: DBLookupcombobox bei auswahl Actionlist / Action ausführen
Du frickelst wieder mit den Properties der Komponenten herum. Hinter den DB-Komponenten verbirgt sich immer ein DataSet, sei es eine Query oder ein Table. Bei Zugriff auf Datenbanken arbeitest du immer nur mit dem DataSet, die DB-Komponenten dienen nur der Darstellung.
In deinem Fall wäre das wahrscheinlich eher so: statt
Delphi-Quellcode:
in der Methode DBEdit1.Change sollte es etwa so ausehen...
if (DBEdit1.Text = '1111') then
Action1.execute else showmessage('nichts');
Delphi-Quellcode:
Warum DBEdit wenn du bereits eine DBLookupComboBox einsetzt?
if ClientDataSet1.FindField('Test').AsString = '1111' then
Action1.Execute else ShowMessage('nichts'); Grüße Mikhal |
AW: DBLookupcombobox bei auswahl Actionlist / Action ausführen
dankeschön klappt so :-)
Gruß Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:22 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