AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Element '' hat kein übergeordnetes Fenster
Thema durchsuchen
Ansicht
Themen-Optionen

Element '' hat kein übergeordnetes Fenster

Ein Thema von maximus Caesar · begonnen am 20. Mär 2005 · letzter Beitrag vom 20. Mär 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#1

Element '' hat kein übergeordnetes Fenster

  Alt 20. Mär 2005, 13:54
Hallo!
Ich bekomme diese Fehlermeldung:

Erste Zufalls-Exception bei $7C81EB33. Exception-Klasse EInvalidOperation mit Meldung 'Element '' hat kein übergeordnetes Fenster'. Prozess Project1.exe (2644)

Dies ist der entsprechende Programmtext:

Delphi-Quellcode:
unit Tastaturkontrolle;

interface

uses Windows;

type
 TTastaturkontrolle = class
  private
  public
    procedure ueberpruefen(var key : char);
  end;

implementation

uses Unit1, Variablen, Unit2;

procedure TTastaturkontrolle.ueberpruefen(var key : Char);
begin
  if (Variable.Ansicht=1) and ((GetASyncKeyState(VK_ESCAPE))<>0) then Form1.Close;

  if (Variable.Ansicht=2) and ((GetAsyncKeyState(VK_ESCAPE))<>0) then Variable.Ansicht:=1;

  if (Variable.Ansicht=1) and ((key='w')or(Key='W')) then begin
    if Menue1.Auswahl>1 then Menue1.Auswahl:=Menue1.Auswahl-1
    else Menue1.Auswahl:=4;
  end;
  if (Variable.Ansicht=1) and ((key='s')or(key='S')) then begin
    if Menue1.Auswahl<4 then Menue1.Auswahl:=Menue1.Auswahl+1
    else Menue1.Auswahl:=1;
  end;

  if (Variable.Ansicht=2) and ((key='w')or(Key='W')) then begin
    if Menue1.Auswahl>1 then Menue1.Auswahl:=Menue1.Auswahl-1
    else Menue1.Auswahl:=5;
  end;
  if (Variable.Ansicht=2) and ((key='s')or(key='S')) then begin
    if Menue1.Auswahl<5 then Menue1.Auswahl:=Menue1.Auswahl+1
    else Menue1.Auswahl:=1;
  end;

  if (Variable.Ansicht=1) and (Menue1.Auswahl=2) and ((GetAsyncKeyState(VK_RETURN))<>0) then begin
    Form2.Visible:=False;
    Text.OptionenLaden;
    Optionen.Anzeigen; //////////////////HIER IST DER FEHLER!!!!
    Form2.ShowModal;
  end;
end;

end.
Dies ist die aufgerufene Funktion:

Delphi-Quellcode:
procedure TOptionen.Anzeigen;
begin
if Rueckgaengig=True then Form2.CheckBox1.Checked:=True else Form2.CheckBox1.Checked:=False;
  if dreimalWuerfeln=True then Form2.CheckBox2.Checked:=True else Form2.CheckBox2.Checked:=False;
  if Zugzwang=True then Form2.CheckBox3.Checked:=True else Form2.CheckBox3.Checked:=False;
  if Geschwindigkeit=1 then Form2.RadioGroup7.ItemIndex:=0;
  if Geschwindigkeit=0.5 then Form2.RadioGroup7.ItemIndex:=1;
  if Geschwindigkeit=0.1 then Form2.RadioGroup7.ItemIndex:=2;
  if Geschwindigkeit=0.05 then Form2.RadioGroup7.ItemIndex:=3;
  if Geschwindigkeit=0.01 then Form2.RadioGroup7.ItemIndex:=4;
  if Geschwindigkeit=0.005 then Form2.RadioGroup7.ItemIndex:=5;
  if Geschwindigkeit=0.001 then Form2.RadioGroup7.ItemIndex:=6;
  Form2.RadioGroup1.ItemIndex:=Wuerfeln;
  Form2.RadioGroup2.ItemIndex:=Farbauswahl;
  Form2.RadioGroup3.ItemIndex:=Spieler-2;
  Form2.RadioGroup4.ItemIndex:=Figuren-1;
  if Figurauswahl=True then Form2.RadioGroup5.ItemIndex:=0 else Form2.RadioGroup5.ItemIndex:=1;
  if BewegungsArt=True then Form2.RadioGroup6.ItemIndex:=0 else Form2.RadioGroup6.ItemIndex:=1;
