![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
меню и форма, интересный глюк
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]я в реалтайме добавляю один пункт, может быть поэтому. Как правильно добавлять?