![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Моё меню [D7, WinXP]
Borland © (2005-08-07 09:28:00)Как сделать чтобы при правом щелчке по форме появлялось моё всплывающее меню,
Borlan (2005-08-08 15:13:00) [1]Большое спасибо!
Borlan (2005-08-08 15:12:00) [2]Большое спасибо!
Ega23 (2005-08-08 15:02:00) [3]Например, можно так. Только сначала придётся фокус в конкретный 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 14:18:00) [4]А можно показать на моём случае?
Ega23 (2005-08-08 14:06:00) [5]А это потому, что в моём случае в качестве Sender выступал именно TEdit, а в твоём - PopupMenuItem.
Borlan (2005-08-08 14:00:00) [6]Я подумал и подставил
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 13:34:00) [7]А подумать чуть-чуть?
Borlan (2005-08-08 13:28:00) [8]Мне надо с использованием PopupMenu
Ega23 (2005-08-08 13:21:00) [9]или может можно как-то сделать чтобы при шелчке по 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:08:00) [10]Возникла ещё одна проблема:
У меня 5 Edit'ов я создаю popupmenu1 в котором есть пункт который должен очищать Edit. Так вот мне что нужно для каждого Edit'а на форму кидать по popupmenu, или может можно как-то сделать чтобы при шелчке по Edit1...5 очищался только он?
Borlan (2005-08-08 13:03:00) [11]Спасибо. Всё получилось.
Leonid Troyanovsky (2005-08-07 22:33:00) [12]
> Borlan (07.08.05 22:22) [8]
> Ну я не понимаю как сделать [1].
> Поэтому нужен код.
Поищи в своем компьютере menu.dpr
--
Regards, LVT.
Dimp (2005-08-07 22:29:00) [13]Form1.PopupMenu:=PopupMenu1;
Borlan (2005-08-07 22:23:00) [14]Ой. простите
Borlan (2005-08-07 22:22:00) [15]Ну я не понимаю как сделать [1].
Поэтому нужен код.
Borlan (2005-08-07 22:22:00) [16]Ну я не понимаю как сделать [1].
Поэтому нужен код.
Borlan (2005-08-07 22:21:00) [17]Ну я не понимаю как сделать [1].
Поэтому нужен код.
Borlan (2005-08-07 22:21:00) [18]Ну я не понимаю как сделать [1].
Поэтому нужен код.
Alexander Panov (2005-08-07 14:30:00) [19]Borland © (07.08.05 14:11) [3]
Вот если что не получится, тогда пожалуйста.
Borland (2005-08-07 14:11:00) [20]А можно какой нибудь пример, а то так с ходу ...