Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.20;
Скачать: CL | DM;

Вниз

Ошибочка   Найти похожие ветки 

 
qqq2   (2005-03-06 01:56) [0]

Вот уже как 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 т.к. не находит секцию с таким именем. В чём может проблема быть?


 
GanibalLector ©   (2005-03-06 02:16) [1]

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


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

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

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


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


> qqq2   (06.03.05 01:56)

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



Страницы: 1 вся ветка

Текущий архив: 2005.03.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.029 c
14-1109580259
Павел
2005-02-28 11:44
2005.03.20
Как перевести Add-In на русский


3-1108588340
hexware
2005-02-17 00:12
2005.03.20
Не знаю, как сделать в Access фильтр по данным через запрос...


1-1109835699
salexn
2005-03-03 10:41
2005.03.20
Совместимость Clipboard и русских букв


3-1108718048
}|{yk
2005-02-18 12:14
2005.03.20
Связывание таблиц


1-1110237125
Луарвик
2005-03-08 02:12
2005.03.20
Inifile: пустая строка после каждой секции?