![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Караул. Помогите разобраться с 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 первый параметр — искомая строка, а не наоборот, как у вас.