Форум: "Основная";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];
ВнизСтранные символы & в PopupMenu Найти похожие ветки
← →
Ольга (2004-12-13 11:01) [0]Создаю PopupMenu динамически. Пункты меню читаю из базы (соединяю 3 поля типа varchar).
Если PopupMenu.OwnerDraw:=False, то все ОК. Получаю менюшку:
ИС 1.1 (-Р макс)
ИС 1.2 (+Р мин)
...
Но мне нужно вывести пункты меню разным цветом. Делаю PopupMenu.OwnerDraw:=True, пишу на onDrawItem обработку - получаю разноцветное меню, но с символами &:
ИС &1.1 (-Р макс)
ИС 1.&2 (+Р мин)
...
Откуда эти & беруться и как с ними бороться?
На всякий случай привожу код:
procedure TFMain.FormActivate(Sender: TObject);
var Cause: TADOQuery;
mi: TMenuItem;
mystr: String;
begin
// Связь с БД, открытие Cause
// Формирование PopupMenu
While not Cause.Eof do
begin
mystr:=Trim(Cause.FieldByName("CauseGroup").AsString)+" "+
Trim(Cause.FieldByName("number").AsString)+" "+
Trim(Cause.FieldByName("SmallName2").AsString);
mi:=TMenuItem.Create(self);
Popup.Items.Add(mi);
Popup.Items[i].Tag:=Cause.FieldByName("ID").AsInteger;
Popup.Items[i].Caption:=mystr;
Popup.Items[i].OnClick:=N1Click;
Popup.Items[i].OnDrawItem:=N1DrawItem;
inc(i);
Cause.Next;
end;
end;
procedure TFMain.N1DrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
begin
if (Sender as TMenuItem).Tag < 8 then
ACanvas.Font.Color:=clred
else ACanvas.Font.Color:=clblue;
ACanvas.TextOut(ARect.Left+2, ARect.Top+2,(Sender as TMenuItem).Caption);
end;
← →
KSergey © (2004-12-13 11:54) [1]Подозреваю, что эти самые & записаны в БД.
Это стандартные вещи обрабатываемые Win - после них символ подчеркивается и считается "горячей клавишей2 для этого пункта. Видимо, вам в отрисовывальщике необходимо добавит ьтакую функциональность либо вовсе отказаться от возможности горячих клавишь и выкинуть эти символы из БД.
← →
stone © (2004-12-13 11:54) [2]Поставь AutoHotkeys = maManual
← →
Юрий Зотов © (2004-12-13 12:09) [3]ACanvas.TextOut(ARect.Left + 2, ARect.Top + 2,
StripHotKey((Sender as TMenuItem).Caption));
← →
Ольга (2004-12-13 12:11) [4]В базе & нет.
А AutoHotkeys = maManual сработало (ох, уж мне этот навязчивый сервис...)
Спасибо!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c