AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Zeichnen von Zellen im Stringgrid unterdrücken
Thema durchsuchen
Ansicht
Themen-Optionen

Zeichnen von Zellen im Stringgrid unterdrücken

Ein Thema von messie · begonnen am 25. Jun 2008 · letzter Beitrag vom 27. Jun 2008
Antwort Antwort
Seite 1 von 2  1 2      
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#1

Zeichnen von Zellen im Stringgrid unterdrücken

  Alt 25. Jun 2008, 14:39
Moin,

ich möchte Text in einem StringGrid über mehrere Zeilen zentrieren. Im OnDrawCell vergrößere ich das Rect und schreibe dann den Text ins neue Rect. Danach werden die nachfolgenden Zellen aber darüber gezeichnet, so dass mein Text weg ist.
Gibt es da einen Trick, wie das Zeichnen einzelner Zellen zu unterbinden ist oder gibt es dafür einen anderen Ansatz?

Danke, Messie
  Mit Zitat antworten Zitat
Benutzerbild von iKilledKenny
iKilledKenny

Registriert seit: 25. Apr 2007
Ort: Bergstrasse
49 Beiträge
 
Delphi 5 Professional
 
#2

Re: Zeichnen von Zellen im Stringgrid unterdrücken

  Alt 25. Jun 2008, 14:52
Du solltest halt in den Zellen, die du mit dem Text übermalst, nichts anderes zeichnen (FillRect, etc.) Ansonsten mach ich das nämlich genau so.

Vielleicht mal die OnDrawCell Routine posten.
Alexander Stork
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Zeichnen von Zellen im Stringgrid unterdrücken

  Alt 25. Jun 2008, 15:04
Zitat von iKilledKenny:
Du solltest halt in den Zellen, die du mit dem Text übermalst, nichts anderes zeichnen (FillRect, etc.) Ansonsten mach ich das nämlich genau so.

Vielleicht mal die OnDrawCell Routine posten.
Delphi-Quellcode:
if (ARow = Index1) then
  begin
    if (ACol = 3) or (ACol = 8) then //Beschriftungsfelder
    begin
      with Sender as TTntStringGrid do
      begin
        s := Cells[ACol,ARow];
        Rect.Right := Rect.Right + (Rect.Right - Rect.Left) * 3;
        Canvas.FillRect(Rect);
        DrawTextW(Canvas.Handle, PWideChar(s),Length(s),Rect,DT_CENTER or DT_VCenter);
      end;
    end
    else
    begin
      exit;
    end;
  end
eine leere Zelle wird aber doch normalerweise gezeichnet. Kannst Du das irgendwie abschalten?

Grüße, Messie
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#4

Re: Zeichnen von Zellen im Stringgrid unterdrücken

  Alt 25. Jun 2008, 15:39
Habe 'ne ganze Weile nix mit dem Stringrid gemacht, aber die Lösung ist wohl, dass du das nicht in der ersten Zelle für die nächsten, sondern in der letzten Zelle für alle vrohergehenden Zellen zeichnest. Also: Du willst die Zellen 3-5 verbinden, dann wird deine Zeichenaktion erst tätig, wenn die Zelle 5 gezeichnet werden soll...
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von iKilledKenny
iKilledKenny

Registriert seit: 25. Apr 2007
Ort: Bergstrasse
49 Beiträge
 
Delphi 5 Professional
 
#5

Re: Zeichnen von Zellen im Stringgrid unterdrücken

  Alt 25. Jun 2008, 15:47
Dem muss ich widersprechen, ich mach das genauso, das ich in der ersten "verbundenen" Zelle male und dann nicht mehr.

Unterschied zu meiner Routine: Ich benutze ein TStringGrid.
TTntStringGrid kenne ich gar nicht.
Alexander Stork
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#6

Re: Zeichnen von Zellen im Stringgrid unterdrücken

  Alt 25. Jun 2008, 16:08
Widerspruch angenommen! Habe nachgesehen: Es funktioniert auch in der ersten verbundenen Zelle - Sorry
Ralph
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Zeichnen von Zellen im Stringgrid unterdrücken

  Alt 26. Jun 2008, 08:55
Also das mit dem rückwärts Zeichnen klappt gut! Sieht so aus, als würden leere Zellen im TStringGrid nicht, aber im TTntStringGrid immer gezeichnet.

Danke, Messie
  Mit Zitat antworten Zitat
Razor90

Registriert seit: 18. Jun 2008
80 Beiträge
 
#8

Re: Zeichnen von Zellen im Stringgrid unterdrücken

  Alt 26. Jun 2008, 19:18
Das geht aber leider über die ganze Zeilenlänge....wie kann ich jetzt übereinanderliegende Zellen verbinden, nur 2 und nicht alle???
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

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

Re: Zeichnen von Zellen im Stringgrid unterdrücken

  Alt 26. Jun 2008, 19:35
Hallo,

Du musst für jede der zusammengehörigen Zellen den gleichen Bereich und das gleiche zeichnen.
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Zeichnen von Zellen im Stringgrid unterdrücken

  Alt 27. Jun 2008, 08:44
Zitat von Razor90:
Das geht aber leider über die ganze Zeilenlänge....wie kann ich jetzt übereinanderliegende Zellen verbinden, nur 2 und nicht alle???
Wenn Dein Grid von oben nach unten gezeichnet wird, musst Du Rect nach oben vergrößern. Wenn Du immer eine genze Zeile geändert bekommst, kontrolliere mal die Options des Grid. Bei meinem Beispiel kann das Grid schonmal nicht editiert werden, es dient nur der Anzeige. Zusammengezeichnete Zellen zu markieren stelle ich mir wesentlich aufwändiger vor.

Grüße, Messie
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:13 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