end;
Wie kann ich diesen Fehler beheben?

PS: Optionen ist eine eingene Klasse (TOptionen = class)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Element '' hat kein übergeordnetes Fenster

  Alt 20. Mär 2005, 13:58
step mal in "TOptionen.Anzeigen" hinein und gehe dann dort schritteweise vorran, dann siehst du in welcher zeile von "Anzeigen" der Fehler auftritt.

Nur mal so als tipp:
if Rueckgaengig=True then Form2.CheckBox1.Checked:=True else Form2.CheckBox1.Checked:=False; kann man auch wie folgt verkürzen:
Form2.CheckBox1.Checked:=Rueckgaengig;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Element '' hat kein übergeordnetes Fenster

  Alt 20. Mär 2005, 14:01
Ich brauchs nur Aufrufen, egal ob ne Anweisung drinnesteht oder nicht, und schon kommt der Fehler!
D.h. selbst wenn es eine leere Prozedur ist kommt der Fehler!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Element '' hat kein übergeordnetes Fenster

  Alt 20. Mär 2005, 14:02
Moin Maximus,

wie sieht denn der Konstruktor von Optionen aus?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Element '' hat kein übergeordnetes Fenster

  Alt 20. Mär 2005, 14:06
bist du dir sicher das der Fehler in der zeile
Optionen.Anzeigen; //////////////////HIER IST DER FEHLER!!!! ist und nicht in der zeile
    Text.OptionenLaden; ? In welcher Zeile ist der Balken wenn der Fehler auftritt? Hast du eventuell vergessen die Instanz von TOptionen zu erzeugen (ala: Optionen := TOptionen.Create)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Element '' hat kein übergeordnetes Fenster

  Alt 20. Mär 2005, 14:07
Hier mal die ganze Unit:

Delphi-Quellcode:
unit Optionen;

interface

type
    TOptionen = class
       procedure Anzeigen;
       procedure Speichern;
      private
      public
       Rueckgaengig : Boolean;
       dreimalWuerfeln : Boolean;
       Zugzwang : Boolean;
       Geschwindigkeit : Extended;
       Wuerfeln : Integer;
       Farbauswahl : Integer;
       Spieler : Integer;
       Figuren : Integer;
       Figurauswahl : Boolean;
       BewegungsArt : Boolean;
    end;

implementation

uses Unit2,Variablen;

procedure TOptionen.Anzeigen;
begin
  Form2.Checkbox1.Checked:=Rueckgaengig;
  Form2.Checkbox2.Checked:=dreimalWuerfeln;
  Form2.Checkbox3.Checked:=Zugzwang;
  if Geschwindigkeit=1 then Form2.RadioGroup7.ItemIndex:=0;
  if Geschwindigkeit=0.5 then Form2.RadioGroup7.ItemIndex:=1;
  if Geschwindigkeit=0.1 then Form2.RadioGroup7.ItemIndex:=2;
  if Geschwindigkeit=0.05 then Form2.RadioGroup7.ItemIndex:=3;
  if Geschwindigkeit=0.01 then Form2.RadioGroup7.ItemIndex:=4;
  if Geschwindigkeit=0.005 then Form2.RadioGroup7.ItemIndex:=5;
  if Geschwindigkeit=0.001 then Form2.RadioGroup7.ItemIndex:=6;
  Form2.RadioGroup1.ItemIndex:=Wuerfeln;
  Form2.RadioGroup2.ItemIndex:=Farbauswahl;
  Form2.RadioGroup3.ItemIndex:=Spieler-2;
  Form2.RadioGroup4.ItemIndex:=Figuren-1;
  if Figurauswahl=True then Form2.RadioGroup5.ItemIndex:=0 else Form2.RadioGroup5.ItemIndex:=1;
  if BewegungsArt=True then Form2.RadioGroup6.ItemIndex:=0 else Form2.RadioGroup6.ItemIndex:=1;
end;

procedure TOptionen.Speichern;
begin
 Text.OptionenSpeichern;
end;

