![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Подтвердите свой е-майл
Регистрация: 15.07.2007
Сообщений: 72
|
![]()
Помогите
Как вийти из ситуации? Процедура запуска другой програми отлично работает при собитии Button1Click,и ОТКАЗИВАЕТСА работать в FormCreate. Вот код (Работающий) unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,shellapi; type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Edit2: TEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function executefile(const filename,params,defaultdir:string;s howcmd:integer):thandle; var zfilename,zparams,zdir:array[0..79] of char; begin result:=shellexecute(application.Ma inForm.Handle,nil,strpcopy(zfilenam e,filename ),strpcopy(zparams,params),strpcopy (zdir,defaultdir),showcmd); end; procedure TForm1.Button1Click(Sender: TObject); var w,e:string; begin w:=edit1.Text; executefile(w,'','',sw_show); end; end. ![]() |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 16.04.2007
Сообщений: 298
|
![]()
Все логично. Обработчик кнопки никак не сможет запуститься раньше показа формы. А если ты во время Create формы хочешь ее сразу и показать, то естественно, что система тебе покажет шиш. Форме надо создаться, активироваться, отрисоваться, изменить размеры, снова отрисоваться и только после этого показаться. Так что лучше свой код помести не в OnCreate, а в OnShow формы.
Не надо ничего усложнять. Все достаточно тривиально.
|
![]() |
![]() |
![]() |
#4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Вообще-то не обязательно помещять код из кнопки, можно все го лишь его в нужном событии запустить :
procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage('adas'); end; procedure TForm1.FormCreate(Sender: TObject); begin Button1.Click; end; end.
I'm learning to live...
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа не работает | ZYRGiX | Помощь студентам | 2 | 22.07.2008 21:44 |
Программа не работает | Михаил Юрьевич | Общие вопросы Delphi | 2 | 19.04.2008 23:27 |
Открытие окна при событии FormCreate. | фЁдОр | Общие вопросы Delphi | 9 | 06.02.2008 19:37 |
Не работает программа на delphi | pcholka | Софт | 5 | 10.01.2008 20:04 |
Как работать с TCanvas - на PaintBox1 программа должна рисовать полигон | Михаил Юрьевич | Общие вопросы Delphi | 16 | 04.01.2008 15:31 |