Hallo nochmal,
@Assarbad
Ich habe das jetzt mal mit GetProp ausprobiert, bekomme aber beim testweisen Aufruf von
GetProp(Form1.Handle,'WindowProc') aber auch anderen Propertys wie 'Name' oder 'WndProc' leider immer 0 zurück.
@all
Ich habe es jetzt so gemacht wie Christian es vorgeschlagen hat. Den Quelltext habe ich einfach mal mit angehängt. Es werden hier aber leider im ungünstigsten Fall alle Objekte vom Typ TComponent und Nachkommen des Projekts angesprochen. Außerdem werden Formulare, die mit Nil als Owner erzeugt wurden icht gefunden (also MyForm := TForm.CreateNew(Nil))
Delphi-Quellcode:
function TForm1.GetFormFromHandle(FHandle: HWND; ParentComponent : TComponent): TForm;
var i : integer;
begin
Result:=nil;
if (assigned(ParentComponent)) and (FHandle<>0) then
begin
for i:=0 to ParentComponent.ComponentCount-1 do
begin
if ParentComponent.Components[i] is TForm then
begin
if TForm(ParentComponent.Components[i]).Handle=FHandle then
begin
Result:=TForm(ParentComponent.Components[i]);
break;
end;
end;
Result:=GetFormFromHandle(FHandle,ParentComponent.Components[i]);
if assigned(Result) then
break;
end;
end;
end;
vielen Dank und Gruß
Daniel