2009-08-21 4 views
2

편집 : 하단 업데이트.TComboBoxEx 런타임에 항목을 채울 때 들여 쓰기가 적용되지 않는 항목

나를 구부릴 때 누군가 나를 도와 줄 수 있기를 바랍니다.

델파이 2009

나는

한 나는 다음과 같은 코드를 사용하여 런타임에 채우는 것이 두 TComboxBoxEx 구성 요소와 형태가

procedure TForm1.btn1Click(Sender: TObject); 
var 
    N: Integer; 
begin 
    cb1.ItemsEx.Add.Caption := 'Test'; 
    for N := 0 to 5 do 
    with cb1.ItemsEx.Add do 
    begin 
     Caption := 'Item ' + IntToStr(N); 
     Indent := 1; 
    end; 
end; 

나도 같은를 사용하여 디자인 타임에 채우는 다른 데이터 및 동일한 속성 설정.

런타임에 채울 항목은 들여 쓰지 않습니다. 디자인 시간은 들여 쓰는 것이 좋습니다.

아이디어가 있으십니까? 도움말에 따르면 ident는 들여 쓰기 할 픽셀 수이지만 들여 쓰기가 1로 설정되어 있어도 디자인 시간은 들여 쓰기가 두 개 이상의 픽셀로 들린다.

위의 코드에서 들여 쓰기를 10으로 설정하면 효과 없음. 여기

캡션 및 들여 쓰기 한 후 콤보 항목의 데이터 속성을 설정 설계 시간 comobo

object cb2: TComboBoxEx 
Left = 184 
Top = 8 
Width = 145 
Height = 22 
ItemsEx = < 
    item 
    Caption = 'Test' 
    end 
    item 
    Caption = 'Item 0' 
    Indent = 1 
    end 
    item 
    Caption = 'Item 1' 
    Indent = 1 
    end 
    item 
    Caption = 'Item 2' 
    Indent = 1 
    end 
    item 
    Caption = 'Item 3' 
    Indent = 1 
    end 
    item 
    Caption = 'Item 4' 
    Indent = 1 
    end 
    item 
    Caption = 'Item 5' 
    Indent = 1 
    end> 
ItemHeight = 16 
TabOrder = 2 
Text = 'cb1' 
end 

업데이트

의 DFM의 섹션하면 작동시킬 것으로 보인다.

procedure TForm1.btn1Click(Sender: TObject); 
var 
    N: Integer; 
begin 
    cb1.ItemsEx.Add.Caption := 'Test'; 
    for N := 0 to 5 do 
    with cb1.ItemsEx.Add do 
    begin 
     Caption := 'Item ' + IntToStr(N); 
     Indent := 1; 
     Data := Pointer(N); // New Line 
    end; 
end; 

조금 이상합니다.

+0

내가 당신이라면 QC에게보고 할 것입니다. –

+0

그래, 내가 생각합니다 – Jamie

답변

1

코드가 작동하지 않습니다 왜 확신하지만, 여기 않는 일부입니다 :

for N := 0 to 5 do 
    cb1.ItemsEx.AddItem(intToStr(N), 0, 0, 0, DESIRED_INDENT_LEVEL, nil); 
+0

고마워요. 내 업데이 트를 참조하십시오 – Jamie

0

설정 캡션 전에 들여 쓰기 특성 을 설정하십시오. TComboBoxEx에서 "알려진 버그"로 보입니다.

관련 문제