Главная страница
    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.04 c
1-1102847589
Frozzen
2004-12-12 13:33
2004.12.26
Копирование буфера Move


14-1101808213
Sur
2004-11-30 12:50
2004.12.26
PL/1 - Programming Language One


14-1102056262
Leha
2004-12-03 09:44
2004.12.26
Копирование таблеток


9-1092763734
Drow
2004-08-17 21:28
2004.12.26
Полноэкранный режим


14-1102042622
Думкин
2004-12-03 05:57
2004.12.26
С днем рождения! 3 декабря





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский