![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Как создать динамический PopupMenu? Значения надо брать из MS Access.
|
|
#2
|
||||
|
||||
|
Так же, как и любой другой. По динамическому созданию компонентов тысячи статей на этом форуме и на DelphiSources.ru, в гугле и в яндексе.
|
|
#3
|
|||
|
|||
|
Как создавать я знаю, но вот как брать значения из БД никак найти не могу((. Писал вот так:
Код:
var
mi, msub: TmenuItem;
begin
with (Sender as TPopupMenu) do
begin
// Удаляем все пункты меню
// while Items.Count > 0 do Items.delete(0);
while Items.Count > 0 do
Items[0].Free;
// Создаем обычный пункт "Первый"
mi := TMenuItem.Create(self);
with mi do
begin
Caption := 'Предмет';
msub := TMenuItem.Create(self);
with Form2.ADOTable1 do
begin First;
while not EOF do begin
with msub do
begin
Caption := ADOTable1РПП.AsString;
end;
end;
end;Не получается, просто создает один пункт и всё. Подскажите если не трудно. Заранее спосибо. Последний раз редактировалось Admin, 29.02.2012 в 09:55. |
|
#4
|
||||
|
||||
|
Переход на слудующую запись забыли, да и элементы меню надо-бы новые создавать для каждой записи из таблицы. Примерно так получается:
Код:
with Form2.ADOTable1
do begin
First;
while not EOF
do begin
with TMenuItem.Create(self)
do Caption := ADOTable1РПП.AsString;
Next;
end;
end;Последний раз редактировалось Страдалецъ, 29.02.2012 в 11:52. |
| Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
Demlan (01.03.2012)
| ||
|
#5
|
|||
|
|||
|
Получилось примерно следующее:
Код:
procedure TForm1.PopupMenu3Popup(Sender: TObject);
var
m: TmenuItem;
begin
with (Sender as TPopupMenu) do
begin
// Удаляем все пункты меню
while Items.Count > 0 do
Items[0].Free;
PopupMenu3.Items.Add(m);
end;
with Form2.ADOTable1
do begin
First;
//m:= TMenuItem.Create(nil);
while not EOF
do begin
with TMenuItem.Create(self)
do begin Caption := ADOTable1РПП.AsString;
Next;
end;
end;
end;
end; |