AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TStringGrid. Zeilenumbruch. Langer Text, wie #13#10 einfügen
Thema durchsuchen
Ansicht
Themen-Optionen

TStringGrid. Zeilenumbruch. Langer Text, wie #13#10 einfügen

Ein Thema von Jackie1983 · begonnen am 25. Jun 2009 · letzter Beitrag vom 25. Jun 2009
Antwort Antwort
Jackie1983

Registriert seit: 12. Mär 2007
486 Beiträge
 
#1

TStringGrid. Zeilenumbruch. Langer Text, wie #13#10 einfügen

  Alt 25. Jun 2009, 13:56
Servus,

ich möchte gerne das wenn der Text die Länge von Zelle 3 überschreitet ein Zeilenumbruch eingefügt wird.
Jetzt habe ich mal geschaut wie ich einen Zeilenumbruch hinbekomme, das ist kein Problem.

Nur der Text macht mir ein wenig gedanken, weil ich nicht weis wie ich es umsetzen kann.
So sieht es zur zeit in der Draw Methode aus
Delphi-Quellcode:
      if ACol = 3 then
      begin
        if length(CellText) > sgMonitor.ColWidths[3] then
        begin
          Insert(#13#10,CellText,sgMonitor.ColWidths[3]-1);
          RowHeights[ARow] := DefaultRowHeight * 2;
        end;
        DrawText(canvas.Handle, PChar(CellText), Length(CellText), Rect, DT_left+DT_Vcenter);
      end else
        Canvas.TextOut(rect.left,rect.top+1,cells[acol,arow])
Aber jetzt mache ich ja nur einen Zeilenumbruch, was ist aber wenn die zweite Zeile auch zu lang ist dann brauche ich noch einen umbruch.

Hatte mit das irgend wie so gedacht.
Zitat:
Lange = RichtigeLangeVomText(Text);
solange wie textzelle <> ''
begin
liste.add(copy(textzelle,1,LangeZelle))
delete(textzelle,1,LangeZelle)
end;
dann kann es aber auch passieren das mitten im Text ein Zeilenumbruch eingefügt werden...
Habt ihr vielleicht ne Idee...

Mfg
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: TStringGrid. Zeilenumbruch. Langer Text, wie #13#10 einf

  Alt 25. Jun 2009, 14:13
Hallo,

wie wäre es damit?

Zitat von windows SDK:
DT_CALCRECT
Determines the width and height of the rectangle. If there are multiple lines of text, DrawText uses the width of the rectangle pointed to by the lpRect parameter and extends the base of the rectangle to bound the last line of text. If there is only one line of text, DrawText modifies the right side of the rectangle so that it bounds the last character in the line. In either case, DrawText returns the height of the formatted text but does not draw the text.
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#3

Re: TStringGrid. Zeilenumbruch. Langer Text, wie #13#10 einf

  Alt 25. Jun 2009, 14:33
Hallo,

ja, berechnen der Gesamt-Ausgabehöhe mit DT_CALCRECT.

Bei Textausgaben mit Zeilenumbrüchen ist die Konstante DT_WORDBREAK sehr hilfreich.
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Jackie1983

Registriert seit: 12. Mär 2007
486 Beiträge
 
#4

Re: TStringGrid. Zeilenumbruch. Langer Text, wie #13#10 einf

  Alt 25. Jun 2009, 14:55
ok habe es hinbekommen, war ja doch recht einfach.... thx
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz