Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Караул. Помогите разобраться с TMainMenu. [D6, XP]


Andrey K ©   (2010-09-12 00:25:00) 

Сохраняю по закрытию программы и, соответственно загружаю пути последних используемых программ в TMainMenu. И в эти пути попадает символ &. Как и когда понять не могу.
procedure TfmUT.FormCreate(Sender: TObject);
var
 i: word;
begin //FormCreate
 FCoSel  := itmSelPro.Count-1; //Количество пунктов в подменю
 tu_ini := TIniFile.Create('My.ini');
 try
   if tu_ini.SectionExists('itmSel') then
   for i := 0 to FCoSel do
     if tu_ini.ValueExists('itmSel',IntToStr(i)) then
     itmSelPro. Items[i].Caption := tu_ini.ReadString('itmSel',IntToStr(i),'');        
 finally
   tu_ini.Free;
//--------------------------------------------------------------------------------------------
procedure TfmUT.FormCloseQuery(Sender: TObject;
 var CanClose: Boolean);
var
 i: word;
begin //FormCloseQuery
 tu_ini := TIniFile.Create('My.ini');
 try
   if tu_ini.SectionExists('itmSel') then tu_ini.EraseSection('itmSel');
   for i := 0 to FCoSel do
     with itmSelPro do
     if Items[i].Caption '' then tu_ini.WriteString('itmSel',IntToStr(i), Items[i].Caption);
 finally
   tu_ini.Free;
//--------------------------------------------------------------------------------------------
Пробовал бороться со злостным & функцией
function TfmUT.DelD(s: string): string;
var
 i: word;
begin
 while pos(s,'&') > 0 do
 begin
   i := pos(s,'&');
   Delete(s,i,1);
 end;
 result := s;
end;
Типа:
itmSelPro. Items[i].Caption := DelD(tu_ini.ReadString('itmSel',IntToStr(i),''));
Но pos(s,'&') вообще & не видит.


Anatoly Podgoretsky   (2010-09-13 13:49:00) [1]

> Palladin  (13.09.2010 11:20:06)  [6]

Ось, это желтый полосатый мух.


Palladin   (2010-09-13 11:20:00) [2]


> Andrey K   (12.09.10 20:51) [4]

Помощь - женского рода, ставим мягкий знак.


Юрий Зотов   (2010-09-12 22:00:00) [3]

> Пробовал бороться со злостным & функцией

Есть готовая - StripHotkey


Andrey K   (2010-09-12 20:51:00) [4]

Спасибо за помощ.


Anatoly Podgoretsky   (2010-09-12 09:36:00) [5]

> Andrey K  (12.09.2010 00:25:00)  [0]

AutoHotkeys


Джо   (2010-09-12 06:54:00) [6]

Кстати, вместо pos здесь удобнее воспользоваться однократным вызовом StringReplace.


Джо   (2010-09-12 06:39:00) [7]


> Как и когда понять не могу.

Понять не сложно.
Символ «&» используется в Caption для того, чтобы выделить подчеркнутую букву в пункте меню: Файл, Правка будут записаны как «&Файл», «&Правка».


> Но pos(s,'&') вообще & не видит.

В функции Pos первый параметр — искомая строка, а не наоборот, как у вас.


Наверх

Титульная страница Поиск, карта сайта Написать письмо