Q&A

  • 테이블이나 쿼리를 오픈할때 동적으로 하는 방법은..?
테이블이나 쿼리를 오픈할때 동적으로 하는 방법에 대해 알고 싶습니다.



table1의 이름 ----> A

A의 필드 ----> Num, Name



제가 예를 들어서 하고자 하고 싶은 것은



A 테이블의 Num 필드의 내용을 edit1 component에 넣고

A 테이블의 Name 필드의 내용을 edit2 component에 넣는 방법을 알고 싶습니다.



쉬운방법으로는

edit1.text := A.fieldbyname('Num').asstring;

edit2.text := A.fieldbyname('Name').asstring;

를 들 수 있는데 이 방법이 아닌 동적으로 할 수 있는 방법을 알고 싶다는 거죠..



제가 알고 있는 한계로는



type

tform1 = class(tform)

edit1: tedit;

edit2: tedit;

button1 : tbutton;

ANum : TFieldstring;

AName : TFieldstring;

....

....

..등



procedure TForm1.Button1Click(Sender: TObject);

begin

eidt1.text := ANum.asstring;

eidt2.text := AName.asstring;

end;



입니다.



이 소스가 맞는건지...알고 싶기도 하고요....이게 아니라면 동적으로 오픈할 수 있는 방법을 알고 싶습니다.

부탁합니다.

1  COMMENTS
  • Profile
    parkisu 2001.01.17 09:21
    푸른새 wrote:

    > 테이블이나 쿼리를 오픈할때 동적으로 하는 방법에 대해 알고 싶습니다.

    >

    > table1의 이름 ----> A

    > A의 필드 ----> Num, Name>

    > A 테이블의 Num 필드의 내용을 edit1 component에 넣고

    > A 테이블의 Name 필드의 내용을 edit2 component에 넣는 방법을 알고 싶습니다.

    >

    >

    > 제가 예를 들어서 하고자 하고 싶은 것은



    > 쉬운방법으로는

    > edit1.text := A.fieldbyname('Num').asstring;

    > edit2.text := A.fieldbyname('Name').asstring;

    > 를 들 수 있는데 이 방법이 아닌 동적으로 할 수 있는 방법을 알고 싶다는 거죠..

    >

    > 제가 알고 있는 한계로는

    >

    > type

    > tform1 = class(tform)

    > edit1: tedit;

    > edit2: tedit;

    > button1 : tbutton;

    > ANum : TFieldstring;

    > AName : TFieldstring;

    > ....

    > ....

    > ..등

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > begin

    > eidt1.text := ANum.asstring;

    > eidt2.text := AName.asstring;

    > end;

    >

    > 입니다.

    >

    > 이 소스가 맞는건지...알고 싶기도 하고요....이게 아니라면 동적으로 오픈할 수 있는 방법을 알고 싶습니다.

    > 부탁합니다.



    안녕하세요.

    FindComponent를 이용해보세요.



    procedure TForm1.DisplayRecord;

    var

    i:Integer;

    Edit:TEdit;

    begin

    for i:=0 to Table1.FieldCount-1 do

    begin

    Edit:= Self.FindComponent('Edit'+IntToStr(i)) as TEdit;

    if Edit<>nil then

    Edit.Text:= Table1.Fields[i].AsString;

    end;

    end;