Dua Form yang beriringan

November 21, 2007

Kadangkala diperlukan dua buah form, misalnya form1 dan form2 berjalan beriringan. Maksudnya beriringan yaitu bila form1 sebagai form utama dipindah/didrag maka form2 juga mengikuti pergerakan form1 itu kemanapun posisi pindahnya ya.. form2 yang setia sama form1 ceritanya.
Prosesnya pada message WM_MOVE yang muncul bila form1 digerakkan dan fungsi windows API MoveWindow untuk menggerakkan form2 ke posisi form1 yang baru :
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
{ meng-override message WM_MOVE}
procedure WMMove(var Msg: TWMMove); message WM_MOVE;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
begin
form2.Show;
end;

{procedure berikut akan dijalankan bila form1/window utama digerakkan/moved}
procedure TForm1.WMMove(var Msg: TWMMove);
begin
{if the toolbar window exists...}
if Form2<>nil then
{...move the toolbar window alongside the main window.}
MoveWindow(Form2.Handle, Form1.Left+Form1.Width+5, Form1.Top, Form2.Width,
Form2.Height, true);
end;

end.

6 Responses to “Dua Form yang beriringan”

  1. bejitalun Says:

    aku coba kok g bisa y??
    tolong lebih diperjelas lagi…
    aku errornya di message WM_MOVE…
    makasih…

  2. ctrlf9 Says:

    halo, salam kenal bejitalun.. ini saya emailkan file sourcenya dan bisa dijalankan, semoga bisa memperjelas.. Trims

  3. bejitalun Says:

    wah…makasih banget mas..
    ternyata langsung dikirim…
    thanx yaw….

    semoga update terus…

  4. bejitalun Says:

    tanya lg mas…
    aku pengennya form2 da di atas form1….bisa g?
    jadi kl form1 dipindahkn kemana2,form2 ttp berada diats form1 & bisa dilihat,mis: edit1 pd form2 ttp bs dlht di ats form1.
    tadi dah ku cari caranya blm ketemu2..sapa tau anda tau…
    trims

  5. ctrlf9 Says:

    bisa dicoba MoveWindow(Form2.Handle, Form1.Left+Form1.Width+5, Form1.Top, Form2.Width, diganti dengan MoveWindow(Form2.Handle, Form1.Left, Form1.Top+30, Form2.Width, karena bagian ini yang ngatur posisi form2, agar form2 diatas form1 property Form Style di form2 diganti dengan StayOnTop

  6. bejitalun Says:

    makasih mas….
    ternyata kelewatan waktu baca propertynya :D
    makasih…sekarang dah bisa dibuat untuk ‘ngakali’ program..
    hehe….


Leave a Reply