end.
Bis jetzt bin ich immer ohne einen Konstruktor zu schreiben ausgekommen... (weiß auch noch nicht was ich da machen müsste)
  Mit Zitat antworten Zitat
Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Element '' hat kein übergeordnetes Fenster

  Alt 20. Mär 2005, 14:10
Der Fehler Balken ist bei

Optionen.Anzeigen; Optionen wird definitiv vor dem Aufruf erzeugt (sonst müsste auch schon ein Fehler bei Text.OptionenLaden auftreten, da es ebenfals Optionen verwendet)
Ich tu alle Objekte über FormCreate von Form1 erzeugen
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Element '' hat kein übergeordnetes Fenster

  Alt 20. Mär 2005, 14:13
du schreibst "Text.OptionenSpeichern;", ich finde aber nirgends die declaration von Text. Ich denke mal "Text" ist vom Typ TOptionen. Wenn dem so ist kannst du auch einfach das "Text." davor weglassen. Hast du
Text := TOptionen.Create; in deinem Programm stehen?
Wenn der balken bei Optionen.Anzeigen steht deutet dies darauf hin das bei der Anweisung darüber der Fehler ist. Und da dies die erste TOptionen Anweisung ist deutet dies wiederum darauf hin das du "Optionen := TOptionen.Create" vergessen hast, oder eben die andere instanz von TOptionen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Element '' hat kein übergeordnetes Fenster

  Alt 20. Mär 2005, 14:15
Text ist vom Typ TText. Ich verwende eine Unit namens Variablen zur erzeugung aller Objekte und greife über diese Unit auf die einzelnen Objekte zu. Daher kannst dus grad nirgends finden!
  Mit Zitat antworten Zitat
Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Element '' hat kein übergeordnetes Fenster

  Alt 20. Mär 2005, 14:17
Hier die Unit Variablen, über die ich (fast) alle Objekte erzeuge:


Delphi-Quellcode:
unit Variablen;

interface

uses Tastaturkontrolle, Optionen, Menue1, Menue2, Hintergrund, Blau, Render, Gelb, Gruen, Rot, Auswahl, Wuerfel, Spielfeld, Text, Initalisieren;

type
  TVariable = class
    procedure VariableInitalisieren;
    procedure Objektinitalisieren;
   private
   public
     Ansicht : Integer; //Speichert welches Menü oder Spielfeld aktiv
   end;

var
  Variable : TVariable;
  Tastatur : TTastaturkontrolle;
  Blau : TBlau;
  Gelb : TGelb;
  Gruen : TGruen;
  Rot : TRot;
  Auswahl : TAuswahl;
  Wuerfel : TWuerfel;
  Spielfeld : TSpielfeld;
  Text : TText;
  Initalisieren: TInitalisieren;
  Menue1 : TMenue1;
  Menue2 : TMenue2;
  Rendern : TRendern;
  Hintergrund : THintergrund;
  Optionen : TOptionen;
implementation

procedure TVariable.VariableInitalisieren;
begin
  
end;

procedure TVariable.Objektinitalisieren;
begin
 Initalisieren:= TInitalisieren.Create;
 Text := TText.Create(nil);
 Tastatur := TTastaturkontrolle.Create;

 Rendern := TRendern.Create;

 Blau := TBlau.Create;
 Blau.Initalisieren;

 Gelb := TGelb.Create;
 Gelb.Initalisieren;

 Gruen := TGruen.Create;
 Gruen.Initalisieren;

 Rot := TRot.Create;
 Rot.Initalisieren;

 Auswahl := TAuswahl.Create;
 Auswahl.Initalisieren;

 Spielfeld := TSpielfeld.Create;
 Spielfeld.Initalisieren;

 Wuerfel := TWuerfel.Create;
 Wuerfel.Initalisieren;

 Menue1 := TMenue1.Create;
 Menue1.Initalisieren;

 Menue2 := TMenue2.Create;
 Menue2.Initalisieren;

 Hintergrund := THintergrund.Create;
 Hintergrund.Initalisieren;

 Optionen := TOptionen.Create;
end;

end.
in TForm1.FormCreate wir zuerst das Objekt Variable erzeugt(Variable :=TVariable.Create und danach die Prozedure Objektinitalisieren aufgerufen. da ich in anderen bereichen keine Fehlermeldung bekomme, scheint dies richtig zu funktionieren.
  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 08:18 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