Ich liebe diese Objektschreibweise. Die ist wirklich kompakt aber ein Krampf zum debuggen.
Code: Alles auswählen
procedure TFMArtikel.CBArtzugGrpClick(Sender: TObject);
var
s,t,string;
begin
Fehlermeldung(99);
//Füllen der Gruppen in die ComboBox
CBArtzugGrp.Items.Clear;
FMMenu.SQLQuery1.SQL.Clear;
s:='select nr,bez from gruppen where Aktiv=1 order by Nr;';
FMMenu.SQLQuery1.SQL.Text:=s; //<<- Breakpoint hier
FMMenu.SQLQuery1.open;
//FMMenu.SQLQuery1.Last; //bei größeren Datenmengen um die komplette Abfrage zu retrieven
FMMenu.SQLQuery1.First; //<--verlasse mich nicht drauf dass der Zeiger auf BOF steht
while not FMMenu.SQLQuery1.EOF do
begin
t:=FMMenu.SQLQuery1.FieldByName('Nr').AsString+' '+FMMenu.SQLQuery1.FieldByName('Bez').AsString;
CBArtzugGrp.Items.Add(t); //<<- Breakpoint hier
FMMenu.SQlQuery1.Next;
end;
end;
und dann mit Ctrl-Alt-L das Debugfenster für lokale Variablen einschalten und prüfen ob das Programm überhaupt bis dorthin kommt und ob die Schleife Werte liefert.
Etwas mehr Code hilft enorm beim Debuggen.
Und wie af0815 sagte darf das nicht in einem Event der Combobox passieren.
Solche Vorbereitungen müssen erledigt sein wenn das Formular angezeigt wird.
Ich mache das in einer eigenen Prozedur (der Übersicht und mehrfachen Verwendbarkeit wegen) die ich meinetwegen "Initialize" oder "Prepare" nenne (immer programmweit gleich benennen) die ich meistens im OnCreate des Formulars nach allen Erstellungsaufgaben aufrufe.