Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ничего не понимаю.... [D5, Win2k]


Tornado ©   (2002-10-29 21:34:00) 

Подскажите плиз...Есть форма, на ней 3 радиобутона и кнопка ОК. Под кнопкой код:

procedure TfrmMain.btnOKClick(Sender: TObject);
begin
if rbSave.Checked then begin
file_name := ExtractFilePath(paramstr(0)) + "Bat\makapt15.bat";
ShellExecute(Handle,"open",PChar(file_name),nil,nil,SW_SHOW);
end ;

if rbAnaliz.Checked then begin
file_name := ExtractFilePath(paramstr(0)) + "Bat\makapt18.bat";
ShellExecute(Handle,nil,PChar(file_name),nil,nil,SW_SHOW);
end;

if rbReclaim.Checked then
file_name := ExtractFilePath(paramstr(0)) + "Bat\makapt20.bat";
ShellExecute(Handle,nil,PChar(file_name),nil,nil,SW_SHOW); }
end;


Вообщем в зависимости от выбраного радиобутона нужно выполнить соответствующий файл. Только проблема: при выбере 1 радиобутона выполняются почему-то сразу два БАТ-файла, при выборе второго - тоже два и только когда выбираю третий радиобутон выполняется нормально положенный файл...Почему это?


Separator   (2002-10-30 11:36:00) [1]


procedure TfrmMain.btnOKClick(Sender: TObject);
begin
file_name:= ExtractFilePath(ParamStr(0)) + "Bat\";
if rbSave.Checked then
file_name:= file_name + "makapt15.bat"
else if rbAnaliz.Checked then begin
file_name:= file_name + "makapt18.bat"
else if rbReclaim.Checked then
file_name:= file_name + "makapt20.bat";
ShellExecute(Handle,nil,PChar(file_name),nil,nil,SW_SHOW); }
end;



> Nomad.kz (30.10.02 09:58

functionExtractFilePath(const FileName: string): string- Возвращает путь к каталогу (включая указание диска и слэш перед именем файла), вырезанный из строки с полным именем файла FileName.


Nomad.kz   (2002-10-30 09:58:00) [2]

вдогонку, извиняюсь, смотрю в книгу, а вижу фигу. ExtractFilePath в упор не видел :-))


Nomad.kz   (2002-10-30 09:57:00) [3]

меня смущает эта строка:
file_name := ExtractFilePath(paramstr(0)) + "Bat\makapt15.bat";
непонятная какая-то. получается, что выполняется батник c:\tralala\prj.exe Bat\makapt15.bat


Lord Warlock   (2002-10-30 09:57:00) [4]

procedure TfrmMain.btnOKClick(Sender: TObject);
begin
...
if rbReclaim.Checked then
begin
file_name := ExtractFilePath(paramstr(0)) + "Bat\makapt20.bat";
ShellExecute(Handle,nil,PChar(file_name),nil,nil,SW_SHOW);
end
end;


Tornado   (2002-10-30 09:45:00) [5]

> Separator © (30.10.02 08:44)

Пробовал - тоже самое

> iNew (30.10.02 08:46)

Begin есть на самом деле, я здесь его вписать забыл просто, пробовал по-разному, и с begin и без....все одно


iNew   (2002-10-30 08:46:00) [6]

А это случайно не потому-что после 3-го if rbReclaim.Checked then нету
begina.


Separator   (2002-10-30 08:44:00) [7]

Попробуй использовать не RadioButton, а RadioGroup


Tornado   (2002-10-30 08:38:00) [8]

> Song © (30.10.02 08:28)

Спасибо, я попробую, но все таки не могли бы Вы подсказать характер этой ошибки, из-за чего она возникает. Если не сложно.


Song   (2002-10-30 08:28:00) [9]

Ошибка не здесь.
Если не хотите искать поставьте после первых двух ShellExecut"ов Exit


Наверх

Титульная страница Поиск, карта сайта Написать письмо