Q&A

  • 집합형의 순서를 알수 있나요?
type
  MainToolBarButton = (mtbOpen, mtbDelete, mtbPrint, mtbChart, mtbExel, mtbInsert, mtbSave, mtbTemp1, mtbTemp2, mtbTemp3 );
  MainToolBarButtons = Set of MainToolBarButton ;

위처럼 사용합니다.
열거형 각각은 툴바의 버튼들을 나타내지요

MainToolBarButtonSet( [mtbPrint,mtbDelete,mtbOpen] )

위 처럼 MainToolBarButtonSet 함수에 보냈습니다.

그럼 MainToolBarButtonSet 함수에서는
[mtbPrint,mtbDelete,mtbOpen]와 같은 집합형을 받아서..

각각의 인티저값인..

'2,1,0' 라는 숫자와 콤마를 가지는 스트링변수를 만들어야 합니다.
물론 순서와도 관련있습니다. 그래서 '2,1,0' 입니다.
어떻게해 할지 모르겠습니다.

알려주세요! 미리 감사드립니다.
2  COMMENTS
  • Profile
    최용일 2002.09.25 00:31
    안녕하세요. 최용일입니다.

    그냥 for문으로 하나씩 검색해보시면 될겁니다....

    [mtbPrint,mtbDelete,mtbOpen]
    [mtbDelete,mtbPrint,mtbOpen]
    [mtbOpen,mtbPrint,mtbDelete]

    참고로 위와 같은것들은 똑같은 것이구요. 코딩으로 구별할수 있는 방법은 없습니다. 집합이란거 자체가 순서가 없으니까요...

    function TForm1.MainToolBarButtonSet(Buttons: MainToolBarButtons): string;
    var
        Index: Integer;
    begin
        Result := '';
        for Index := Ord(mtbOpen) to Ord(mtbTemp3) do
        begin
            if MainToolBarButton(Index) in Buttons then
                Result := Result + IntToStr(Index);
        end;
    end;

    procedure TForm1.Button1Click(Sender: TObject);
    begin
        ShowMessage( MainToolBarButtonSet( [mtbPrint,mtbDelete,mtbOpen] ));
    end;

    ^^ 항상 즐코하세요...

  • Profile
    한대필 2002.09.25 01:03
    아.. 결국 순서를 알수는 없는 것이군요..

    순서가 필요하다면 다른 방법을 사용해야 하는 것이군요...

    감사합니다.

    답변 정말로 갑사드립니다.