Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2007, 20:12   #1
xTANATOSx
Подтвердите свой е-майл
 
Регистрация: 15.07.2007
Сообщений: 72
По умолчанию Программа отлично работает при событии Button1Click, и отказывается работать в FormCreate

Помогите
Как вийти из ситуации?
Процедура запуска другой програми отлично работает при собитии
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.
xTANATOSx вне форума Ответить с цитированием
Старый 18.09.2007, 20:16   #2
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

Все логично. Обработчик кнопки никак не сможет запуститься раньше показа формы. А если ты во время Create формы хочешь ее сразу и показать, то естественно, что система тебе покажет шиш. Форме надо создаться, активироваться, отрисоваться, изменить размеры, снова отрисоваться и только после этого показаться. Так что лучше свой код помести не в OnCreate, а в OnShow формы.
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Старый 18.09.2007, 20:25   #3
xTANATOSx
Подтвердите свой е-майл
 
Регистрация: 15.07.2007
Сообщений: 72
По умолчанию

УРА!!!!!
Shuraken СПАСИБО!
xTANATOSx вне форума Ответить с цитированием
Старый 19.09.2007, 08:02   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Сообщение от Shuraken Посмотреть сообщение
Так что лучше свой код помести не в OnCreate, а в OnShow формы.
Вообще-то не обязательно помещять код из кнопки, можно все го лишь его в нужном событии запустить :

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('adas');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.Click;
end;

end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа не работает 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