AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Rowheight Eigenschaft ändert sich ungewollt im StringGrid
Thema durchsuchen
Ansicht
Themen-Optionen

Rowheight Eigenschaft ändert sich ungewollt im StringGrid

Ein Thema von Boncuk79 · begonnen am 27. Apr 2005 · letzter Beitrag vom 29. Apr 2005
Antwort Antwort
Boncuk79

Registriert seit: 27. Apr 2005
8 Beiträge
 
Delphi 7 Enterprise
 
#1

Rowheight Eigenschaft ändert sich ungewollt im StringGrid

  Alt 27. Apr 2005, 22:56
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

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]
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

Re: Bitte um Hilfe...... (StringGrid)

  Alt 27. Apr 2005, 23:02
Was heißt Stringgrid als Tabelle ? Ich selber habe das Stringrid auseinandergenommen bis zum geht nicht mehr. Fast schon atomar zerlegt. Was willst du da machen ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Boncuk79

Registriert seit: 27. Apr 2005
8 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Bitte um Hilfe...... (StringGrid)

  Alt 27. Apr 2005, 23:24
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
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: Bitte um Hilfe...... (StringGrid)

  Alt 27. Apr 2005, 23:36
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)
Gruß
Hansa
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

Re: Bitte um Hilfe...... (StringGrid)

  Alt 28. Apr 2005, 15:41
warum muß man das in 3 Foren diskuttieren (DP,DF,DDG) ?

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

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
Boncuk79

Registriert seit: 27. Apr 2005
8 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Bitte um Hilfe...... (StringGrid)

  Alt 28. Apr 2005, 17:03
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...
  Mit Zitat antworten Zitat
Benutzerbild von gordon freeman
gordon freeman

Registriert seit: 28. Jun 2003
Ort: Gelsenkirchen
337 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Bitte um Hilfe...... (StringGrid)

  Alt 28. Apr 2005, 17:13
Zitat von Boncuk79:
Das hab ich versucht nur funkt das irgendwie nicht...
Dann zeig doch mal etwas Code von deinen Versuchen. Meine Glaskugel ist gerade in Reperatur und deshalb kann ich leider nicht vorhersagen, was an deinem Cod nicht stimmt.
  Mit Zitat antworten Zitat
Boncuk79

Registriert seit: 27. Apr 2005
8 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Bitte um Hilfe...... (StringGrid)

  Alt 28. Apr 2005, 20:32
ONDRAWCELL


Delphi-Quellcode:
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;
[edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit]
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9

Re: Bitte um Hilfe...... (StringGrid)

  Alt 29. Apr 2005, 06:53
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

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
Boncuk79

Registriert seit: 27. Apr 2005
8 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Bitte um Hilfe...... (StringGrid)

  Alt 29. Apr 2005, 12:37
Zitat von Keldorn:
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
ich werd das mal versuchen
Danke dir

Mfg
  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 19:02 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