Hallo!
1.
In welcher Zeile tritt der Fehler genau auf?
Hast Du im Create Deines Frames irgendwas gemacht? Z.B. die Combobox mit Werten gefüllt? Dann wird versucht, die Combobox neuzuzeichenen, und das geht natürlich schief, da der Parent ja erst dannach zugewiesen wird.
Oder setzt Du die Werte für die genannte Radiogroup oder deren ItemIndex? Es gilt das gleiche wie für die Combobox.
2. Du hast einige ganz gravierende Fehler in Deinem Code:
Delphi-Quellcode:
procedure TfEtikettendruck.Sonderetiketten1Click(Sender: TObject);
begin
// *****************************************************************************
// so nicht:
// frSonderetiketten := TfrSonderetiketten.Create(fEtikettendruck);
// *****************************************************************************
// sondern so;
frSonderetiketten := TfrSonderetiketten.Create(self);
// *****************************************************************************
// Begründung: Du verdrahtest Deinen Frame mit einer festen Instanz (fEtikettendruck).
// Gewünscht ist aber sicherlich, wie es dem oo-Ansatz entspricht,
// den erzeugten Frame mit der aktuellen Instand zu verdrahten.
// frSonderetiketten.Parent := fEtikettendruck;
frSonderetiketten.Parent := self;
// siehe oben
with TAdsQuery.Create(
nil)
do
try
Databasename := '
Etikettendruck';
SQL.Add('
select Rahmen from Rahmen');
SQL.Add('
where Sonder=true');
Open;
while not eof
do
begin
frSonderetiketten.ListBoxReports.Items.Add(FieldByName('
Rahmen').asString);
Next;
end;
finally
Free;
end;
end;
procedure TfEtikettendruck.Versandetiketten1Click(Sender: TObject);
begin
// frVersandetiketten := TfrVersandetiketten.Create(fEtikettendruck);
frVersandetiketten := TfrVersandetiketten.Create(self);
// siehe oben
// frVersandetiketten.Parent := fEtikettendruck;
frVersandetiketten.Parent := self;
// siehe oben
with frVersandetiketten
do
begin
// ComboBoxDrucker.Items := Printers.Printer.Printers;
ComboboxDrucker.Items.Assign (Printers.Printer.Printers);
// --> Du möchtest sicherlich nur alle Drucker in Deine Combobox eintragen.
// die nachfolgende Zeile würde auch für schwerwiegende Systemfehler sorgen,
// wenn Du die Zuweisung der Comboboxeinträge auf die vorherige Art machst.
ComboBoxDrucker.Items.Add('
Standarddrucker');
ComboBoxDrucker.Text := '
Standarddrucker';
end;
end;
Hope it helps
onlinekater
PS: Du solltest die genannten Korrekturen (besonders die mit dem Assign) durchführen, bevor Du weiter den im Betreff genannten Fehler suchst.
Er könnte sich damit evtl. schon erledigen siehe Punkt 1
[Edit]Punkt1 überarbeitet[/Edit]