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

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

Ошибочка [D7, WinXP]


qqq2 ©   (2005-03-06 01:56:00) 

Вот уже как 2 дня пытаюсь выяснить в чем проблема!
Пишу прогу, которая при клике по item в popup меню в RichEdit загружает файл, причем имя загружаемого файла хранится в ini файле.
INI файл представляет из себя такой вид:

[Название секции]
file = FILE_NAME.TXT
INFO = bla bla bla

Так вот, caption popup меню по котрому кликаю соответсвует названию секции, т.е. если юзер кликнул по элементу меню с заголовком "Название секции"
то из секции "Название секции" берем имя файл которое хранится в параметре file. Проблема заключается в том, что выскакивает ошибка из-за
того, что не найден файл т.к. непраильно указано имя секции => невозможно получить имя файла.
Вот так я вставляю в popup меню имена всех секций:

procedure TForm1.FormShow(Sender: TObject);
var
 D: TStrings;
 s: integer;
 ini: TIniFile;
begin
 form1.menu.Items.Clear;
 ini := TIniFile.Create(ExtractFilePath(application.ExeName) + 'db.ini');
 D := TStringList.Create;
 ini.ReadSections(D);
 for s := 0 to D.Count - 1 do
   begin
     form1.menu.Items.Add(NewItem(d.Strings[s], 0, False, True, form1.OpenHistoryFile, 0, 'Item1'));
   end;
end;

Это все работает.
Дальше.
Процедура OpenHistoryFile

procedure TForm1.OpenHistoryFile(Sender: TObject);
var
 s, p, l,color: string;
 ini: TIniFile;
begin

 ini := TIniFile.Create(ExtractFilePath(application.ExeName) + 'db.ini');
 s := (Sender as TMenuItem).Caption;
 p := ini.ReadString(s, 'file', '');

 l := ExtractFilePath(application.ExeName) + 'db/' + p;

 edit.Lines.loadfromfile(l);

 CurrentFile := l;

end;

Т.е. эта процедура должна загружать файл взятый из секции с именем == заголовку item'а по которому кликнул юзер, но вот тут
что-то не то! Ошибка млин выскакивает. Он типа не может прочитать параметр file т.к. не находит секцию с таким именем. В чём может проблема быть?


Набережных С.   (2005-03-06 07:13:00) [1]


> qqq2   (06.03.05 01:56)

А посмотреть, что в s после s := (Sender as TMenuItem).Caption?
Бендер не велел?


GanibalLector   (2005-03-06 02:18:00) [2]

>     form1.menu.Items.Add(NewItem(d.Strings[s], 0, False, True, form1.OpenHistoryFile, 0, 'Item1'));

Позвольте узнать глубокий смысл form1? Он там лишний!


GanibalLector   (2005-03-06 02:16:00) [3]

А проблема всего лишь в св-вах Popup ;)
PopupMenu1.AutoHotkeys:=maManual;
у тебя вероятно стоит maAutomatic


Наверх

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