Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.11;
Скачать: CL | DM;

Вниз

Моё меню   Найти похожие ветки 

 
Borland ©   (2005-08-07 09:28) [0]

Как сделать чтобы при правом щелчке по форме появлялось моё всплывающее меню,


 
Ольга   (2005-08-07 09:55) [1]

Создайте PopupMenu и пропишите его имя в форме (свойство Form.PopupMenu)


 
msguns ©   (2005-08-07 09:56) [2]

У предка визибельных кнотролов TControl есть св-во PopUpMenu. Если оно открыто в текщем объекте, именно через него и привязывается указанное всплыв.меню.


 
Borland ©   (2005-08-07 14:11) [3]

А можно какой нибудь пример, а то так с ходу ...


 
Alexander Panov ©   (2005-08-07 14:30) [4]

Borland ©   (07.08.05 14:11) [3]
Вот если что не получится, тогда пожалуйста.


 
Borlan   (2005-08-07 22:21) [5]

Ну я не понимаю как сделать [1].
Поэтому нужен код.


 
Borlan   (2005-08-07 22:21) [6]

Ну я не понимаю как сделать [1].
Поэтому нужен код.


 
Borlan   (2005-08-07 22:22) [7]

Ну я не понимаю как сделать [1].
Поэтому нужен код.


 
Borlan   (2005-08-07 22:22) [8]

Ну я не понимаю как сделать [1].
Поэтому нужен код.


 
Borlan   (2005-08-07 22:23) [9]

Ой. простите


 
Dimp   (2005-08-07 22:29) [10]

Form1.PopupMenu:=PopupMenu1;


 
Leonid Troyanovsky ©   (2005-08-07 22:33) [11]


> Borlan   (07.08.05 22:22) [8]
> Ну я не понимаю как сделать [1].
> Поэтому нужен код.


Поищи в своем компьютере menu.dpr

--
Regards, LVT.


 
Borlan   (2005-08-08 13:03) [12]

Спасибо. Всё получилось.


 
Borlan   (2005-08-08 13:08) [13]

Возникла ещё одна проблема:
У меня 5 Edit"ов я создаю popupmenu1 в котором есть пункт который должен очищать Edit. Так вот мне что нужно для каждого Edit"а на форму кидать по popupmenu, или может можно как-то сделать чтобы при шелчке по Edit1...5 очищался только он?


 
Ega23 ©   (2005-08-08 13:21) [14]

или может можно как-то сделать чтобы при шелчке по Edit1...5 очищался только он?

Можно. Пример:

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   Edit2: TEdit;
   Edit3: TEdit;
   Edit4: TEdit;
   Edit5: TEdit;
   procedure FormCreate(Sender: TObject);
   procedure EditClear(Sender : TObject);

 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.EditClear(Sender: TObject);
begin
if (Sender is TEdit) then TEdit(Sender).Text:="";
end;

procedure TForm1.FormCreate(Sender: TObject);
var
i:Integer;
begin
for i:=0 to ComponentCount-1 do
 if (Components[i] is TEdit) then
  TEdit(Components[i]).OnDblClick:=EditClear;
end;

end.


 
Borlan   (2005-08-08 13:28) [15]

Мне надо с использованием PopupMenu


 
Ega23 ©   (2005-08-08 13:34) [16]

А подумать чуть-чуть?


 
Borlan   (2005-08-08 14:00) [17]

Я подумал и подставил
var
i:Integer;
begin
for i:=0 to ComponentCount-1 do
if (Components[i] is TEdit) then
 TEdit(Components[i]).OnDblClick:=EditClear;
end;


В обработчик по нажатию кнопки на PopupMenu1, но не срабатывает!
Вернее по Двойному нажатию на Edit"е а, не по нажатию на кнопке всплывающего меню. чего-то до меня не доходит как сделать правильно.


 
Ega23 ©   (2005-08-08 14:06) [18]

А это потому, что в моём случае в качестве Sender выступал именно TEdit, а в твоём - PopupMenuItem.


 
Borlan   (2005-08-08 14:18) [19]

А можно показать на моём случае?


 
Ega23 ©   (2005-08-08 15:02) [20]

Например, можно так. Только сначала придётся фокус в конкретный Edit перевести.

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   Edit2: TEdit;
   Edit3: TEdit;
   Edit4: TEdit;
   Edit5: TEdit;
   PopupMenu1: TPopupMenu;
   hhh1: TMenuItem;
   procedure FormCreate(Sender: TObject);
   procedure EditClear(Sender : TObject);
   procedure hhh1Click(Sender: TObject);
   procedure EditEnter(Sender: TObject);

 private
   { Private declarations }
 public
   { Public declarations }

  ActiveEdit:TEdit;

 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.EditClear(Sender: TObject);
begin
if (Sender is TEdit) then TEdit(Sender).Text:="";
end;

procedure TForm1.EditEnter(Sender: TObject);
begin
if (Sender is TEdit) then ActiveEdit:=TEdit(Sender);
end;

procedure TForm1.FormCreate(Sender: TObject);
var
i:Integer;
begin
for i:=0 to ComponentCount-1 do
 if (Components[i] is TEdit) then
  begin
   TEdit(Components[i]).OnDblClick:=EditClear;
   TEdit(Components[i]).OnEnter:=EditEnter;
   TEdit(Components[i]).PopupMenu:= PopupMenu1;
  end;
end;

procedure TForm1.hhh1Click(Sender: TObject);
begin
if assigned(ActiveEdit) then ActiveEdit.Text:="";
end;

end.


 
Borlan   (2005-08-08 15:12) [21]

Большое спасибо!


 
Borlan   (2005-08-08 15:13) [22]

Большое спасибо!



Страницы: 1 вся ветка

Текущий архив: 2005.09.11;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.031 c
1-1124246472
anton_321
2005-08-17 06:41
2005.09.11
как выводить изображение в DBGrid.


6-1116849791
АНТИСпаммер
2005-05-23 16:03
2005.09.11
Драйвер для перехвата почты


6-1116549473
Hecker
2005-05-20 04:37
2005.09.11
Tracert и Ping?


4-1122112344
Vir
2005-07-23 13:52
2005.09.11
Hardware ID


3-1122897119
Spasalar
2005-08-01 15:51
2005.09.11
отчети в Crystal Reports