![]() |
Firemonkey SetParent
Hallo zusammen,
undzwar habe ich folgendes Problem....
Delphi-Quellcode:
Das ist der Code um ein Fenster (notepad) auf ein Panel zu werfen... Funktioniert einwandfrei in VCL, jedoch wollte ich das ganze dann in FireMonkey testen und da gings dann leider nicht, weil dort die Komponenten keine Handle haben :shock:
procedure TForm1.Button1Click(Sender: TObject);
var wnd2: HWND; begin wnd2 := 0; wnd2 := Findwindow('CalcFrame', nil ); SetWindowPos(wnd2, 0, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOZORDER); if wnd2 <> 0 then begin windows.SetParent(wnd2, form1.panel1.Handle); end; end; Es geht wenn man das Fenster auf die Form selber wirft, da werden dann aber bei Bewegung des Fensters einige Teile abgeschnitten oder Verschwinden, aber wenn ein anderes Programm ausgewählt wird, zeichnet sich das Fenster neu und alles passt wieder. Nun zu meiner Frage: 1. Ist es möglich durch ein paar tricksereien das Notepad innerhalb des Panels zu zeichnen? 2. Wie könnte man den "bug" optimieren, dass einige Teile abgeschnitten bzw nicht gezeichnet werden, wenn man notepad innerhalb von FireMonkey bewegt? Su-Fu genutzt aber leider nichts passendes gefunden, falls jemand doch was hat einfach den Link posten :) Vielen Dank im Voraus! -Eugeene -Edit- Ups, in dem obrigem Beispiel war der Versuch mit dem Rechner von Windows. |
AW: Firemonkey SetParent
1.) Nein, weil nur das Fenster ein Fenster(object) aus Windowssicht ist.
2.) Schicke dem fremdem Fenster eine Redrawmessage
Delphi-Quellcode:
Res := SentMessage( wnd2, WM_SETREDRAW, True,0);
|
AW: Firemonkey SetParent
Vielen Dank!
Das es keine möglichkeit zum Parenten gibt ist schade... Aber das mit dem Redraw Funktioniert, dankeschön! Hab es so gelöst:
Delphi-Quellcode:
RedrawWindow(wnd2, nil, 0, RDW_ERASE or RDW_FRAME or RDW_INVALIDATE or RDW_ALLCHILDREN);
Grüße, -Eugeene |
AW: Firemonkey SetParent
Zitat:
Du kannst im Resize-Event des Panel dein Notepad positionieren und im Draw-Event das neumalen auslösen. Wenn es nur ums Darstellen ginge, dann das extere Programm in einem unsichtbaren Dummy-Fenster verstecken (Parent) und im Draw die andere Form sich auf das Panel-Canvas malen lassen. Man könnte natürlich auch Fragen was ein natives Windows-Fenster in einem "Nichtnativen"-Windows-Fenster zu suchen hat. :angel: |
AW: Firemonkey SetParent
Zitat:
Grüße, -Eugeene |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz