Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.071 c
3-1101282742
NewDelpher
2004-11-24 10:52
2004.12.26
жуткий глюк MS SQL


1-1102483981
antonn
2004-12-08 08:33
2004.12.26
Форма поверх всех других окон


1-1102352625
Bil Bal Dur
2004-12-06 20:03
2004.12.26
Структура файла MathLab


3-1101711070
lightix
2004-11-29 09:51
2004.12.26
DBGRID как запретить INSERT


1-1102751874
Dema-X
2004-12-11 10:57
2004.12.26
ошибка еакцессволюшион LoadFromStream





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский