Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Query-Komponente mit mehreren SQL-Statments zur Auswahl.

  Alt 27. Nov 2005, 09:25
Wieso? Nimm doch einfach verschiedene Queries. Pack Sie z.B. in ein Array Of TQuery. Oder in eine Combobox:
Beispiel: 4 x TQuery, 1xTComboBox, 1xTDataSource, 1xTDBGrid.
Delphi-Quellcode:
Procedure TForm1.FormCreate (Sender : TObject);
Var
  i : Integer;

Begin
  DataSource1.DataSet := Nil;
  DBGrid1.DataSource := DataSource1;
  ComboBox1.Items.clear;
  For i:=0 to ComponentCount - 1 do
    if Components[i] is TQuery Then
      ComboBox1.Items.AddObject (Components[i].Name, Components[i]);
  ComboBox1.ItemIndex := 0; // Sollte ComboBox1Change auslösen
End;

Procedure TForm1.ComboBox1Change (Sender : TObject);
Begin
  With ComboBox1 do
    DataSource1.DataSet := (Items.Objects[ItemIndex]) as TQuery;
End;
Was ich hier mache? Ich verzichte sogar auf das Array of TQuery und packe in die Objects-Eigenschaft der ComboBox.Items (sind ja TStrings), die Namen der Queries sowie einen Zeiger auf die Query selbst. Anstatt des Names kannst (und solltest) Du besser eine Beschreibung packen, aber egal.

Wenn ich den Inhalt der ComboBox ändere, wird das OnChange-Ereignis ausgelöst. Hier wechsle ich einfach die Dataset-Eigenschaft der Datasource und das war's.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat