Q&A

  • !<급-HELP>! 에디트박스를 모듈에서 배열로 만들수 있는 프로시져
어떤 모듈에서 에디트박스를 만드는 프로시져를 선언해서 에디트 박스를 필요로 하는





폼(생성)에서 호출했을 경우 자동적으로 임의적인 위치에 나타나게 하려고 합니다.



데이터베이스를 연결해서 만들어야 되기 때문에 에디트 박스로 인해서 불필요하게



코드가 너무 많이 생겼습니다.



아시는 분 있으시면 자세히, 처음부터 알려주셨으면 정말 고맙겠습니다.



델파이를 시작한지 몇 주 밖에 안되서 너무나 힘드네요. 도와주세요. 부탁드려요.

1  COMMENTS
  • Profile
    강인규 2000.03.04 20:23
    뭐 코딩이 조잡합니다만 저도 비슷한 프로그램을 만든적이 있어 글을 올립니다.

    제가 봐도 못 알아보겠네요. 신규모드인지,수정모드인지 구분해서 사용하구있습니다.

    가로,세로값으로 동적으로 생성시키구요.

    아래에는 확인에 관련된 프로시져가 있습니다.

    제가 조잡하나마 이에 관련된 프로그램을 저의 bbs에 올려놓았으니 받아서 함 보시는게 이해가 빠르리라 봅니다.



    http://nest.dvvb.com/inno76/

    가셔서 놀라지 마십시요. 넘 썰렁하다구..... 곧 폐쇄될 예정입니다.



    var

    Form1: TForm1;

    editname : Tedit;

    x,y,l : integer;



    procedure TForm1.FormShow(Sender: TObject);

    var

    i,k,w,t,c: integer;

    s : string;

    begin

    i := 1;

    w := 71;

    s := 'edit';

    t := 22;

    c :=1;

    k := 0;





    if form1.Caption = '신규모드입니다.' then begin

    x := strtoint(form2.CEdit2.text);

    y := strtoint(form2.CEdit1.text);

    end

    else if form1.Caption = '조회모드입니다.' then begin

    y := form2.Car_mainTHori.Value;

    x := form2.Car_mainTVerti.Value;

    end;

    while k <> x do begin

    while i <> y+1 do begin

    editname := Tedit.create(form1);

    editname.parent := form1;

    editname.name := s + inttostr(c);

    editname.Width := 70;

    editname.left := w-70;

    editname.top := t -20 ;

    editname.TabOrder := c;

    editname.Text := '';

    w := w+70;

    i := i+1;

    c := c+1;

    end;

    w := 70;

    i := 1;

    k := k + 1;

    t := t+22;

    end;



    if form1.Caption = '조회모드입니다.' then begin

    form2.CarDetailQ.First;

    repeat

    with (FindComponent(form2.CarDetailQEditname.Value) as Tedit) do begin

    Text := form2.CarDetailQBarcode_const.Value;

    form2.CarDetailQ.Next;

    end;

    i := i+1;

    until (i = x*y+1)

    end;



    확인버튼 프로시져

    procedure TForm1.BitBtn1Click(Sender: TObject);

    var

    i : integer;

    S : string;

    begin

    if form1.Caption = '신규모드입니다.' then begin

    for i:= 1 to x*y do

    with (FindComponent('edit'+inttostr(i)) as Tedit) do begin

    form2.CarDetailQ.insert;

    Form2.CarDetailQIpno.Value := form2.Edit2.Text;

    Form2.CarDetailQBarcode_const.value := text;

    form2.CarDetailQEditname.Value := name;

    form2.CarDetailQ.Post;

    form2.CarDetailQ.Next;

    end;

    end;



    if form1.Caption = '조회모드입니다.' then begin

    form2.CarDetailQ.First;

    repeat

    with (FindComponent(form2.CarDetailQEditname.Value) as Tedit) do begin

    form2.CarDetailQ.Edit;

    form2.CarDetailQBarcode_const.Value := Text;

    form2.CarDetailQ.post;

    form2.CarDetailQ.Next;

    end;

    until (form2.CarDetailQ.EOF)

    end;

    close;

    end;



    취소버튼의 프로시져

    procedure TForm1.BitBtn2Click(Sender: TObject);

    begin

    if form1.Caption = '신규모드입니다.' then begin

    form2.Car_mainT.Delete;

    end;

    close;

    end;