Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.02.2012, 08:49
Demlan Demlan вне форума
Прохожий
 
Регистрация: 09.09.2011
Сообщения: 27
Репутация: 10
Вопрос PopupMenu динамический

Как создать динамический PopupMenu? Значения надо брать из MS Access.
Ответить с цитированием
  #2  
Старый 29.02.2012, 08:53
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Так же, как и любой другой. По динамическому созданию компонентов тысячи статей на этом форуме и на DelphiSources.ru, в гугле и в яндексе.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 29.02.2012, 09:07
Demlan Demlan вне форума
Прохожий
 
Регистрация: 09.09.2011
Сообщения: 27
Репутация: 10
По умолчанию

Как создавать я знаю, но вот как брать значения из БД никак найти не могу((. Писал вот так:
Код:
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  
Старый 29.02.2012, 11:49
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Переход на слудующую запись забыли, да и элементы меню надо-бы новые создавать для каждой записи из таблицы. Примерно так получается:
Код:
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  
Старый 01.03.2012, 03:17
Demlan Demlan вне форума
Прохожий
 
Регистрация: 09.09.2011
Сообщения: 27
Репутация: 10
По умолчанию

Получилось примерно следующее:

Код:
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;
Но теперь выдает ошибку.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:56.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter