Zitat von
davar:
so langsam komm ich jetzt wohl doch mit. Aber zwei kurze Sachen noch:
1. Wie erstelle ich die Komponenten (DataSource,
Query)? Wenn ich ein neues Formular erstelle und dort zur Laufzeit die Komponenten erstelle, geht es. Wenn ich aber eine neue
Unit nehme (ohne Formular) geht es nicht. Brauch ich unbedingt ein Formular dafür?
2. Wie ist es mit datensensitiven Komponenten? Was gebe ich bei einem DBGrid als DataSource an?
Nee, noch nicht richtig verstanden
zu 1. Die erstellst Du nicht auf dem Formular, sondern in Deiner Klasse. Stell Dir mal bitte Klasse und Anzeigeformular als 2 Dinge vor, die rein gar nichts voneinander wissen.
Also in der Klasse z.B. im Create-Event:
OQuery:=TZquery.Create
Du musst das Ganze abstrakter sehen:
- "Hallo, ich bin ein Formular und habe mir gerade ein TKontakt-Objekt names 'Kontakt' erstellt"
Kontakt := TKontakt.Create;
- "Kontakt, beschaffe Dir mal bitte die Kontaktdaten für die ID 4711"
Kontakt.LoadData(4711);
- "Hallo Kontakt, ich brauche mal bitte den 'Nachnamen' aus Deinen Kontaktdaten, da ich diesen im Edit1 anzeigen lassen möchte"
Edit1.Text := Kontakt.Nachname;
- "Hallo Kontakt, jetzt brauche ich mal bitte die Liste der Vorgänge, damit ich diese in einer Listbox anzeigen lassen kann"
Delphi-Quellcode:
For ix:=0 to Kontakt.VorgangsListe.Count -1 do
begin
ListBox1.Items.Add(TVorgang(Kontakt.Vorgangsliste[ix]).Bezeichnung);
end;
zu 2. Geh bitte von den datensensitiven Komponenten weg, da diese mehr Probleme als Nutzen bereiten. Nimm stattdessen normale Edit, etc. Für Listen empfehle ich den VirtualStringTree.
Viele Grüße
Igotcha