![]() |
Rowheight Eigenschaft ändert sich ungewollt im StringGrid
ich hoffe Ihr könnt mir helfen....
ich erstelle ein rechnungsprogramm mit Tabellen und es ist so wenn ich tabellen einfüge im unsichtbaren bereich des formular kommen die rowheigts durcheinander und die zeilen verschwinden bitte um hilfe :wall: Danke im Voraus [edit=MrSpock]PN geschrieben: Bitte Titel ändern. Mfg, MrSpock[/edit] [edit=MrSpock]Titel nach Rückantwort von Boncuk geändert. Mfg, MrSpock[/edit] |
Re: Bitte um Hilfe...... (StringGrid)
Was heißt Stringgrid als Tabelle ? Ich selber habe das Stringrid auseinandergenommen bis zum geht nicht mehr. Fast schon atomar zerlegt. :mrgreen: Was willst du da machen ?
|
Re: Bitte um Hilfe...... (StringGrid)
mit gridheight meine ich die gesammt höhe des stringgrids und rect versuche ich
beim ondrawcell zubekommen. die Texte sind manchmal zulang deswegen benötigt man zeilenumbruch. beim zeilenumbruch muss ich mit rowheights spielen damit der ganze text sichtbar ist. wenn es im unsichtbarer bereich geschehen soll passiert folgendes: die rowheigts kommen durcheinander und rect.top, rect.bottom erscheint 0 |
Re: Bitte um Hilfe...... (StringGrid)
Habe meine Glaskugel mal befragt. Die meint jetzt, daß der Zeilenumbruch wohl kommen muß, bei zu langen Bezeichnungen für die Zellen, da sonst horizontale Scrollbalken auftauchen, die irritieren. Allerdings meint sie auch, es wäre zu überlegen, diese überlangen Bezeichnungen in Zusatzzeile zu schieben. Offen bleibt allerdings immer noch, wo die anzuzeigenden Daten überhaupt herkommen. 8)
|
Re: Bitte um Hilfe...... (StringGrid)
warum muß man das in 3 Foren diskuttieren (DP,DF,DDG) :roll: ?
cellrect funktioniert nur für sichtbare Zellen, falls du es verwendest. Wenn du Zellen mit Zeilenumbruch verwendest, dann nimm beim Zeichnen Drawtext, Beispiele dazu sind genug im Forum, auch in der OH nach den Paramtern und notwenidgen DT_...Kosntanten schauen. Drawtext rufst du 2xauf, einmal mit DT_Calcrect um die Größe zu ermitteln (das rect übergeben, es wird in der Höhe angepaßt). mit dem ermittelten rect kannst du die höhe ausrechnen. isst die größer als die Zeilenhöhe dann paß du die Zeilenhöhe entsprechend an. Anschließend wieder mit drawtext und DT_Multiline den Text zeichnen. Mfg Frank |
Re: Bitte um Hilfe...... (StringGrid)
Das hab ich versucht nur funkt das irgendwie nicht...
Drawtext verwendest du wiederum in Ondrawcell und deswegen funkt es bei den unsichtbaren bereichen auch nicht. Da Ondrawcell nur für sichtbare bereiche gedacht ist. ich brauche eine lösung für den unsichtbaren bereich... :cry: |
Re: Bitte um Hilfe...... (StringGrid)
Zitat:
|
Re: Bitte um Hilfe...... (StringGrid)
ONDRAWCELL
Delphi-Quellcode:
[edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit]
With (Sender as TStringGrid) Do Begin
Text := Cells[ACol,ARow]; Canvas.FillRect(Rect); DrawText(Canvas.Handle, PChar(Text), Length(Text), Rect, DT_CalcRect or DT_Left or DT_WordBreak); DrawText(Canvas.Handle, PChar(Text), Length(Text), Rect, DT_Left or DT_WordBreak); y := Rect.Bottom - Rect.Top; IF y > 17 Then Begin RowHeights[ARow] := y; Height := CellRect(ACol,RowCount-1).Bottom; End; End; |
Re: Bitte um Hilfe...... (StringGrid)
wie gesagt: cellrect geht nicht bei unsichtbaren Zellen, da muß0t du dir was anderes einfallen lassen,. Entweder du summierst alle rowheights, oder du weißt, wie hoch die Zelle vorher war und wie hoch sie mit dem Text sein muß, mit der differenz kannst du auch die Höhe anpassen.
allerdings würde ich das nicht mehr im ondrawcell machen. u.U. wird dann immer wieder ein neuzeichnen veranlaßt. Ich würde das ganze auslagern und nur bei Bedarf ändern (Text, Spaltenbreite, ... hat sich gändert). Für die Größenermittlung brauchst du nicht unbedingt das cellrect, um die erforderliche Höhe mit dt_clactext zu ermittlen, reicht es, wenn du dir ein rect anlegts, das die Breite der Spalte (colwidths[]) hat. Mfg Frank |
Re: Bitte um Hilfe...... (StringGrid)
Zitat:
Danke dir Mfg |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz