Главная страница
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.105 c
4-1107349023
Artur
2005-02-02 15:57
2005.03.20
Как дописать код...


1-1110029514
Peter_cc
2005-03-05 16:31
2005.03.20
Служба!help!


3-1108473244
Юрец
2005-02-15 16:14
2005.03.20
MS SQL и Excel


1-1110181947
DSKalugin
2005-03-07 10:52
2005.03.20
событие "TForm.OnAfterShow"


3-1108656969
juice
2005-02-17 19:16
2005.03.20
привилегии на выполнение ХП для роли