안녕하십니까.
procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
var
SN: Integer;
begin
SN := Edit3.GetTextLen;
if SN > 0 then begin
ShowMessage('영문자 1자리만' + #13 + #10 + '입력하세요');
Key := #0;
Edit3.Clear;
Edit3.SetFocus;
end;
end;
procedure TForm1.Edit3Exit(Sender: TObject);
begin
Form1.Edit3KeyPress(Edit3, #0); // 이 부분에서 에러가 으...
end;
에러 내용은 아래와 같습니다.
Types of actual and formal var parameters must be identical
Edit3KeyPress 프로시져를 어떻게 하면 부를수 있나요. 도사님 한 말씀.
감사합니다.
var
key: Char;
begin
Form1.Edit3KeyPress(Edit3, key);
end;
var 로 정의 되어져 있는 파라미터에는 스택에 포인터가 넘어갑니다. 즉 어떤 변수의 주소를 요구하는 파라미터를 지정할때 var 로 정의하죠.
델파이는 포인터를 참 쉽게(?) 다루게 하죠..... -.-;;
hopeship wrote:
> 안녕하십니까.
>
> procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
> var
> SN: Integer;
> begin
> SN := Edit3.GetTextLen;
> if SN > 0 then begin
> ShowMessage('영문자 1자리만' + #13 + #10 + '입력하세요');
> Key := #0;
> Edit3.Clear;
> Edit3.SetFocus;
> end;
> end;
>
> procedure TForm1.Edit3Exit(Sender: TObject);
> begin
> Form1.Edit3KeyPress(Edit3, #0); // 이 부분에서 에러가 으...
> end;
>
> 에러 내용은 아래와 같습니다.
>
> Types of actual and formal var parameters must be identical
>
> Edit3KeyPress 프로시져를 어떻게 하면 부를수 있나요. 도사님 한 말씀.
> 감사합니다.
>
>