태그 보관물: delphi

delphi

Delphi에서 문자열에 개행 문자를 어떻게 포함합니까? 줄에 걸쳐있는 문자열을 만들고 싶습니다. Delphi에서 어떻게

레이블 캡션 속성에 할당하기 위해 여러 줄에 걸쳐있는 문자열을 만들고 싶습니다. Delphi에서 어떻게 수행됩니까?



답변

System.pas (자동으로 사용됨)에는 다음이 정의되어 있습니다.

const
  sLineBreak = {$IFDEF LINUX} AnsiChar(#10) {$ENDIF}
               {$IFDEF MSWINDOWS} AnsiString(#13#10) {$ENDIF};

이것은 Delphi 2009에서 가져온 것입니다 (AnsiChar 및 AnsiString 사용에주의). (내가 줄 바꿈 추가.)

따라서 TLabel 랩핑을 만들려면 AutoSize가 true로 설정되어 있는지 확인한 후 다음 코드를 사용하십시오.

label1.Caption := 'Line one'+sLineBreak+'Line two';

sLineBreak가 도입 된 이후 Delphi 6의 모든 버전에서 작동합니다.


답변

다음은 더 짧은 접근 방식입니다.

my_string := 'Hello,'#13#10' world!';


답변

my_string := 'Hello,' + #13#10 + 'world!';

#13#10 십진수의 CR / LF 문자입니다.


답변

또는 ^ M + ^ J 단축키를 사용할 수도 있습니다. 모두 선호도의 문제입니다. “CTRL-CHAR”코드는 컴파일러에 의해 번역됩니다.

MyString := 'Hello,' + ^M + ^J + 'world!';

^ M과 ^ J 사이에서 +를 제거 할 수 있지만 컴파일러에서 경고를 받게됩니다 (하지만 여전히 잘 컴파일됩니다).


답변

측면에서 유용한 트릭이 있습니다
. TStrings에 여러 문자열을 보유하고 있다면 다음 예제와 같이 TStrings의 Text 속성을 사용해야합니다.

Label1.Caption := Memo1.Lines.Text;

그리고 여러 줄 레이블을 얻을 수 있습니다.


답변

var
  stlst: TStringList;
begin
  Label1.Caption := 'Hello,'+sLineBreak+'world!';

  Label2.Caption := 'Hello,'#13#10'world!';

  Label3.Caption := 'Hello,' + chr(13) + chr(10) + 'world!';

  stlst := TStringList.Create;
  stlst.Add('Hello,');
  stlst.Add('world!');
  Label4.Caption := stlst.Text;

  Label5.WordWrap := True; //Multi-line Caption
  Label5.Caption := 'Hello,'^M^J'world!';

  Label6.Caption := AdjustLineBreaks('Hello,'#10'world!');
  {http://delphi.about.com/library/rtl/blrtlAdjustLineBreaks.htm}
end;


답변

plattform에 구애받지 않는 방법은 ‘sLineBreak’입니다.
http://www.freepascal.org/docs-html/rtl/system/slinebreak.html

Write ( ‘Hello’+ sLineBreak + ‘World!’);