Delete / Löschen  
Jens Kallup
26.07.2010 - 17:39

TButton auf externes Formular/Anwendung

Hallo,

versuche gerade vergeblich einen TButton auf meine Win32 GUI App.
zu packen.
Wie kann man es besser bewerkstelligen?
Danke
Jens

hier der Code:

procedure TestHwnd(w: integer); cdecl; export;
var b: TButton;
begin
ShowMessage('Handle: '+IntToStr(GetHWNDHandle(w)));

b := TButton.CreateParented(GetHwndHandle(w));
Windows.SetParent(b.Handle,GetHwndHandle(w));
b.Visible := true;
b.Height := 40;
b.Width := 100;
b.Top := 200;
b.Left := 20;
b.Caption := 'Buttontext';
end;

"Peter"
26.07.2010 - 19:47
Jens Kallup wrote:

Hallo,

versuche gerade vergeblich einen TButton auf meine Win32 GUI App.
zu packen.
Wie kann man es besser bewerkstelligen?
Danke
Jens

hier der Code:

procedure TestHwnd(w: integer); cdecl; export;
var b: TButton;
begin
ShowMessage('Handle: '+IntToStr(GetHWNDHandle(w)));

b := TButton.CreateParented(GetHwndHandle(w));
Windows.SetParent(b.Handle,GetHwndHandle(w));
b.Visible := true;
b.Height := 40;
b.Width := 100;
b.Top := 200;
b.Left := 20;
b.Caption := 'Buttontext';
end;

Was funktioniert daran nicht?

Selbst wenn Du den button angezeigt bekommst wird er allerdings nicht
funktionieren. Delphi controls sind abhängig von bestimmten
Verhaltensweisen des jeweiligen parents, und ein nicht-Delphi Container
liefert da einfach nicht die richtige Infrastruktur. Ein TButton
erwartet, z. B., daß sein Parent ihm WM_COMMAND-Meldungen als
CM_COMMAND zurückschickt. Wenn das nicht passiert "klickt" der Button
nicht (sein OnClick-Ereignis wird nicht ausgeführt). Auch das
Funktonieren von Sachen wir Shortcuts, oder Default- und Cancel-
Eingenschaften funktioniert in einer nicht-Delphi Umgebung nicht, da
die Meldungsschleife der Anwendung einfach nicht die notwendige
Zusatzbearbeitung von Key-Messages macht.



--
Peter Below



Ähnliche Themen

Ist Formular x geööfnet in einer MDI-Anwendung?
10.01.2008 - 15:34 - Posts: 4

Anwendung ohne Formular am Leben halten
21.06.2008 - 07:50 - Posts: 5

Die Anwendung konnte nicht richtig installiert werden (0xc0000005), Klicken Sie auf "OK", um die Anwendung zu beenden
05.02.2008 - 15:31 - Posts: 5

ClickOnce: aus Anwendung heraus andere Anwendung deinstallieren
07.06.2010 - 17:30 - Posts: 2

V: externes TA?
19.02.2011 - 19:22 - Posts: 1

Externes kt??
27.03.2009 - 10:05 - Posts: 6

Externes _?
04.09.2007 - 01:36 - Posts: 26

More

Share/Bookmark

<