2011-11-23 2 views
2

RADogroup에있는 항목의 텍스트가 필요한 경우 텍스트를 줄 바꿈하는 방법에 대한 Delphi 5의 작은 예제가 필요합니다.delphi-TRadioGroup (wrapable 항목 포함)

버튼 속성에 액세스하여 Delphi 2006에서이 문제를 해결했지만 D5에서는이 속성이 존재하지 않습니다.

LE : SetWindowLong 이외의 해결책이 있습니까?

답변

2

완료.

procedure TForm1.Button1Click(Sender: TObject); 
var 
i: Integer; 
rbs: DWORD; 
rb: TRadioButton; 
begin 
with RadioGroup1 do 
begin 
    for i := 0 to ControlCount-1 do 
    begin 
    rb := radiogroup1.controls[i] as TRadioButton; 
    rbs := GetWindowLong(rb.Handle, GWL_STYLE); 
    rbs := rbs or BS_MULTILINE or BS_TOP; 
    SetWindowLong(rb.Handle, GWL_STYLE, rbs); 
    end ; 
    Invalidate; 
end ; 
end; 
2

라디오 그룹의 Controls 속성을 반복하여 Delphi 5에서 버튼을 쉽게 얻을 수 있습니다. 그렇다면 그들을 포장하기 위해 당신은 무엇을 할 것입니까? Delphi 5 라디오 버튼에는 WordWrap 속성이 없습니다.

나는 라디오 그룹을 사용하는 대신 그룹 상자에 여러 개의 라디오 버튼을 추가합니다. 이렇게하면 생성하는 라디오 버튼의 클래스를 정확히 제어 할 수 있습니다. 그런 다음 라디오 버튼 클래스를 파생시키고 WordWrap 속성을 구현합니다. 이렇게하려면 최신 델파이 버전처럼 CreateParamsBS_MULTILINE 스타일을 추가해야합니다.

물론 답안에 설명 된 방법도 효과가 있습니다!

+0

이것이 내가 작성한 방법입니다. + 1 – RBA

+0

그건 그렇고, 제 글을 쓸 때 당신의 대답을 보지 못했습니다. 나는 나의 오래된 델피 버전을 탐험 하느라 바빴다 !! –

+0

그것을하는 방법에 대한 표시는 매우 유용합니다. 나는 질문을 게시하고, 그 후에 코드를 썼다. 어쨌든, 당신은 매우 빠릅니다! – RBA

관련 문제