아래 코드로 동적 단추를 만들었습니다. 단추 캡션이 너무 길어 캡션의 크기를 단추 너비에 맞게 변경해야하지만 단어 랩은 전혀 작동하지 않는 것으로 보입니다.어떻게 단추 텍스트를 단어 줄 바꿈?
var
Reg: TRegistry;
lstKey, lstSubKey : TStringList;
sKeyName, sSubKeyName : string;
i, j, iSize, iSize2, iTop, iSpace, iComp : integer;
begin
lstKey := TStringList.Create;
lstSubKey := TStringList.Create;
lstBtnName := TStringList.Create;
Reg := TRegIniFile.Create;
try
Reg.OpenKeyReadOnly('registryPath');
Reg.GetKeyNames(lstSubKey); // get registry key
Reg.CloseKey;
iSize := 5;
iSize2 := 5;
iTop := 5;
iSpace := 5;
if ScrollBox1.ControlCount > 0 then begin
for j := ScrollBox1.ControlCount - 1 downto 0 do begin
with ScrollBox1.Controls[j] AS TBitBtn do begin
Free;
end;
end;
end;
for i := 0 to lstSubKey.Count - 1 do begin
with TBitBtn.Create(self) do begin // create dynamic buttons
Parent := ScrollBox1;
Height := 50;
Width := 50;
if iSize > ((Width + iSpace) * 3) then begin //2nd row, 3 btns in 1 row
Left := iSize2;
iSize2 := iSize2 + Width + iSpace;
Top := iTop + Height + iSpace;
end else begin //1st row
Left := iSize;
iSize := iSize + Width + iSpace;
Top := iTop;
end;
Caption := lstSubKey.Strings[i];
WordWrap := TRUE;
end;
end;
finally
lstKey.Free;
lstSubKey.Free;
Reg.Free;
end;
end;
"작동하지 않음"방법? 줄 바꿈이 예상되는 문자열과 실제로 얻은 결과에 대한 설명이 도움이 될 것입니다. 게시 된 코드의 대부분은 명시된 문제와 직접적으로 관련이 없습니다 (WordWrap = TRUE 인 TBitBtn의 캡션에 '일부 문자열'캡션을 설정하면 줄 바꿈을해야합니다. ,하지만 그렇지 않습니다). 나는 그 단순성 수준으로 당신의 모범을 줄이는 것이 좋습니다. 그렇게함으로써 당신은 다른 간단한 실수를 범할 수도 있습니다. – Deltics