Q&A

  • StringGrid의 Cell에 콤보박스 추가?
무슨 말이냐면요...



제가 StringGrid를 이용해서 값을 입력받을라구 합니다.



학교구분란에...



"대학교", "고등학교", "중학교"



요렇게 세개의 값만 입력 할 수 있게



프로그램을 하고자 합니다.



이 입력란은 콤보박스 형태로 선택하게 하구요...



혹시 이런 것을 구현할 수 있을까요?



할 수 없다면



혹시 컴포넌트가 있을까요???



T_____T



답변 부탁드립니다.



즐거운 하루 되시길....

1  COMMENTS
  • Profile
    유수 1999.05.20 00:53


    안녕하세요.

    물론 가능합니다. 아주 일반적으로 쓰고 있는 방식이기도 하구요.

    특정셀을 선택하는 순간 컴보박스의 크기를 조정하고,

    선택된 셀 바로 위로 콤보박스를 올려넣는 방식입니다.

    아래는 볼랜드사의 QNA에서 퍼온 내용입니다.



    How can I popup my own inplace editor (such as a combobox)

    in a string grid cell?



    Answer:

    The following example demonstrates popping up a Combobox

    as an inplace editor to a Stringrid component.



    Example:



    procedure TForm1.FormCreate(Sender: TObject);

    begin

    {The combobox height is not settable, so we will}

    {instead size the grid to fit the combobox!}

    StringGrid1.DefaultRowHeight := ComboBox1.Height;

    {Hide the combobox}

    ComboBox1.Visible := False;

    end;



    procedure TForm1.ComboBox1Change(Sender: TObject);

    begin

    {Get the ComboBox selection and place in the grid}

    StringGrid1.Cells[StringGrid1.Col,

    StringGrid1.Row] :=

    ComboBox1.Items[ComboBox1.ItemIndex];

    ComboBox1.Visible := False;

    StringGrid1.SetFocus;

    end;



    procedure TForm1.ComboBox1Exit(Sender: TObject);

    begin

    {Get the ComboBox selection and place in the grid}

    StringGrid1.Cells[StringGrid1.Col,

    StringGrid1.Row] :=

    ComboBox1.Items[ComboBox1.ItemIndex];

    ComboBox1.Visible := False;

    StringGrid1.SetFocus;

    end;



    procedure TForm1.StringGrid1SelectCell(Sender: TObject; Col,

    Row: Integer; var CanSelect: Boolean);

    var

    R: TRect;

    begin

    if ((Col = 3) AND

    (Row <> 0)) then begin

    {Size and position the combo box to fit the cell}

    R := StringGrid1.CellRect(Col, Row);

    R.Left := R.Left + StringGrid1.Left;

    R.Right := R.Right + StringGrid1.Left;

    R.Top := R.Top + StringGrid1.Top;

    R.Bottom := R.Bottom + StringGrid1.Top;

    ComboBox1.Left := R.Left + 1;

    ComboBox1.Top := R.Top + 1;

    ComboBox1.Width := (R.Right + 1) - R.Left;

    ComboBox1.Height := (R.Bottom + 1) - R.Top;

    {Show the combobox}

    ComboBox1.Visible := True;

    ComboBox1.SetFocus;

    end;

    CanSelect := True;

    end;



    남윤혁 wrote:

    > 무슨 말이냐면요...

    >

    > 제가 StringGrid를 이용해서 값을 입력받을라구 합니다.

    >

    > 학교구분란에...

    >

    > "대학교", "고등학교", "중학교"

    >

    > 요렇게 세개의 값만 입력 할 수 있게

    >

    > 프로그램을 하고자 합니다.

    >

    > 이 입력란은 콤보박스 형태로 선택하게 하구요...

    >

    > 혹시 이런 것을 구현할 수 있을까요?

    >

    > 할 수 없다면

    >

    > 혹시 컴포넌트가 있을까요???

    >

    > T_____T

    >

    > 답변 부탁드립니다.

    >

    > 즐거운 하루 되시길....





    • 조영욱
    • 1999.05.20 17:45
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.20 19:34
      dbiSaveChanges(Table1.Handle)을 하시면 Table1이 저장됩니다. 정의는 아래와 같이 되어있구요.. functi...
    • 김명희
    • 1999.05.20 08:23
    • 1 COMMENTS
    • /
    • 0 LIKES
    • powerman
      1999.05.21 10:04
      김명희 wrote: > 안여하세요. > 또 다시 같은 질문합니다. > 디테일 갯수 설정 어떻게합니까? > 예> A4...
    • 이재민
    • 1999.05.20 07:41
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.20 08:20
      1. 같은방법으로 사용합니다. 단, 변수형은 각 언어에 맞게 고쳐주셔야 합니다. 2. Win32 API Bible이 있...
    • 김영대
      1999.05.20 20:23
      김희영 wrote: > 안녕하세요! > 델피언을 꿈꾸는 학생입니다... > > 질문의 내용은 다름이 아니오라 ...
    • 김영대
      1999.05.20 20:20
      김희영 wrote: > 안녕하세요! > 델피언을 꿈꾸는 학생입니다... > > 질문의 내용은 다름이 아니오라 ...
    • 안치봉
      1999.05.20 09:49
      김희영 wrote: > 안녕하세요! > 델피언을 꿈꾸는 학생입니다... > > 질문의 내용은 다름이 아니오라 ...
    • 한상훈
    • 1999.05.20 05:39
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 정주영
      1999.05.20 19:34
      한상훈 wrote: > 질문한가지 더 올리겠습니다. > report 작성시 각 field의 길이를 고정시키고 > 더 긴...
    • 안치봉
      1999.05.20 04:41
      초보운전 wrote: > > 실행파일을 만들어 설치할경우 그 디렉토리위치는 > 주인 마음대로 일경우가 많습...
    • 최석기
      1999.05.20 04:05
      초보운전 wrote: > > 실행파일을 만들어 설치할경우 그 디렉토리위치는 > 주인 마음대로 일경우가 많습...
    • 한고은
    • 1999.05.20 03:22
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 소병각
      1999.06.09 20:32
      한고은 께서 말씀하시기를... > CREATE PROCEDURE test2 @tbname char(20) AS > create table dbo.hgkim...
    • 이영일
    • 1999.05.20 02:58
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.05.20 20:32
      이영일 wrote: > Sun server에 있는 ISAM형식의 화일을 PC로 불러오고 싶습니다. > PC의 OS는 NT이구 >...
    • 박천문
    • 1999.05.20 01:30
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.20 19:27
      안녕하세요? 초기화보다는...제가 DB는 잘 모르지만 그 필드의 MinValue와 MaxValue를 정의해 놓으면 될것...
    • 마성수
    • 1999.05.20 00:57
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 송기원
      1999.05.20 04:20
      Tquery.CommitUpdate의 용도를 잘못 이해하고 계신듯 한데... 아님 제가 잘못 알고 있거나...허허... C...
    • 남윤혁
    • 1999.05.20 00:31
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 유수
      1999.05.20 00:53
      안녕하세요. 물론 가능합니다. 아주 일반적으로 쓰고 있는 방식이기도 하구요. 특정셀을 선택하는 순간...
    • 안치봉
      1999.05.20 00:08
      김선경 wrote: > 2개의 프로그램에서 교신을 하기 위해 사용자 정의 메세지를 이용할려구 해요 > > a라...
    • 김선경
      1999.05.20 04:10
      호호.... 치봉님의 글 자~~알 읽었어요.... 한가지만 더 여쭤 봐도 실례가 아닌지... exe 프로그램( MD...
    • 안치봉
      1999.05.20 04:51
      김선경 wrote: > 호호.... 치봉님의 글 자~~알 읽었어요.... > 한가지만 더 여쭤 봐도 실례가 아닌지... ...
    • chbang
    • 1999.05.19 23:14
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 유수
      1999.05.20 00:33
      안녕하세요. 유수입니다. DBGrid는 기본적으로 다중 선택을 지원합니다. Ctrl 키를 누른 상태로, 마...
    • 박종길
    • 1999.05.19 22:06
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.05.19 22:27
      박종길 wrote: > 델파이로 만든 프로그램에서 > 시스템에 설정되어 있는 드라이브에 대하여 > 지정된 화...
    • 이정욱
      1999.05.19 22:33
      한델(http://www.delphi.co.kr)의 강의실에 가보세요. 인쇄에 대한 강좌가 있습니다. 그것을 참고하세요. ...
    • 이현정
    • 1999.05.19 20:00
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.19 22:32
      DB콘트롤을 사용하기보다 일반 TEdit을 사용하시면 간단히 해결되지 않을까요? TEdit을 사용하셔서 입력이...