AGB  ·  Datenschutz  ·  Impressum  







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

Element hat kein übergeordnetes Fenster

Ein Thema von F.W. · begonnen am 14. Mai 2006 · letzter Beitrag vom 16. Mai 2006
Antwort Antwort
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#1

Element hat kein übergeordnetes Fenster

  Alt 14. Mai 2006, 18:57
Hallo allerseits!

Ich hab mal wieder ein neues Problem, habe es schonmal in einem anderen Thread angehängt, aber möchte jetzt nochmal etwas genauer drauf eingehen:

Ich habe mit Delphi eine Dll geschrieben, in dieser ist ein Frame.
In der Dll gibt es zwei Funktionen die von Außerhalb aufgerufen werden sollen:

Delphi-Quellcode:
//Zum Erstellen eines Frame:
function CreateFrame(Parent: TWinControl; Client: TIdTCPClient): TFrame; stdcall; export;
begin
 Frame := TFileSystemFrame.Create(Parent);
 Frame.Parent := Parent;
 Frame.TCPClient := Client;
 Frame.Visible := True;
 Result := Frame;
end;

//Zum Freigeben des Frames:
procedure FreeFrame; stdcall;
begin
 Frame.Free
end;
Mein Programm ruft die Funktion CreateFrame auf und übergibt ihr als Parent ein Panel.
Ich habe einen Frame da klappt alles (da sind nur 3 Buttons und 3 Labels drauf).
Aber jetzt habe ich eine 2. Dll mit wieder dem selben Aufbau (das ganze stellt mein Pluginsystem dar).
Das Problem: Auf der sind (ich weiß nicht ob das was zu sagen hat) unter anderem 2 Listviews und 2 Edits.
Wenn ich auf ein Listview klicke kommt der Fehler "Element 'XYZ' hat kein übergeordnetes Fenster". Das selbe kommt auch wenn ich mit rechts auf eins der Edits klicke (mit Links passiert nichts)
Ich habe mir mal den ClassName vom Parent des jeweiligen Elements XYZ ausgeben lassen, das funktioniert!

Wo liegt mein Fehler? Was kann ich machen?
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

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

Re: Element hat kein übergeordnetes Fenster

  Alt 14. Mai 2006, 19:19
Musst du vielleicht noch den Owner zuweisen?
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 SirThornberry
SirThornberry
(Moderator)

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

Re: Element hat kein übergeordnetes Fenster

  Alt 14. Mai 2006, 19:45
ich hoffe du verwendest die Unit ShareMem und die Objecte sind in DLL und Hauptprogramm zu 100% identisch
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#4

Re: Element hat kein übergeordnetes Fenster

  Alt 14. Mai 2006, 20:07
Die Unit Sharemem ist die erste eingebundene Unit in den Projektdateien.
Also das Programm und die Dlls sind mit exakt dem selben Delphi (nämlich meinem ) compiliert.
Das Hauptprogramm weiß nur, eigentlich garnichts von dem Frame, der Frame nistet sich einfach ein.
Anfangs war CreateFrame noch eine Procedure, die Function, die das T...Frame-Objekt zurückgibt hat auch jetzt noch keine Verwendung.

Edit: @DGL-luke: Ich habe mal in der OH nachgeschaut wofür der Owner ist. Hört sich passend an, aber es ist eine Nur-Lesen-Eigenschaft, ich kann ihr nichts zuweisen.

Weil ich den Frame ja aus der Dll hole, muss ich ihn dann vlt. ansehen wie ein NonVCL Objekt?
Ich weiß nicht was es damit auf sich hat, aber ich habe mal was über die Eigenschaft ParentWindow gelesen...
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#5

Re: Element hat kein übergeordnetes Fenster

  Alt 16. Mai 2006, 17:34
Das Problem ist gelöst! Ich nehme statt einem Frame eine TForm!

Code zum Laden (allgemein):
Delphi-Quellcode:
function CreatePluginForm(AParent: THandle): TForm;
begin
 PluginForm := TPluginForm.CreateParented(AParent);

 with PliginForm do begin
   HandleNeeded;
   BorderStyle := bsNone;
   Align := alClient;
   Show;
 end;
end;
Danke an jensw_2000!!
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:13 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