Hallo,
das injizieren scheint ja nicht das Problem zu sein.
Wenn Du das Control bzw. das Form in einen eigenen Thread legst sollte es permanent angezeigt werden.
etwas pseudocode
Delphi-Quellcode:
//zum Erzeugen:
wthreathandle := CreateThread(nil, 0, TFNThreadStartRoutine(@frmmsgThread), nil, 0, ThreadID);
//Zum zerstören:
PostThreadMessage(RTFCont.tid,WM_USER+$FFFF,0,0);
function frmmsgThread(): LongInt; stdcall;
var
wmsg : tmsg;
X,i : integer;
twhwnd : thandle;
begin
try
twhwnd := getcurrentwindo; // oder einfach übergeben
RTFCont := tForm1.createparented(twhwnd);
RTFCont.tid := getcurrentthreadid;
setparent (RTFCont.Handle,twhwnd);
RTFCont.show;
while wMSG.message <> WM_USER+$FFFF do
begin
GetMessage(wMsg,0,0,0);
TranslateMessage(wMsg);
DispatchMessage(wMsg);
end;
RTFCont.free;
except
end;
end;
RTFCont ist ein Form auf dem des Control liegt, in dem Beispiel ein RTF-Control.
Im Prinzip kann man mit diesem, nicht wirklich sauberen, Konstrukt nahezu jedes Delphi-Control in jeder Windwos-Anwendung (Konsolen ausgenommen) platzieren.
Gruß
Martin
[edit=SirThornberry]Code-Tags durch Delphi-Tags ersetzt - Mfg, SirThornberry[/edit]