Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.02.2013, 13:20
Chydik Chydik вне форума
Прохожий
 
Регистрация: 19.05.2009
Сообщения: 7
Репутация: 10
По умолчанию При получении TMenuItem(Sender).Caption непонятные символы

Динамически создаю список элементов попап меню и задаю свои заголовки, при это все нормально и отображаются корректно, но при попытке обращения к ним по клику (TMenuItem(Sender).Caption ) получается какой-то бред (типа: дD) . Может кто сталкивался? А нето вообще без идей уже

Так создаю:
Код:
while i <= tempst.Count - 1 do
        Begin
          if  Pos('7z.exe',UnPackRun) <> 0 then
            Begin
            if (Pos('Path',tempst[i]) = 0) OR (Pos(lstRomsList.Items.Strings[lstRomsList.ItemIndex],tempst[i]) <> 0) then
              tempst.Delete(i) else
                Begin
                  pmitem         := TMenuItem.Create(pmArchives);
                  tempst[i]      := StringReplace(tempst[i],'Path','',[rfReplaceAll,rfIgnoreCase]);
                  tempst[i]      := StringReplace(tempst[i],'=','',[rfReplaceAll,rfIgnoreCase]);
                  tempst[i]      := Alltrim(tempst[i]);
                  OemToAnsi(PChar(tempst[i]),PChar(tempst[i]));
                  pmitem.Action  := actPMArchive;
                  pmitem.Caption := tempst[i];
                  pmArchives.Items.Add(pmitem);
                  inc(i);
                end;
            end else
              Begin
                  pmitem         := TMenuItem.Create(pmArchives);
                  tempst[i]      := Alltrim(tempst[i]);
                  pmitem.Action  := actPMArchive;
                  pmitem.Caption := tempst[i];
                  pmArchives.Items.Add(pmitem);
                  inc(i);
              end;
        end;

и сам обработчик он клик:
Код:
procedure TForm1.actPMArchiveExecute(Sender: TObject);
var run, Capt:    String;
    EPath, RPath: String;
begin
    Capt      := TMenuItem(Sender).Caption;
    edt1.Text := TMenuItem(Sender).Caption;
...
Ответить с цитированием
  #2  
Старый 12.02.2013, 13:35
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

А ты уверен что Sender у тебя TMenuItem? Вот я не уверен.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 12.02.2013, 13:48
Chydik Chydik вне форума
Прохожий
 
Регистрация: 19.05.2009
Сообщения: 7
Репутация: 10
По умолчанию

Мм т.е. ты подразумеваеш что защет того что у меня обработчик на Action а не на OnClick?

Спс огромное а нето уже в ступор впал переписал на
pmitem.OnClick := actPMArchive.OnExecute;
И все шикарно))

Последний раз редактировалось M.A.D.M.A.N., 12.02.2013 в 15:05. Причина: Объединил сообщения
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:21.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter