Показать сообщение отдельно
  #5  
Старый 15.09.2018, 05:30
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Сорри, забыл как оно там. Вот так работает:
Код:
type
  TForm1 = class(TForm)
    lbClickMe: TLabel;
    pmClickMe: TPopupMenu;
    miClickMe1: TMenuItem;
    miClickMe2: TMenuItem;
    miClickMe3: TMenuItem;
    edEdit: TEdit;
    procedure lbClickMeClick(Sender: TObject);
    procedure pmClickMeClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.lbClickMeClick(Sender: TObject);
var
  p : TPoint;
begin
  p.X := (Sender As TLabel).Left;
  p.Y := (Sender As TLabel).Top + (Sender As TLabel).Height + 2;
  p := ClientToScreen(p);
  pmClickMe.Tag := Integer(Sender);
  pmClickMe.Popup(p.X,p.Y);
end;

procedure TForm1.pmClickMeClick(Sender: TObject);
var
  lb : TLabel;
begin
  lb := TLabel(pmClickMe.Tag);
  lb.Caption := (Sender As TMenuItem).Caption;
end;

pmClickMeClick назначен всем пунктам меню.

По поводу TEdit.
Надо поставить такие свойства в соотв. значения:
Код:
BorderStyle := bsNone;
BevelInner := bvNone;
BevelOuter := bvNone;
Color := clBtnFace;
Ответить с цитированием