Delphi 5.0을 사용하고 있습니다.
TListBox에 대해서 두가지 질문이 있습니다.
첫번째는...
예를 들어 세번째 item을 click했을 때, 그 세번째 item의 폰트를 바꾸고 싶습니다.
글자색깔이나 굵기, 크기 등을 바꾸고 싶습니다.
어떻게 하는지...??
두번째는...
db table에서 데이타를 읽어와서 TListBox에 그 데이타를 입력시키는데...
타이머를 돌려서 자동을 입력시키고 있습니다.
세번째 item을 click하면 그 item이 파란색으로 focusing(?)이 되는데,
타이머로 자동 입력시키고 나면 그 focus가 제일 첫 item으로 이동합니다.
색깔은 없이...
새로 입력이 되어도 세번째 item에 파란색으로 focus가 있도록 하고 싶습니다.
어떻게 하는지...??
위 두가지 질문... 꼭 답변 부탁드립니다.
감사합니다.
먼저 ListBox의 속성중 Style을 lbOwnerDrawFixed 나 lbOwnerDrawVariable 로 바꾸면 사용자가 직접 제어할수있습니다
1.선택된 인덱스에 폰트바꾸기(색,굵기등)
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
if odSelected in State then begin
ListBox1.Canvas.Font.Color := clAqua;
ListBox1.Canvas.Font.Style := [fsBold];
end;
ListBox1.Canvas.TextRect(Rect, Rect.Left, Rect.Top , ListBox1.Items.Strings[Index]);
end;
2.저장후 다시 원 위치로가기
//타이머라고 가정한 함수
procedure TForm1.Button1Click(Sender: TObject);
var
i, idx_pos : integer;
begin
//미리 위치저장
idx_pos := ListBox1.ItemIndex;
//DB에 입력후 다시 뿌리기라고 가정
ListBox1.Clear;
for i := 1 to 10 do
ListBox1.Items.Add(intToStr(i));
//원 위치로감
ListBox1.ItemIndex := idx_pos;
end;