Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
ВнизОшибочка Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.045 c