![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
||||
|
||||
|
Прошу помощи у знающих людей.
Умаялся с этой задачей... Итак суть.Необходимо сделать следующее: При нажатии кнопки - выскакивает попап меню со строками количество и название которых берется из тхт файла. Меню появляется соотвественно у указателя мыши. Вот что у меня получилось... Код:
var
Form1: TForm1;
mousP2: TPoint;
f:TextFile;
s:string;
i: integer;
procedure TForm1.Button1Click(Sender: TObject);
begin
AssignFile(F, 'items.txt');
Reset(f);
While not eof(f) do
begin
ReadLn(f, s);
with PopUpMenu1.Items do
begin
i:=i+1;
Add(NewItem(s,0,False,True,nil,0,'MenuItem'+ inttostr(i)));
GetCursorPos(mousP2);
PopupMenu1.Popup(mousP2.X, mousP2.Y);
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
i:=0;
end;
end.Где-то ошибка. В итоге в попап меню одна строчка - последняя. В то время как в файле - три. |
|
#2
|
||||
|
||||
|
Надеюсь объяснил понятно, что к чему...
|
|
#3
|
|||
|
|||
|
Что-то не очень понятно, зачем вы вызываете метод Popup внутри цикла while. Вынесите вызов этого метода вниз, за пределы цикла.
|
|
#4
|
||||
|
||||
|
Спасибо.Действительно, что-то совсем очевидное решение
![]() Еще была проблема - повторное создание пунктов меню. То есть, одно нажатие на кнопку - 3 пункта, второе 6 и т.д. Вылечил - добавлением PopupMenu1.Items.Clear; |
|
#5
|
||||
|
||||
|
Вопрос в догонку.
Как сделать так, что бы при щелчке на созданный пункт меню, его заголовок заносился в Edit ? Код:
Add(NewItem(s,0,False,True,MenuItemClick,0,'MenuItem'+ inttostr(i))); MenuItemClick - это соотвественно процедура обработки нажатия. Она будет одна на все пункты меню Код:
procedure TForm1.MenuItemClick(Sender: TObject); begin Edit1.Text:= _______ end; И что нужно писать в _______? Как идентифицировать нажатый пункт меню? Есть идеи? |
|
#6
|
|||
|
|||
|
Код:
Edit1.Text:= (Sender as TMenuItem).Caption; |