Wie setze ich CR / LF in eine TStringgrid Zelle?

7

Ich möchte eine feste Zeile als Kopfzeile haben, aber die Texte sind ziemlich lang, also möchte ich die Zeilenhöhe erhöhen und CR / LF in den Zellentext einfügen.

Googeln zeigt dies als eine Lösung (und es ist das erste, was ich vor dem googlen dachte), aber es funktioniert nicht. Irgendwelche Ideen?

%Vor%

Was passiert, ist, dass die Zelle This is a sample testThis is the second line

enthält

(Delphi 7, wenn es einen Unterschied macht)

[Bounty] "Mein Fehler. Ich habe mir vor zwei Jahren eine Antwort gegeben, ohne zu überprüfen und stelle nun fest, dass die Antwort nicht funktioniert. Entschuldigung für jeden, der irregeleitet wurde. Dies ist ein FABOWAQ (häufig gestellte, oft falsch beantwortete Frage ) GINYF ".

Ich gehe davon aus, dass wir OnDrawCell verwenden möchten, aber stellen wir uns vor, dass wir auch die Höhe der String-Grid-Zeile, die die Zelle enthält, erhöhen müssten.

Ich werde die Antwort entweder für Code oder eine FOSS VCL-Komponente vergeben.

[Update] muss mit der Delphi XE2 Starter Edition funktionieren

    
Mawg 11.12.2010, 02:26
quelle

2 Antworten

20

TStringGrid verwendet Canvas.TextRect , das verwendet ExtTextOut , was wiederum das Zeichnen von mehrzeiligem Text nicht unterstützt.

Sie müssen dies selbst in einem OnDrawCell Event-Handler mit WinAPIs DrawText Routine. Siehe zum Beispiel diese Antwort zur Verwendung von DrawText für mehrzeiligen Text und dieser letzten Antwort zum Implementieren benutzerdefinierter Zeichnungen in OnDrawCell :

%Vor%

Es gibt auch andere StringGrid-Komponenten, die mehrzeiligen Text zeichnen können. Zum Beispiel dieses , das ich selbst geschrieben habe (Download Quellen: NLDStringGrid + NLDSparseList ) mit möglicherweise diesem Ergebnis:

%Vor%     
NGLN 24.10.2012, 09:00
quelle
5

Der TStringGrid-Standard-Renderer unterstützt nicht mehrere Zeilen. Indem Sie das TStringGrid im OwnerDraw-Modus (durch den Aufruf des OnDrawCell-Ereignisses) setzen, können Sie jede Zelle nach Ihren eigenen Wünschen rendern.

Sehen Sie sich das an für ein Beispiel, das einem früheren Benutzer geholfen hat.

Verknüpfter Referenzcode eingefügt:

%Vor%

Ich denke, das wird gut für dich funktionieren ...

    
Max Kielland 11.12.2010 02:43
quelle

Tags und Links