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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.07.2009, 22:11
uisovec uisovec вне форума
Прохожий
 
Регистрация: 15.06.2009
Сообщения: 19
Репутация: 10
По умолчанию TMainMenu. Создание в режиме выполнения

Проблема в следующем. Есть окно входа в программу (логин/пароль). Есть меню. По хорошему бы, оно при вводе пароля не должно высвечиваться. Поэтому интуиция подсказала делать MainMenu.Destroy, а потом, если вход выполнен успешно, сделать MainMenu.Create(). В конструктор требуется передать "хозяина" AOwner: TComponent. Методом тыка привязал к Form1 (форме). Прога завалилась с ошибкой. Потом узнал что можно указывать Self или Application. Но и в этом случае ошибка. Типа ошибка доступа к памяти.
Есть сомнения в использовании Destroy. Но больше никаких идей нет. Кто нибудь - может проконсультировать в данной ситуации? Заранее спасибо
Ответить с цитированием
  #2  
Старый 10.07.2009, 22:34
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

А Hide и Show уже не в моде? или просто поставить form.MainMenu в nil, пока оно не надо...
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #3  
Старый 10.07.2009, 22:34
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

А почему нельзя просто скрыть все элементы меню при запуске
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  for i := 0 to ComponentCount - 1 do
    if Components[i] is TMenuItem then
      (Components[i] as TMenuItem).Visible := False;
end;
а после авторизации отобразить тем же самым способом?
Ответить с цитированием
  #4  
Старый 10.07.2009, 22:40
Аватар для Rokuell
Rokuell Rokuell вне форума
Активный
 
Регистрация: 27.12.2006
Адрес: Псков
Сообщения: 274
Версия Delphi: Delphi 7
Репутация: 497
По умолчанию

DJ PhoeniX
Form1.MainMenu := nil; ничего не изменит.

Nyctos Kasignete
Можно не извращаться (тем более, что твой код скроет не только все элементы TMainMenu ,но и все элементы TPopupMenu)

Пиши так:
Код:
 for i:=0 to MainMenu1.Items.Count-1 do
  MainMenu1.Items[i].Visible := false;
__________________
Велик и могуч наш Object Pascal !
ICQ: 357-591-887

Последний раз редактировалось Rokuell, 10.07.2009 в 22:43.
Ответить с цитированием
  #5  
Старый 10.07.2009, 22:56
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

Rokuell, можно не извращаться.

Скрыть меню:
Код:
SetMenu(Handle, 0);


Показать меню:
Код:
SetMenu(Handle, MainMenu1.Handle);
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter