AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frame hat kein übergeordnetes Fesnter

Ein Thema von Andy79 · begonnen am 17. Aug 2007 · letzter Beitrag vom 17. Aug 2007
Antwort Antwort
Seite 1 von 2  1 2      
Andy79

Registriert seit: 23. Jul 2007
10 Beiträge
 
#1

Frame hat kein übergeordnetes Fesnter

  Alt 17. Aug 2007, 12:26
habe folgenden Code, einmal gehts einmal nicht, aber warum?

Code:
procedure TfEtikettendruck.Sonderetiketten1Click(Sender: TObject);
begin
  frSonderetiketten := TfrSonderetiketten.Create(fEtikettendruck);
  frSonderetiketten.Parent := fEtikettendruck;
  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.Parent := fEtikettendruck;
  with frVersandetiketten do
  begin
    ComboBoxDrucker.Items := Printers.Printer.Printers;
    ComboBoxDrucker.Items.Add('Standarddrucker');
    ComboBoxDrucker.Text := 'Standarddrucker';
  end;
end;
Bei Aufruf des Frames für Sonderetiketten keine Probleme,
bei Aufruf für Versandetiketten kommt aber der Fehler: "Element frVersandetiketten hat kein übergeordnetes Fenster" warum?
Es ist doch im Prinzip der selbe Aufruf. Die Frame sehen auch gleich aus vom Code her.
Wäre dankbar für nen Tip.

Gruß Andy
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Frame hat kein übergeordnetes Fesnter

  Alt 17. Aug 2007, 12:35
Wo kommt den der fehler genau? bei der Instanzerzeugung oder später?
Markus Kinzler
  Mit Zitat antworten Zitat
Andy79

Registriert seit: 23. Jul 2007
10 Beiträge
 
#3

Re: Frame hat kein übergeordnetes Fesnter

  Alt 17. Aug 2007, 12:41
bei der Erzeugung direkt.
Habe mittlerweile entdeckt, das es an der RadioGroup lag die auf dem Frame liegt. die ist bei den Sonderetiketten nicht.
aber was ist an der Radiogroup so besonders?
wenn ich die lösche geht es wie bei dem anderen Frame.

Andy
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Frame hat kein übergeordnetes Fesnter

  Alt 17. Aug 2007, 12:43
Wer ist Owner/Parent der Radiogroup?
Markus Kinzler
  Mit Zitat antworten Zitat
Andy79

Registriert seit: 23. Jul 2007
10 Beiträge
 
#5

Re: Frame hat kein übergeordnetes Fesnter

  Alt 17. Aug 2007, 12:45
mmh.. denke die sitz doch auf dem Frame, also ist der Frame Parent der Radiogroup.
habe gerade noch was bemerkt, nur wenn die Radiogroup Elemete enthält führt das zum Fehler.
eine leere Radiogroup macht keine Probleme?
sehr seltsam find ich.
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.891 Beiträge
 
Delphi 12 Athens
 
#6

Re: Frame hat kein übergeordnetes Fenster

  Alt 17. Aug 2007, 12:48
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]
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
Andy79

Registriert seit: 23. Jul 2007
10 Beiträge
 
#7

Re: Frame hat kein übergeordnetes Fesnter

  Alt 17. Aug 2007, 13:02
nein mache im Create des Frames überhaupt nichts.
Der Fehler dritt direkt beim Create auf

frVersandetiketten := TfrVersandetiketten.Create(self); sowie ich ein Item in der Radiogroup vorab definiere kracht es.
Wenn ich im nachhinein der Radiogroup Items hinzufüge klappt das.
so könnte ich das Problem jetzt umgehen, aber schön ist das nicht.
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Frame hat kein übergeordnetes Fesnter

  Alt 17. Aug 2007, 13:05
Hallo Andy,

ist dir klar, daß du mit jedem Button-Klick eine neue Instanz deiner Frames erzeugst? Nur die jeweils letzte Instanz ist über die Felder frSonderetiketten bzw. frVersandetiketten direkt erreichbar, alle anderen liegen nur im Speicher herum. Das Entsorgen aller Frames erfolgt erst bei der Freigabe der beiden Formulare.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Andy79

Registriert seit: 23. Jul 2007
10 Beiträge
 
#9

Re: Frame hat kein übergeordnetes Fesnter

  Alt 17. Aug 2007, 13:08
@Hawkeye219
ja das ist mir klar, ist aber nicht schlimm, das wird noch etwa sauberer werden.
ist ja noch nicht fertig, trotzdem Danke für den Tip.
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.891 Beiträge
 
Delphi 12 Athens
 
#10

Re: Frame hat kein übergeordnetes Fesnter

  Alt 17. Aug 2007, 13:19
häng doch einfach mal Quelltext und dfm zu dem Frame an, damit wir mal drübergucken können.
So ins Blaue raten ist nicht ganz so produktiv

Gruß

onlinekater
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz