Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Zeilenumsprung wenn übergebener Tesxt zu lang ist


Jasmini - Fr 15.04.05 15:25
Titel: Zeilenumsprung wenn übergebener Tesxt zu lang ist
Hallo alle...
ich hab ein Programm geschrieben, wo mit man Vokabeln und Fragen lernen kann! Es hat ähnlichkeiten mit wer wird Millionär!

Jetzt ist mir aufgefallen, dass manche Fragen nicht ganz ausgelesen werden, jetzt ist meine Fragen
ob und wie ich da einen Zeilenumsprung im Edit FEld machen kann!!??

Danke schon mal!

Jasmin :P


Grendel - Fr 15.04.05 15:29

Du erzeugst Dir ein Canvas und weist diesem die selbe Schrift, wie dem Edit zu. Nun kannst Du mit Canvas.TextHeight() und Canvas.TextWidth() die Breite des Textes in Pixeln ermitteln.
Wenn das Ergebniss größer als die breite des Forms bzw. des Edits sind muss umgebrochen werden.
Dazu brauchst Du nun nur noch an der entsprechenden Stelle ein #13#10 einfügen.

Bis neulich ...


Jasmini - Fr 15.04.05 15:30

user profile iconGrendel hat folgendes geschrieben:
Du erzeugst Dir ein Canvas und weist diesem die selbe Schrift, wie dem Edit zu. Nun kannst Du mit Canvas.TextHeight() und Canvas.TextWidth() die Breite des Textes in Pixeln ermitteln.
Wenn das Ergebniss größer als die breite des Forms bzw. des Edits sind muss umgebrochen werden.
Dazu brauchst Du nun nur noch an der entsprechenden Stelle ein #13#10 einfügen.

Bis neulich ...



Danke!!!!!!!!!!!!!!!!!!!!!!!!


WeBsPaCe - Fr 15.04.05 15:34

#13#10 funktioniert bei Canvas sowie bei Edit nicht! Nimm doch einfach ein Memo. ;)


Grendel - Fr 15.04.05 15:47

user profile iconWeBsPaCe hat folgendes geschrieben:
#13#10 funktioniert bei Canvas sowie bei Edit nicht! Nimm doch einfach ein Memo. ;)

Bei Canvas kann das auch nicht, da Canvas keine Caption hat und bei Edit.Caption funtioniert es so lange man das ganze zur Laufzeit zuweist. Zur Entwurfszeit gehts tatsächlich nicht.

Bis neulich ...


WeBsPaCe - Fr 15.04.05 15:48

:gruebel: Wo hat denn TEdit eine Caption??? Bin ich grad irgendwie zu blöd?? :eyes:


Grendel - Fr 15.04.05 15:55

user profile iconWeBsPaCe hat folgendes geschrieben:
:gruebel: Wo hat denn TEdit eine Caption??? Bin ich grad irgendwie zu blöd?? :eyes:

Uhh wiehe ich Idiot :roll:
Hatte die ganze zeit Label im Hinterkopf. Beim Edit gehts natürlich nicht; Da hast Du wohl recht.

Bis neulich ...


Jasmini - Fr 15.04.05 16:05

un jetzt? jetzt raff ich gar nix mehr! :shock:


WeBsPaCe - Fr 15.04.05 16:07

Gut... kP... ;)

Also, @Jasmini:
Die beste Lösung ist, dass du dein Edit-Feld durch ein TMemo ersetzt. Dort kannst du dann entweder sowas...

Delphi-Quelltext
1:
Memo1.Text := 'Zeile 1'+Chr(13)+Chr(10)+'Zeile 2';                    

...oder sowas...

Delphi-Quelltext
1:
2:
3:
Memo1.Lines.Clear;
Memo1.Lines.Add('Zeile 1');
Memo1.Lines.Add('Zeile 2');

...schreiben. Sieht beides am Ende so aus:

Quelltext
1:
2:
Zeile 1
Zeile 2

;)