Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.023 c
9-1102883870
Zak3D[@Tm]
2004-12-12 23:37
2005.03.20
Космические объекты...


1-1110127384
pasha L
2005-03-06 19:43
2005.03.20
процедуры с массивами


3-1108648358
Pluto
2005-02-17 16:52
2005.03.20
Размер базы данных


14-1109577221
boriskb
2005-02-28 10:53
2005.03.20
Для тех, кому приходится набирать сотрудников в soft компанию.


1-1109845180
DICE
2005-03-03 13:19
2005.03.20
Про графики




   Наверх