Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.11.17;
Скачать: [xml.tar.bz2];

Вниз

TOpenDialog, как сделать?   Найти похожие ветки 

 
RoLeX   (2003-11-06 00:02) [0]

На нажатие кнопки написал следующий код:
procedure TForm1.Button6Click(Sender: TObject);
var OpenDlg: TOpenDialog;
begin
OpenDlg := TOpenDialog.Create(Self);
OpenDlg.Filter := "All files (*.*)|*.*";
if OpenDlg.Execute then begin
if (Length(OpenDlg.FileName) > 20) then begin
label2.Caption := ExtractFileDrive(OpenDlg.FileName)+"\...\"+ExtractFileName(OpenDlg.FileName); end else begin
label2.Caption := OpenDlg.FileName; end;
label2.Hint := OpenDlg.FileName;
end;
end;


Всё работает хорошо, но при закрытии программы, прога должна выполнить следующее:
procedure TForm1.FormDestroy(Sender: TObject);
begin
Shell_NotifyIcon(NIM_DELETE,@FIconData);
ini := TIniFile.Create(GetCurrentDir+"\XXX.ini");
try with Ini do begin
WriteBool("WHAT DOING", "OpenFile", radioBtnOpenFile.Checked);
end; finally ini.Free;
end;
end;

А программа его не выполняет! Причём не выполнят тогда, когда я нажимал кнопку Button6 и выбрал файл!
Но если не нажимать Button6 или нажать на неё, но невыбрать файл в диалоге "OpenDlg"(т.е. нажать кнопку "Отмена") то procedure TForm1.FormDestroy выполняется нормально!

Вопрос: Где-же я допустил ошибку, что в "procedure TForm1.Button6Click" написано не правильно???


 
Тохус   (2003-11-06 00:20) [1]

Процедура FormDestroy вообще не выполняется или не создает ini-файл?


 
Makhanev A.S.   (2003-11-06 00:21) [2]


> Вопрос: Где-же я допустил ошибку, что в "procedure TForm1.Button6Click"
> написано не правильно???

OpenDlg.Free;

Объект освободи.


 
RoLeX   (2003-11-06 00:32) [3]


> Тохус © (06.11.03 00:20) [1]
> Процедура FormDestroy вообще не выполняется или не создает
> ini-файл?

Форма-то закрывается, но ini файл не создаётся.


> Makhanev A.S. © (06.11.03 00:21) [2]
> OpenDlg.Free;
>
> Объект освободи.

Пробовал, писал так:
procedure TForm1.Button6Click(Sender: TObject);
var OpenDlg: TOpenDialog;
begin
OpenDlg := TOpenDialog.Create(Self);
OpenDlg.Filter := "All files (*.*)|*.*";
if OpenDlg.Execute then begin
if (Length(OpenDlg.FileName) > 20) then begin
label2.Caption := ExtractFileDrive(OpenDlg.FileName)+"\...\"+ExtractFileName(OpenDlg.FileName); end else begin
label2.Caption := OpenDlg.FileName; end;
label2.Hint := OpenDlg.FileName;
end;
OpenDlg.Free;
end;

Всё-равно не получается.


 
Тохус   (2003-11-06 01:00) [4]


> Форма-то закрывается, но ini файл не создаётся.

Ясен пень, что форма закрывается, ты посмотри в отладчике, выполняется ли эта процедура


 
RoLeX   (2003-11-06 01:09) [5]


> Тохус © (06.11.03 01:00) [4]
>
> > Форма-то закрывается, но ini файл не создаётся.
>
> Ясен пень, что форма закрывается, ты посмотри в отладчике,
> выполняется ли эта процедура

Гм, сорри за тупой ответ, но я ещё так делать не научился :((

Блин, а чё больше никто не может помочь???


 
kDenis   (2003-11-06 02:01) [6]

А может INI-файл создается, но не там, где тебе надо?
Если он должен быть там, где EXE-файл программы, то следует писать:
...

ini := TIniFile.Create(ExtractFilePath(application.exeName)+"XXX.ini");

...


 
RoLeX   (2003-11-06 02:22) [7]


> А может INI-файл создается, но не там, где тебе надо?
> Если он должен быть там, где EXE-файл программы, то следует
> писать:
> ...
>
> ini := TIniFile.Create(ExtractFilePath(application.exeName)+"XXX.ini");


ini := TIniFile.Create(GetCurrentDir+"\XXX.ini");
А там так и написано, только по другому. В общем не в ту дыру ты полез, вроде не из-за него проблема.


 
Германн   (2003-11-06 03:37) [8]

GetCurrentDir выдает текущий рабочий каталог программы.
Использование TOpenDialog в программе приводит к смене вышеописанного на тот, в котором выбран некий файл в методе TOpenDialog.Execute.
Сколько раз используешь сей диалог, столько же раз меняешь текущий каталог!


 
RoLeX   (2003-11-06 04:08) [9]


> Германн © (06.11.03 03:37) [8]
> GetCurrentDir выдает текущий рабочий каталог программы.
> Использование TOpenDialog в программе приводит к смене вышеописанного
> на тот, в котором выбран некий файл в методе TOpenDialog.Execute.
> Сколько раз используешь сей диалог, столько же раз меняешь
> текущий каталог!

Вот тебе большое спасибо! Всё теперь круто!



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

Форум: "Основная";
Текущий архив: 2003.11.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.011 c
1-56754
Zanik
2003-11-06 16:03
2003.11.17
Как в Chart задать для Х свои имена?


1-56559
dead1
2003-11-06 12:59
2003.11.17
Алгоритм


14-56904
mate
2003-10-25 15:22
2003.11.17
Антивирус.


1-56748
qwe
2003-11-06 12:11
2003.11.17
GetClass не возвращает значения


14-56881
default
2003-10-25 02:10
2003.11.17
Знатокам теории пределов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский