Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2008, 08:52   #1
Comer_Jus
Подтвердите свой е-майл
 
Регистрация: 16.05.2008
Сообщений: 54
По умолчанию Проблема с Caption PopUpMenu Item

Тема такая!

PopUpMenu несколько пунктов у всех OnDrawItem такой же как и у первого Item'а (тобишь один на всех)
вот собственно он:
Код:
Procedure TForm1.N1231DrawItem(Sender: TObject; ACanvas: TCanvas;ARect: TRect; Selected: Boolean);
  Var ITEM_TEXT:String;
  Begin

   ITEM_TEXT:=TMenuItem(Sender).Caption;

   If Selected Then
    Begin
     ACanvas.Brush.Color:=15717318;
     ACanvas.FillRect(ARect);

     ACanvas.Font.Color:=ClBlack;
     ACanvas.TextOut(ARect.Left+20,ARect.Top+3,ITEM_TEXT);

   End
  Else
   Begin
    ACanvas.Brush.Color:=ClBtnFace;
    ACanvas.FillRect(ARect);

    ACanvas.Font.Color:=ClBlack;
    ACanvas.TextOut(ARect.Left+20,ARect.Top+3,ITEM_TEXT)
  End;

End;
Проблема в том что при выводе менюхи
в названиях пунктов между буквами появляется символ & причем в разных позициях (но в одном пункте не болле одного)

в чём трабл?
помогите новичку
Comer_Jus вне форума Ответить с цитированием
Старый 16.05.2008, 08:58   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А в том что этот символ указывает на горячую букву.
Перед отрисовкой текста удаляй этот символ из ITEM_TEXT

Кста ничего криминального в этом символе нет, он в каждой менюхе в принципе обитает, просто отрисовка его смысла происходит по другому.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.05.2008, 09:02   #3
Comer_Jus
Подтвердите свой е-майл
 
Регистрация: 16.05.2008
Сообщений: 54
По умолчанию

Типо невидимый атрибут!!!
спасибо!
Comer_Jus вне форума Ответить с цитированием
Старый 16.05.2008, 14:50   #4
Comer_Jus
Подтвердите свой е-майл
 
Регистрация: 16.05.2008
Сообщений: 54
По умолчанию

Вот если кому то надо!!

//Название пункта меню
ITEM_TEXT:=TMenuItem(Sender).Captio n;

//Удаляем символ атрибута
S:='';
For N:=1 To Length(ITEM_TEXT) Do If ITEM_TEXT[N]<>'&' Then S:=S+ITEM_TEXT[N];
ITEM_TEXT:=S;
Comer_Jus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Caption в BitBtn!!! rivers Компоненты Delphi 14 11.08.2008 15:36
Как изменить высоту PopUpMenu Item Comer_Jus Общие вопросы Delphi 1 16.05.2008 14:26
Как мне в tListView выелить item зная индекс Altera Общие вопросы Delphi 2 15.05.2008 06:23
caption в цыкле nikleb Общие вопросы Delphi 3 18.04.2008 15:23
EXECнуть ITEM от ShellListView ЧИЖ Компоненты Delphi 6 02.07.2007 09:43