안녕하십니까.
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;
pcChange 이벤트마다 aa배열값을 콤보박스에 입력하는 것 보다는
현재 탭의 매핑된 aa배열값만 입력하고 콤보박스의 dropdown이벤트에 전체 aa배열값을
입력하는게 더 좋을 듯 싶습니다~~
좋은하루되세요~~