On Tue, Nov 11, 2003 at 08:35:19AM +0700, Gulut wrote:
> Monday, November 10, 2003, 2:21:35 PM, Irwan wrote:
> I> saya punya 2 label, lblA dan lblB
> I> kedua label tsb menggunakan popup menu yg sama
> I> bagaimana menentukan bahwa popup menu diaktifkan oleh lblA atau lblB?
> I> saya udah pake sender, kok gak bisa, ya?
>
> I> saya udah coba di event OnClick-nya item popup menu & OnPopUp si popup menu.
> I> if Sender = lblA then
> I> form1.caption := 'lblA'
> I> else if Sender = lblB then
> I> form1.caption := 'lblB';
> I> gak ada hasil
>
> saya liat kalo pada OnPopUp sender itu kan menu, jadi if-nya tidak ada
> yang masuk.
>
> gini aja coba:
> procedure TForm1.Label1MouseUp(Sender: TObject; Button: TMouseButton;
> Shift: TShiftState; X, Y: Integer);
> begin
> form1.caption:=(sender as TLabel).name;
> end;
>
> rgrds,
> Gulut
>
sebetulnya masih bisa, dengan menggunakan fungsi getcursosrpos
untuk mendapatkan posisi kursor, selanjutnya screentoclient
untuk mendapatkan posisi relatifnya di form dan akhirnya
getcontrolatpos untuk mengetahui komponen/control yang ada di
posisi kursor tsb
const
YES = TRUE;
NO = not YES;
ALLOW_DISABLE = YES;
DONT_ALLOW_DISABLE = NO;
TEXTLABEL1 = 'Label ke-1';
TEXTLABEL2 = 'Label ke-2';
TEXTLABEL3 = 'Label ke-3';
procedure TForm1.PopupMenu1Popup(Sender: TObject);
var
pt: TPoint;
Control: TControl;
begin
GetCursorPos(pt); // posisi cursor di desktop (koordinat global)
// ScreenToClient(pt); // it does NOT work as expected!
Windows.ScreenToClient(handle, pt); // use this instead
Control:= ControlAtPos(pt, DONT_ALLOW_DISABLE);
if Control is TLabel then
with TLabel(Control) do
showmessage(Caption);
// selanjutnya boleh juga misalkan..
if Control = Label1 then
Caption:=(TEXTLABEL1)
else
if Control = Label2 then
Caption:=(TEXTLABEL2)
else
if Control = Label3 then
Caption:=(TEXTLABEL3)
else;
// btw, advanced programer tidak biasa menggunakan cara
// if-else bertingkat spt diatas, kecuali Larry Wall :)
end;
hth.
aa, http://www.google.com/search?q=aa+delphi
------------------------ Yahoo! Groups Sponsor ---------------------~-->
Buy Ink Cartridges or Refill Kits for your HP, Epson, Canon or Lexmark
Printer at MyInks.com. Free s/h on orders $50 or more to the US & Canada.
http://www.c1tracking.com/l.asp?cid=5511
http://us.click.yahoo.com/mOAaAA/3exGAA/qnsNAA/i7folB/TM
---------------------------------------------------------------------~->
Berlangganan: [EMAIL PROTECTED]
Stop Berlangganan: [EMAIL PROTECTED]
Keluhan Milis(Unbouncing,spam,dll): [EMAIL PROTECTED]
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/