Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

меню и форма, интересный глюк


Dy1 ©   (2009-11-21 09:21:00) 

StayOnTop главной формы не меняется (к StayOnTop других форм не обращаюсь).
procedure TForm1.PopMenuNtopMenu(Sender: PMenu; Item: Integer);
begin
 Form1.Form.StayOnTop := Form1.PopMenu.ItemChecked[Ntop];
end;

Галочка появляется как полагается, но форма всегда не онтоп. Есть ещё загрузка и сохранение Form.StayOnTop и больше к нему никаких обращений. В чём может быть дело?
-------
работает, если кликать на предыдущем пункте :/ Индексы меню, имена - всё как должно быть, но эти 2-3 пункта сдвинуты к началу на 1. То есть их обработчики.


Dy1   (2010-01-02 11:55:00) [1]

сепараторы не посчитал


Dy1   (2010-01-02 11:41:00) [2]

проблему решил созданием меню с нуля, без добавлений/удалений пунктов :(
И обращаюсь по индексам.

Проблема следующая - как чекануть пункт меню программно? Не из обработчика меню. Проект компилируется, галка не ставится или не отображается. Мышкой кликается нормально.


Dy1   (2009-11-22 19:01:00) [3]

к [4] - чекается. На Делфи 7.
к [5] - у меня нет главного меню.

возвращаюсь к [1]
PopMenu.Items[NSkin].AddItem( PAnsiChar(dir.Names[w]), nil, [])

Хочу сделать подменю со списком скинов, второй PMenu подключить не удалось, не знаю как.


Dy1   (2009-11-22 18:48:00) [4]

как прежде - на Ntop работает онтоп и одновременно приклеивание к краю экрана (следующий пункт), зато пункт приклеивания ни на что не влияет. Смещено как-то


abyss_by   (2009-11-22 11:27:00) [5]

У меня вылетает по 216 рантайм ошибке, если попупменю дублирует главное меню при использовании кода Form1.PopMenu.ItemChecked[Ntop].
Если так: Form1.PopMenu.Items[Item].Checkedне только не вылетает, но и галочка на месте и статус формы меняется.


abyss_by   (2009-11-22 10:47:00) [6]

Протестил. Без подобного кода не чекается меню. Sender AV не вызывает. Может не на Delphi компилится?


Dy1   (2009-11-22 10:40:00) [7]

1) галка переключается без этого кода
2) замена на Sender вызвала AV


abyss_by   (2009-11-22 01:17:00) [8]

В описанном варианте и галочка не должна появиться.
Приблизительно так попробуй:
Sender.ItemChecked[NTop]:= not Sender.ItemChecked[Ntop];
FormMain.Form.StayOnTop := Sender.ItemChecked[Ntop];

Добавленный в реалтайме пункт вряд повлияет на обращение к константе Ntop.


Dy1   (2009-11-21 09:39:00) [9]

я в реалтайме добавляю один пункт, может быть поэтому. Как правильно добавлять?


Наверх

Титульная страница Поиск, карта сайта Написать письмо