HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Tetszőleges alkalmazás beágyazása egy másikba


Példaprogram letöltése

7352 bájt


Egy apró trükkel elérhetjük, hogy egy tetszőleges alkalmazás egy másik ablakaként jelenjen meg, úgy mintha csak egy MDI Child lenne.
Így például saját Delphi-s alkalmazásunkba könnyedén beépíthetjük mondjuk a Word-öt és így alkalmazásunk máris tartalmaz egy komplett szövegszerkesztő modult. Persze ez nem csak a Word-el oldható meg, hanem bármilyen más alkalmazással is. Mellékelt példában a Notepad-ot használjuk fel a programunkban.

A megoldás abban áll, hogy programból elindítjuk a kívánt alkalmazást, majd az alkalmazás főablakának azt mondjuk, hogy a mi programunk ablaka legyen annak a szülője. Ettől kezdve az elindított alkalmazás egy MDI Child ablakhoz hasonlóan fog viselkedni és csak a mi alkalmazásunk területén belül lesz mozgatható.
procedure TForm1.ToolButton1Click(Sender: TObject);
begin
Első lépésként indítsuk el a Notepad alkalmazást. Ezt rejtett módban tesszük, mert különben az ablak felvillanna mielőtt a mi programunk ablakának területére kerülne.
  WinExec('notepad.exe', SW_HIDE);
Várakozunk egy kis időt, amíg a Notepad elindul.
  Sleep(500);
Majd lekérdezzük a főablakának azonosítóját.
  FWnd:=FindWindow('notepad', nil);
Ezt követően állítjuk be, hogy a mi programunk ablaka legyen a szülője a Notepad-nak.
  Windows.SetParent(FWnd, Panel1.Handle);
Végül már csak annyi marad hátra, hogy a Notepad-ot megjelenítsük a Panel1 komponensünk területének méretéhez igazítva.
  SetWindowPos(FWnd, 0, 0, 0, Panel1.ClientWidth, Panel1.ClientHeight, SWP_NOZORDER or
      SWP_SHOWWINDOW);
  ShowWindow(FWnd, SW_SHOWMAXIMIZED);
end;

Készítünk egy olyan funkciót is az alkalmazásunkhoz, mellyel bezárhatjuk a Notepad-ot. Ehhez csak annyi a teendőnk, hogy a már megszerzett ablakazonosító felhasználásával küldünk egy WM_CLOSE üzenet a Notepad-nak, mely ennek hatására bezárul.
procedure TForm1.ToolButton2Click(Sender: TObject);
begin
  SendMessage(FWnd, WM_CLOSE, 0, 0);
end;







Cikksorozat

#IDKategóriaCikk címeSorozat
3916WindowsA javascript nyelv bemutatása1. rész
3946WindowsJavascript változók és operátorok2. rész
3975WindowsKódvezérlés JScript-ben3. rész
4004WindowsFüggvények és objektumok4. rész
4036WindowsFejlett funkciók a JavaScript nyelvben5. rész
4066WindowsFejlett funkciók a JavaScript nyelvben - folytatás6. rész
4116WindowsReguláris kifejezések7. rész
4145WindowsReguláris kifejezések - folytatás8. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2001 évkönyv 639. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |