여러가지 찾아보았는데 저에 지식이 부조갷서인지 해결이 안되네여!
검색해서 찾은것들을... 직접해보았는데 실행이 안되더라구여!!
다시 문의드립니다.
참고 : SpeedButton 5개를 폼에 만들어놓구 그중 하나만 sp3.down을 true로
해놨읍니다. while문으로 5번돌아서 down이 true가된 버튼의 숫자를
알아내는것입니다.
----------------------------------------------------
var
Form1: TForm1;
Name_Count : Integer;
implementation
{$R *.DFM}
procedure TForm1.checkClick(Sender: TObject);
begin
name_count := 1;
While sp + inttostr(Name_Count).Down do
begin
Inc(Name_Count);
end;
showMessage('현재 선택된 버튼은 ' + inttostr(Name_Count) + '번 입니다.');
end;
end.
------------------------------------------------------------
[Error] Unit1.pas[34]: Undeclared identifier : 'sp'
[Error] Unit1.pas[34]: Record, object or class type required
[Fatal Error] Project1.dpr[5]: Could not compile used unit 'Unit1.pas'
안녕하세요.
sp+inttostr(Name_Count)로 바로 쓰시면 기냥 문자열이기 때문에
down이란 속성을 사용하실수 없습니다. TSpeedButton으로 형변환하셔야 합니다.
procedure TForm1.checkClick(Sender: TObject);
var
AButton: TSpeedButton;
AName: string;
begin
name_count := 1;
AName:= 'sp' + inttostr(Name_Count);
AButton:= Self.FindComponent(AName) as TSpeedButton;
while AButton<>nil do
begin
if AButton.Down then
begin
showMessage('현재 선택된 버튼은 ' + inttostr(Name_Count) + '번 입니다.');
Break;
end;
Inc(Name_Count);
AName:= 'sp' + inttostr(Name_Count);
AButton:= Self.FindComponent(AName) as TSpeedButton;
end;
end;
좀 지저분한 코딩이긴 하지만 위처럼 하셔야 정확하게 동작할겁니다.
참고하세요.