回答:
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のすべてのバージョンで機能します。これはDelphi 6であったと思います。
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;
特に静的ラベルの場合は、コードスペースが乱雑になりたくないことがあります。フォームで定義するだけの場合は、フォームにラベルテキストを入力してから、同じフォームの任意の場所を右クリックします。「テキストとして表示」を選択します。すべてのオブジェクトが設計どおりに表示されますが、テキストとしてのみ表示されます。下にスクロールするか、テキストを検索します。見つかったら、キャプションを編集して、次のようにします。
キャプション= 'Line 1'#13'Line 2 '#13'Line 3'
#13は、序数13、または改行のASCIIを意味します。Chr(13)も同じ考えですが、CHR()は数値を序数型に変更します。
Delphiのこの特定のファセットにはセミコロンがなく、「:=」ではなく「=」が使用されていることに注意してください。各行のテキストは一重引用符で囲まれています。
完了したら、もう一度右クリックして[フォームとして表示]を選択します。これで、太字、右揃えなどの書式設定を行うことができます。フォームのテキストを再編集できなくなるか、改行が失われます。
また、スクロールして置換などを行いたい複数の変更に対して「テキストとして表示」を使用しています。
デイブ
private
{ Private declarations }
{declare a variable like this}
NewLine : string; // ok
// in next event handler assign a value to that variable (NewLine)
// like the code down
procedure TMainForm.FormCreate(Sender: TObject);
begin`enter code here`
NewLine := #10;
{Next Code To show NewLine In action}
//ShowMessage('Hello to programming with Delphi' + NewLine + 'Print New Lin now !!!!');
end;