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.
January 10, 2008 at 1:58 am
aku coba kok g bisa y??
tolong lebih diperjelas lagi…
aku errornya di message WM_MOVE…
makasih…
January 10, 2008 at 4:46 am
halo, salam kenal bejitalun.. ini saya emailkan file sourcenya dan bisa dijalankan, semoga bisa memperjelas.. Trims
January 10, 2008 at 11:49 am
wah…makasih banget mas..
ternyata langsung dikirim…
thanx yaw….
semoga update terus…
January 11, 2008 at 12:01 am
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
January 11, 2008 at 1:27 am
bisa dicoba
MoveWindow(Form2.Handle, Form1.Left+Form1.Width+5, Form1.Top, Form2.Width,diganti denganMoveWindow(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 denganStayOnTopJanuary 11, 2008 at 2:43 am
makasih mas….
ternyata kelewatan waktu baca propertynya
makasih…sekarang dah bisa dibuat untuk ‘ngakali’ program..
hehe….