Главная страница
    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.037 c
14-1102280836
noname:)
2004-12-06 00:07
2004.12.26
Зацените прогу


1-1102686631
Zilog
2004-12-10 16:50
2004.12.26
Ограничение рабочего стола


1-1102693122
_Дельфин_
2004-12-10 18:38
2004.12.26
Как сделать прозрачным фон TAnimate?


3-1101227478
AUS_r4nd0m
2004-11-23 19:31
2004.12.26
Перестройка индексов при добавлении в InterBase c помощью ХП


9-1087845784
Darthman
2004-06-21 23:23
2004.12.26
А не устраивать ли нам небольшие конкурсы по кодингу?





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