![]() |
mehrere Anwendungen in einem Fenster anzeigen.
Hallo,
wie kann man mehrere Anwendungen gleichzeitig in einem Fenster anzeigen. z.B. oben links eine Excel Datei, oben rechts ein WordDokument unten links einen Browser mit Webseite usw |
Re: mehrere Anwendungen in einem Fenster anzeigen.
Du könntest die Handles suchen, und den Fenstern ein neues Parent zuweisen:
Delphi-Quellcode:
[EDIT]
var
Word, Excel: hWnd; Thread, WordThread, ExcelThread: Handle; begin // Fenster suchen Word := FindWindow(nil,'Fenstertext'); Excel := FindWindow(nil,'Fenstertext'); // Parent setzen SetParent(Word, Form1.Handle); SetParent(Excel, Form1.Handle); // Threads suchen Thread := GetCurrentThreadID; WordThread := GetWindowThreadProcessId(Word,nil); ExcelThread := GetWindowThreadProcessId(Excel,nil); // Input verknüpfen AttachThreadInput(Thread,WordThread,true); AttachThreadInput(Thread,ExcelThread,true); // Fenster verschieben / Größe setzen MoveWindow(Word,0,0,500,500); MoveWindow(Excel,500,0,500,500); // Child-Style setzen SetWindowLong(Word,GWL_STYLE,GetWindowLong(Word,GWL_STYLE) or WS_CHILD); SetWindowLong(Excel,GWL_STYLE,GetWindowLong(Excel,GWL_STYLE) or WS_CHILD); end; Falls du auch die Titelleisten weg haben willst:
Delphi-Quellcode:
SetWindowLong(Word,GWL_STYLE,GetWindowLong(Word,GWL_STYLE) and not (WS_CAPTION or WS_BORDER or WS_SIZEBOX));
|
Re: mehrere Anwendungen in einem Fenster anzeigen.
Oder mit OleContainern
|
Re: mehrere Anwendungen in einem Fenster anzeigen.
OleContainer gehen aber nicht mit jeder Anwendung, die müssen dafür schon COM-/OLE-fähig sein.
Wenn es nur um Word, Excel usw. geht, ist OLe wahrscheinlich die bessere Lösung, aber wenn du z.B. auch ein eigenes Programm darin laufen haben willst, wird meine Lösung einfacher. |
Re: mehrere Anwendungen in einem Fenster anzeigen.
Seine Nennungen waren als Office-Programme
|
Re: mehrere Anwendungen in einem Fenster anzeigen.
Dann wird OLE sicherlich sinnvoller sein.
Meine Lösung hat nämlich noch den Nachteil, das Menüs nicht mehr sichtbar sind. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:26 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