Текущий архив: 2004.09.19;
Скачать: CL | DM;
Вниз
Динамическая обработка событий меню Найти похожие ветки
← →
Агент Х-СОМ © (2004-08-28 21:41) [0]Такая проблема: есть меню, в которое в процессе разработки проги добавляются пункты. Проблема в том, что надо динамически обработать событие с считаыванием текста меню (извлечение CD). Все бы ничего, можно подставить событие пункту меню, но оно не сочтет надписи меню. Не подскажет ли кто, как это сделать?
← →
TUser © (2004-08-28 22:22) [1]Обработчик добавляется с помощью :=, т.к. это - просто обычное св-во типа TNotifyEvent или еще-какого-нибудь. При счиывавании Caption"а надо учитывать, что там есть символы "&", если они мешаются - убирать StringReplace"ом.
PS. Честно говоря, вопрос понял не очень.
← →
GuAV © (2004-08-28 22:23) [2]
> но оно не сочтет надписи меню.
может не считать, а может и считать, если сделаешь чтоб считало.TMenuItem(Sender)
или(Sender as TMenuItem)
← →
Агент Х-СОМ © (2004-08-29 17:25) [3]Большое спасибо, попробую
← →
Агент Х-СОМ © (2004-08-29 19:17) [4]Обработчик добавляется только типа TnotifyEvent, а проблема в том, что так он не может считать Sender, т.е. Свойства меню остаются потерянными. Вопрос в том, как их сохоанить?
← →
GuAV © (2004-08-29 20:29) [5]
> TnotifyEvent, а проблема в том, что так он не может считать
> Sender,
???
код покажи
← →
jack128 © (2004-08-29 20:37) [6]Агент Х-СОМ © (29.08.04 19:17) [4]
а проблема в том, что так он не может считать Sender, т.е. Свойства меню остаются потерянными
всмысле? TMenuItem(Sender) ?
← →
Агент Х-СОМ © (2004-08-29 21:35) [7]
cdLetter:= "#:";
for i:= 0 to 26 do
begin
cdLetter[1]:= Char(Ord("A") + i);
if (GetLogicalDrives and (1 shl i)) > 0 then begin
if GetDriveType(Pchar(cdLetter)) = DRIVE_CDROM then begin
mnuItmE:= TMenuItem.Create(nil);
mnuItmE.Caption:= cdLetter;
mnuItmE.OnClick:= {Собственно, здесь и проблема, в этой строке}
mnuItmI:= TMenuItem.Create(nil);
mnuItmI.Caption:= cdLetter;
//mnuItmI.OnClick:= //CloseMenuCD(cdLetter);
mnuEject.Add(mnuItmE);
mnuInsert.Add(mnuItmI);
end;
end;
← →
jack128 © (2004-08-29 22:24) [8]Агент Х-СОМ © (29.08.04 21:35) [7]
mnuItmE.OnClick:= {Собственно, здесь и проблема, в этой строке}
Да что за проблема то?? mnuItmE.OnClick:= MyMenuItemClickHandler;
← →
jack128 © (2004-08-29 22:25) [9]где MyMenuItemClickHandler описываешь как
TForm1 = class(TForm)
..
public
procedure MyMenuItemClickHandler(Sender: TObject);
end;
← →
jack128 © (2004-08-29 22:26) [10]и вообще на королевстве дельфи есть занимательная статья "Жизнь и смерть в Run - time" Думаю тебе туда.
← →
GuAV © (2004-08-29 22:49) [11]Агент Х-СОМ © (29.08.04 21:35) [7]
Выежжалку/заежжалку КД пишешь? Небось и с иконкой в трее?
Знаешь эта уже поднадоевшая тема.
← →
jack128 © (2004-08-29 22:52) [12]GuAV © (29.08.04 22:49) [11]
а чего поднадоело то? На каждый выпущенный CD-ROM по отдельной программе ;-)
← →
Агент Х-СОМ © (2004-09-01 17:26) [13]Все бы ничего, но дело в том, что кэпшн виртуального меню меняется до 26 раз, и надо их все запомнить, а сохраняется только последний. Массив не подойдет т.к. будет неизвестен7 тндекс. А насчет КД - так это лишь малая часть проги.
← →
GuAV © (2004-09-01 23:09) [14]
> кэпшн виртуального меню
у меню нет кэпшн, кэпшн есть у пунктов меню
виртуальным может быть LV, меню - afair нет, и незачем.
И ваще не понял, зачем
> надо их все запомнить
советую ещё раз смотреть
jack128 © (29.08.04 20:37) [6]
> А насчет КД - так это лишь малая часть проги.
Колись, что там ещё есть :)
← →
Агент Х-СОМ © (2004-09-02 19:15) [15]Извините, пожалуйста! Все получилось, вся ошибка состояла в моей гребаной невнимательности, виноват! Что еще? Много чего: пока реализовано все, кроме скорости печати (там глюки). Вообще, прога называется Таймер & будильник, но от него там мало осталось. Помимо таймера, будилы, есть секундомер, ASCII-перевод, координаты мыши, плавающее окошко, перезагрузка и прочее в этом стиле, скорость печати, настройки, поддержка WinXP, мигание лампочками, монитором, и прочее, и прочее. Возможно, я перешлю релиз по написанию, могу показать скриншоты.
Страницы: 1 вся ветка
Текущий архив: 2004.09.19;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.033 c