Odpowiedzi:
W System.pas (który jest używany automatycznie) zdefiniowano:
const
sLineBreak = {$IFDEF LINUX} AnsiChar(#10) {$ENDIF}
{$IFDEF MSWINDOWS} AnsiString(#13#10) {$ENDIF};
Pochodzi z Delphi 2009 (zwróć uwagę na użycie AnsiChar i AnsiString). (Zawijanie linii dodane przeze mnie.)
Więc jeśli chcesz zawinąć TLabel, upewnij się, że AutoSize jest ustawione na true, a następnie użyj następującego kodu:
label1.Caption := 'Line one'+sLineBreak+'Line two';
Działa we wszystkich wersjach Delphi od czasu wprowadzenia sLineBreak, czyli moim zdaniem 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;
Metoda agnostyczna platformy to „sLineBreak”: http://www.freepascal.org/docs-html/rtl/system/slinebreak.html
Write ('Hello' + sLineBreak + 'World!');
ShowMessage('Hello'+Chr(10)+'World');
Nie mam pod ręką kopii Delphi, ale jestem prawie pewien, że jeśli ustawisz właściwość wordwrap na true, a właściwość autosize na false, to powinno zawijać każdy tekst, który umieścisz w rozmiarze, jaki tworzysz na etykiecie. Jeśli chcesz zmienić wiersz w określonym miejscu , może to zadziałać, jeśli ustawisz powyższe ustawienia i wkleisz z edytora tekstu .
Mam nadzieję że to pomoże.
Czasami nie chcę zaśmiecać mojej przestrzeni kodu, szczególnie w przypadku etykiety statycznej. Aby po prostu zdefiniować go w formularzu, wprowadź tekst etykiety w formularzu, a następnie kliknij prawym przyciskiem myszy w dowolnym miejscu tego samego formularza. Wybierz „Wyświetl jako tekst”. Teraz zobaczysz wszystkie obiekty zgodnie z projektem, ale tylko jako tekst. Przewiń w dół lub wyszukaj swój tekst. Kiedy go znajdziesz, edytuj podpis, aby wyglądał mniej więcej tak:
Podpis = 'Linia 1' # 13'Linia 2 '# 13'Linia 3'
# 13 oznacza liczbę porządkową 13 lub ascii dla powrotu karetki. Chr (13) to ta sama idea, CHR () zmienia liczbę na typ porządkowy.
Zauważ, że w tym konkretnym aspekcie Delphi nie ma średnika, a zamiast „: =” używany jest znak „=”. Tekst w każdym wierszu jest ujęty w pojedyncze cudzysłowy.
Gdy skończysz, kliknij ponownie prawym przyciskiem myszy i wybierz „Wyświetl jako formularz”. Możesz teraz wykonać dowolne formatowanie, takie jak pogrubienie, wyrównanie do prawej itp. Po prostu nie możesz ponownie edytować tekstu w formularzu, bo stracisz podziały wierszy.
Używam również opcji „Wyświetl jako tekst” dla wielu zmian, w których chcę po prostu przewijać i zastępować itp. Szybko.
Dave
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;