호출부에서
unit1
var
Form1: TForm1;
m_Code: String;
m_Name: String;
m_Price: Integer;
procedure TForm1.DoDataExchange(flag: Boolean);
begin
dx.DDX(flag,@txtCode,m_Code); <====이부분에서 에러가 남니다.
dx.DDX(flag,@txtName,m_Name);
dx.DDX(flag,@txtPrice,m_Price);
end;
---------------------------------------------------------------------
프로시저부
unit2
procedure TDoDataExchange.DDX(flag: Boolean; aObj: Pointer; var variable: variant);
begin
If flag = True then
begin
case varType(variable) of
varInteger : variable := StrtoInt(TEdit(aObj^).Text);
varString : variable := Trim(TEdit(aObj^).Text);
end;
end;
---------------------------------------------------------------------
에러종류
[Error] Unit1.pas(53): Types of actual and formal var parameters must be identical
variant형은 참조형으로 넘길수 없나요?.
없다면 unit2에서 unit1의 변수에 자료형(integer,string....)을 알수 있는 방법은 없나요?
고수님들의 조언 부탁드립니다...
꾸벅.
Variant형도 참조형으로 넘길수 있습니다.
Variant형과 Integer, string형등이 호환이 되어 상호대입이 가능해도 둘은 완전히 다른 형입니다. 형변환이 안됩니다. m_code, m_Name, m_Price를 Variant형으로 바꾸세요...
그리고 case문끝에 end가 하나 빠졌네요...
^^ 항상 즐코하세요...