Q&A

  • Combobox 의 items 에 대해 기르침을 받고싶습니다.
안녕하십니까.
ComboBox에 대해 가르침을 받고싶습니다.
PageControl의 ActivePageIndex에 연동하여 Combobox의 items의 값들도 page index값에 따라 다르게 보여줄렸고 아래와 같이 하였는데, 별 이상은 없이 실행이 됩니다만.
뭔가 더 좋은 방법이 있을것 같습니다.

pageControl의 Chang event에서 Page index에 맞는 배열값을 Combobox의  items에 넣어주었는게 뭔가 엉성한것 같습니다.
고수님들의 가르침을 받고싶습니다.
PageControl과 Combobox에 대한 어떤 가르침도 주시면 감사하게 받겠습니다.
  

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    pc: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    cb: TComboBox;
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure pcChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
{$R *.dfm}

const
  aa  : array[1..4] of string =
             ('1', '3', '5', '6');
  bb  : array[1..5] of string =
             ('11', '22', '34', '48', '99');
  cc : array[1..5] of string =
             ('zero', 'one', 'two', 'three', 'four');

procedure TForm1.FormCreate(Sender: TObject);
var i : integer;
begin
  cb.Items.Clear;
  for i := Low(aa) to High(aa) do
    cb.Items.Add(aa[i]);
  cb.itemindex := 0;
  pc.ActivePageindex := 0;

end;

procedure TForm1.pcChange(Sender: TObject);
var i : integer;
begin
  CB.Items.Clear;
  case pc.ActivePageIndex of
  0 :
    for i := Low(aa) to High(aa) do
    CB.Items.Add(aa[i]);

  1 :
    for i := Low(bb) to High(bb) do
    CB.Items.Add(bb[i]);

  2 :
    for i := Low(cc) to High(cc) do
      CB.Items.Add(cc[i]);
  end;
  cb.itemindex := 0;
end;
1  COMMENTS
  • Profile
    김현웅 2006.09.27 19:57
    안녕하세요..

    pcChange 이벤트마다 aa배열값을 콤보박스에 입력하는 것 보다는
    현재 탭의 매핑된 aa배열값만 입력하고 콤보박스의 dropdown이벤트에 전체 aa배열값을
    입력하는게 더 좋을 듯 싶습니다~~

    좋은하루되세요~~