AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

"Element '' hat kein übergeordnetes Fenster"

Ein Thema von xZise · begonnen am 12. Feb 2007 · letzter Beitrag vom 15. Feb 2007
Antwort Antwort
Seite 2 von 3     12 3   
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#11

Re: "Element '' hat kein übergeordnetes Fenster"

  Alt 14. Feb 2007, 14:41
Wir hatten die Diskussion vor kurzem doch erst

Aber für dich noch mal, so weit ichs in Erinnerung habe: Änderung an den TStrings wird sofort an die WinAPI weitergegeben, die das umzusetzen versucht. Geht aber nicht ohne bereits angezeigtes Parentwindow.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#12

Re: "Element '' hat kein übergeordnetes Fenster"

  Alt 14. Feb 2007, 14:56
Zitat von DGL-luke:
Wir hatten die Diskussion vor kurzem doch erst
Link?

Und übrigens habe ich kA, was das verbockt. Aber ich nehme eben an das es die TStrings Property ist, da der Fehler meist dann kommt, wenn ich diesen Wert ändere.
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#13

Re: "Element '' hat kein übergeordnetes Fenster"

  Alt 14. Feb 2007, 15:01
Das verbockt nichts. Probier rum und denk ab und zu logisch, du hast den Debugger und ich bin um ehrlich zu sein () einfach zu faul es einzubauen. Diesen Fehler hatte ich schon oft und irgendwie hab ich es immer hinbekommen. Einfach mal nachdenken....
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 16. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: "Element '' hat kein übergeordnetes Fenster"

  Alt 14. Feb 2007, 15:58
Täusche ich mich oder wird hier tatsächlich immer hübsch abwechselnd mal von der Listbox und mal von der Stringliste geredet?
Delphi-Quellcode:
  private
    FCompletionList : TStrings;
    completionBox : TListBox;
Ich weiß überhaupt nicht, welches Problem genau mit welchem Feld von TCompletionMemo genau wann genau auftritt.
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#15

Re: "Element '' hat kein übergeordnetes Fenster"

  Alt 14. Feb 2007, 16:16
So... Jetzt kompiliert er immerhin... Wahrscheinlich, weil ich bei TCustomMemo gesehen habe, dass das Setzen der Variable nicht einfach "FCompletionList" ist, sondern in eine Funktion ausgelagert werden muss...

@ Ingo: Ich hatte vorher keine Anhnung, warum und was etc. Ich kannte nur diese Fehlermeldung.
Allerdings habe ich jetzt das Problem, dass keine ListBox angezeigt wird... Und (siehe oben) die Daten (Breite, Höhe, Owner und Parent) setze ich ja...

Nagut... Es funktioniert doch nicht ganz so:
Zitat:
---------------------------
Fehler
---------------------------
nil kann nicht zu TRichEditStrings zugewiesen werden.
---------------------------
OK Details >>
---------------------------
Kommt, wenn ich diesen Dialog anzeigen will um die strings zu setzen...
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 16. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: "Element '' hat kein übergeordnetes Fenster"

  Alt 14. Feb 2007, 17:42
Nimm's mir nicht übel, aber das meiste muss man sich immer erst mühsam zusammenreimen, ehe man ungefähr weiß, wo es bei dir brennt ...

Dass es irgendwie so (siehen nachfolgend) heißen muss, hattest du schon herausbekommen, oder?

Delphi-Quellcode:
protected
  procedure SetCompletionList(Value: TStrings);
published
  property CompletionList : TStrings read FCompletionList write SetCompletionList;
Wie sieht denn jetzt deine Methode SetCompletionList genau aus?
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#17

Re: "Element '' hat kein übergeordnetes Fenster"

  Alt 14. Feb 2007, 18:02
Ja... War mir bekannt (stand ja so in CustomMemo)... Habe es auch schon geändert.
Die Funktion:
FCompletionList.Assign(Value); Was mich irretiert, das die Items der Meo keine TStrings, sondern TMemoStrings sind... Und aauch scheint es irgendwie bei fast jeder Komponente so zu sein, dass sie statt TStrings TXXXXStrings nehmen (o.ä.)...

Mal geraten: Hängt es damit zusammen?


Zitat von IngoD7:
Nimm's mir nicht übel, aber das meiste muss man sich immer erst mühsam zusammenreimen, ehe man ungefähr weiß, wo es bei dir brennt ...
Das Hauptproblem ist ja, dass es in der IDE passiert Und da hilft debugen nichts...
Was mich auch irretiert ist, dass die Listbox nicht erscheint, obwohl die Funktion aufgerufen wird
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: "Element '' hat kein übergeordnetes Fenster"

  Alt 14. Feb 2007, 18:26
