안녕하십니까?
처음으로질문을하는 초보델피언입니다..
작업을하다가 안되는(?)부분이 있어서 질문을 올립니다..
다름이아니오라
폼1에있는 콤포넌트들을 초기화 또는 값을 무브시키는 유닛을 따로만들어서 실행시킬때
폼1이 만들어질때 유닛에 있는 프로시져를 호출하면 에러가나는군요..
폼1이 만들어지고난후에 유닛에있는 프로시져를호출하면 에러는 안뜨고 잘되는데..
문제는 폼이만들어지면서 값을 무브해야하는상황인데... 흑흑흑..
그냥 폼1에 프로시져를 만들어서 호출해야 하나요?
unit1
...
var
form1:tform1;
...
procedure create_form;
edit1.text:='';
...
end.
이런식으로 되어 있던것을 위의 클리어 부분만 따로 떼어내어서
unit2
...
procedure clear_edit;
form1.edit1.text:='';
...
end.
이렇게 하고 unit1 에서 clear_edit을 폼크리에이트 이벤트프러시져에서 호출하니
access violation error...
도와주세요~~~
고드름 김정입니다.
제가 테스트하니 잘 되던데여??
>> Unit1 파일 소스
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
CreateInit;
end;
end.
>> Unit2 소스
unit Unit2;
interface
uses unit1;
procedure createInit();
implementation
procedure createInit();
begin
Form1.edit1.Text := '';
end;
end.
Form1에는 달랑 Edit 하나 생성한 상태입니다.
참고하세요.
그럼.
이주영 wrote:
> 안녕하십니까?
>
> 처음으로질문을하는 초보델피언입니다..
>
> 작업을하다가 안되는(?)부분이 있어서 질문을 올립니다..
> 다름이아니오라
> 폼1에있는 콤포넌트들을 초기화 또는 값을 무브시키는 유닛을 따로만들어서 실행시킬때
>
> 폼1이 만들어질때 유닛에 있는 프로시져를 호출하면 에러가나는군요..
>
> 폼1이 만들어지고난후에 유닛에있는 프로시져를호출하면 에러는 안뜨고 잘되는데..
> 문제는 폼이만들어지면서 값을 무브해야하는상황인데... 흑흑흑..
>
> 그냥 폼1에 프로시져를 만들어서 호출해야 하나요?
>
> unit1
> ...
> var
> form1:tform1;
> ...
> procedure create_form;
> edit1.text:='';
> ...
> end.
>
> 이런식으로 되어 있던것을 위의 클리어 부분만 따로 떼어내어서
> unit2
> ...
> procedure clear_edit;
> form1.edit1.text:='';
> ...
> end.
> 이렇게 하고 unit1 에서 clear_edit을 폼크리에이트 이벤트프러시져에서 호출하니
> access violation error...
>
> 도와주세요~~~
>