Q&A

  • 최용일님...찾아보았는데... 헛갈리는부분이 있네여~~~
여러가지 찾아보았는데 저에 지식이 부조갷서인지 해결이 안되네여!

검색해서 찾은것들을... 직접해보았는데 실행이 안되더라구여!!

다시 문의드립니다.

참고 : 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'
2  COMMENTS
  • Profile
    박성훈 2003.01.30 20:59

    안녕하세요.
    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;

    좀 지저분한 코딩이긴 하지만 위처럼 하셔야 정확하게 동작할겁니다.
    참고하세요.



  • Profile
    최은하 2003.01.30 21:13
    감사합니다. 최용일님도 FindComponent을 참조하라고 했는데...

    막상 제가 코딩으로 사용하려니 잘안되더라구여! 암튼 감사합니다.

    덕분에 해결되었읍니다.