das ist das was die ganze zeit versucht wird dir zusagen TStrings ist eine abstrakte Basisklasse. Die ganzen Elemente wie Listboxen, Memos etc. haben eine davon abgeleitete Klasse welche das lesen und schreiben von Einträgen direkt auf die WinApi abbilden. Wenn aber zu dem Zeitpunkt das Control noch nicht angelegt ist (kein Handle angefordert etc.) kann nichts auf die WinApi abgebildet werden.

Noch was aus meiner persönlichen Sicht:
Sowas gehört sich nicht:
Delphi-Quellcode:
constructor TComponentNachfahre(AOwner: TComponent);
begin
  [...]
  MemberVar := AOwner as TWinControl;
  [...]
der Owner von TComponent hat nichts mit dem Parent oder anderen Visuellen Dingen zu tun geschweige dem mit Handles. Du kannst/solltest/darfst nie davon ausgehen das überhaupt ein Owner übergeben wird. Wenn Komponenten dynamisch erzeugt werden ist der Owner oftmals nil weil er nicht benötigt wird -> denn Dinge die man selbst anlegt/instanziert räumt man auch selbst wieder auf und ist somit nicht auf den Owner angewiesen der teilweise in der Objecthierarchy auch nicht vorhanden ist die man sich im Konzept überlegt hat.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#19

Re: "Element '' hat kein übergeordnetes Fenster"

  Alt 14. Feb 2007, 22:20
Zitat von SirThornberry:
Wenn aber zu dem Zeitpunkt das Control noch nicht angelegt ist (kein Handle angefordert etc.) kann nichts auf die WinApi abgebildet werden.
Und das heißt?
Soll ich also Beispielsweise die Items von der Listbox nehmen (ich komme net auch den namen)?
Problem: "TListBoxStrings" ist sozusagen "privat", also für mich nicht zugänglich....

Zitat von SirThornberry:
Noch was aus meiner persönlichen Sicht:
Sowas gehört sich nicht:
Delphi-Quellcode:
constructor TComponentNachfahre(AOwner: TComponent);
begin
  [...]
  MemberVar := AOwner as TWinControl;
  [...]
Ich weiß, nur muss ich doch (höchstwahrscheinlich?) meiner Listbox ein Parent zuweisen. Jedenfalls müsste ich das wenn ich sie dynamisch in meiner Anwendung erstelle. Aufgrund dessen wollte ich der Listbox ein Parent zuweisen.
Das Problem ist aber, dass ich jetzt nicht genau weis was als Parent genommen wird.
Gibt es vielleicht bessere Vorschläge?
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 16. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#20

Re: "Element '' hat kein übergeordnetes Fenster"

  Alt 14. Feb 2007, 22:31
Zitat von SirThornberry:
Wenn Komponenten dynamisch erzeugt werden ist der Owner oftmals nil weil er nicht benötigt wird -> denn Dinge die man selbst anlegt/instanziert räumt man auch selbst wieder auf und ist somit nicht auf den Owner angewiesen der teilweise in der Objecthierarchy auch nicht vorhanden ist die man sich im Konzept überlegt hat.
Ergänzung:
Wenn es sich aber - so wie hier - um eine visuelle Komponente handelt, spricht doch nichts dagegen, den Owner vorzusehen. Dazu passend spricht auch nichts dagegen, der zur Laufzeit erzeugten visuellen Komponente als Owner das Form zu übergeben, auf dem die Komponente angezeigt wird. Hat auch den Vorteil, dass sie in der Eigenschaft Components des Form eingetragen wird, was oftmals nützlich ist.

Zudem sagt die Hilfe folgendes:
Zitat:
"Der Eigentümer ist für das Laden und Speichern der published-Eigenschaften seiner untergeordneten Komponenten verantwortlich."
Ich weiß zwar gerade nicht so wirklich, was das bedeutet, aber es klingt nicht unwichtig.

Ich sehe daher nicht viele Gründe, einen Owner nicht vorzusehen. Möchte man keinen übergeben bei Txxx.Create(aOwner), so übergibt man eben NIL.

Und da z.B. fangen die Probleme dann an, wenn man - so wie speziell hier geschehen - den Owner pauschal auch zum Parent erklären möchte. Denn das kann (trotz oder gerade wegen Typecast auf TWinControl) schön schiefgehen, wenn eben der Owner kein TWinControl ist.

Ich denke, SirThornberry meint das auch so; ich wollte es nur noch mal etwas verdeutlichen.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:55 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