c2design 6월 15일, 2022에 포스트됨 공유하기 6월 15일, 2022에 포스트됨 TAdvStringGrid 에서는 지정된 셀에 Combobox를 적용하여 앱 사용자로 부터 항목을 선택 받게 할 수 있습니다. 콤보박스를 사용하기 위해서는 셀 항목의 콤보박스 데이터가 사용자의 선택에 따라 바뀌게 되므로 TAdvStringGrid 가 입력 가능한 Editable 상태가 되어야 합니다. 아래 그림과 같이 Quick config 에서 Allow edit 를 체크 합니다. 사용되는 메소드는 3가지 입니다. (하단 소스 참조) OnHasComboBox 에서 특정셀이 콤보박스를 항상 보이게 지정 합니다. OnGetEditorProp 에서는 콤보박스에 데이터를 삽입 합니다. OnGetEditorType 특정셀에 콤보박스 속성을 지정 합니다. procedure TMvForm.FormCreate(Sender: TObject); begin SList := TStringList.Create; // Test Data sList.Add( '00000' ); sList.Add( '11111' ); sList.Add( '22222' ); sList.Add( '33333' ); sList.Add( '44444' ); with AdvStringGrid1 do begin ColWidths[ 1 ] := 120; ColWidths[ 2 ] := 120; ControlLook.DropDownAlwaysVisible := TRUE; // 콤보박스가 처음부터 보이게 함 end; end; //**************************************************************************************************** procedure TMvForm.Button1Click(Sender: TObject); begin AdvStringGrid1.Cells[ 2,5 ] := SList[0]; // 특정 이벤트에서 ComboBox 초기값 지정 end; procedure TMvForm.Button2Click(Sender: TObject); begin with AdvStringGrid1 do begin ShowMessage( ComboBox.Items.IndexOf( Cells[2,5] ).ToString + ' : ' + Cells[ 2,5 ] ); end; end; //**************************************************************************************************************** procedure TMvForm.AdvStringGrid1HasComboBox(Sender: TObject; ACol, ARow: Integer; var HasComboBox: Boolean); begin if ( Acol = 2 ) and ( ARow = 5 ) then // 특정셀 콤보박스 항상 보이게. HasComboBox := TRUE; end; procedure TMvForm.AdvStringGrid1GetEditorProp(Sender: TObject; ACol, ARow: Integer; AEditLink: TEditLink); var i : integer; begin with AdvStringGrid1 do begin if ( Acol = 2 ) and ( ARow = 5 ) then begin ClearComboString; for i := 0 to SList.Count - 1 do AddComboString( SList[i] ); end; end; end; procedure TMvForm.AdvStringGrid1GetEditorType(Sender: TObject; ACol, ARow: Integer; var AEditor: TEditorType); var sList : TStringList; begin with AdvStringGrid1 do begin if ( Acol = 2 ) and ( ARow = 5 ) then aEditor := edComboList; end; end; 데모영상 인용하기 이 댓글 링크 다른 사이트에 공유하기 더 많은 공유 선택 사항
Recommended Posts
이 토의에 참여하세요
지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.