동적으로 버튼을 생성하고, 생성된 버튼에서 클릭 이벤트로 Caption을
나타내기 까지는 했는데,,
제가 원하는 부분은
동적으로 처음 만들어진 버튼부터
맨 나중에 만들어진 버튼까지의 Caption 까지를 한꺼번에 모두 알고 싶습니다.
애공 말이 잘 안되네요..
VB의 예를 든다면
for i = 0 to 5
str = str & ", " & button1(i).caption
next
msgbox str
이런 식인데...
텔파이는 index를 지원 하지 않는지 좀처럼 알수가 없군요..
index를 넣을 수 있는 방법이나..
다른 방법이 있으시면 부탁 드리겠습니다.
procedure TForm1.Button1Click(Sender: TObject);
var
aa: integer;
n_cnt : integer;
NewBtn : Tbutton;
begin
aa := 0;
for n_cnt := 0 to 5 do begin
NewBtn := Tbutton.Create(nil);
with NewBtn do begin
Parent := form1;
SetBounds(aa,aa,50 ,50) ;
Caption := inttostr(aa);
//name := 'Button2' + '(' + n_cnt + ')'; //=> 이건 안되더군요..
name := 'Button2';
OnClick := BtnClick;
tag := n_cnt;
visible := true;
Show;
end;
aa := aa + 50;
end;
end;
procedure TForm1.BtnClick(Sender: TObject);
begin
MessageDlgPos (tbutton(Sender).Caption + ' 성공',mtConfirmation,
mbYesNoCancel,0, 200, 200);
end;
end.
i : Integer;
str_List: TStringList;
begin
str_List := TStringList.Create;
for i:= 0 to ComponentCount - 1 DO
BEGIN
IF (Components[i] is TButton) THEN
BEGIN
str_List.Add((Components[i] as TButton).Caption);
END
END;
end;
.................
대충 이렇게 하면 폼위의 버튼컴포넌트 의 캡션을 다 가져 올수 있지 않을까요
만약 디자인 시에 만든 버튼을 제외하고 싶으시다면 .디자인시에 만든 버튼에는
Tag 를 0,런타임시에 만든 버튼은 Tag 를 1 로 정해서 구분해서 가져 오면 되구요..
이 답변이 맞는지 모르 겠군요...
아니면 ... 버튼을 동적으로 생성할때 캡션을 문자열 배열로 가지고 있던가
스트링 리스트에 저장 하셔도 되겠군요.....