Sarannya "aa" boleh juga tuh. Tapi kalau popup menunya memiliki 12 item misalnya, yang 
akan memanjang jauh ke bawah, jadi kalau waktu popup, menu akan muncul dengan sudut 
kiri atas di atas label. Item terakhirnya jelas di luar label. Bagaimana kalau yang 
dipilih justru item terakhir? Mouse sudah tidak di atas label lagi.....

  ----- Original Message ----- 
  From: aa 
  To: [EMAIL PROTECTED] 
  Sent: Tuesday, November 11, 2003 10:46 AM
  Subject: Re: [Delphindo] Sender & popup menu


  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 
       
       

  Berlangganan: [EMAIL PROTECTED]
  Stop Berlangganan: [EMAIL PROTECTED]
  Keluhan Milis(Unbouncing,spam,dll): [EMAIL PROTECTED] 

  Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service. 



[Non-text portions of this message have been removed]


------------------------ 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/ 


Kirim email ke