AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi in einem stringgrid den text in den column zentrieren
Thema durchsuchen
Ansicht
Themen-Optionen

in einem stringgrid den text in den column zentrieren

Ein Thema von kiar · begonnen am 25. Dez 2003 · letzter Beitrag vom 26. Dez 2003
Antwort Antwort
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#1

in einem stringgrid den text in den column zentrieren

  Alt 25. Dez 2003, 19:36
fogender massen bin ich rangegangen:

Delphi-Quellcode:
procedure TForm1.SG1DrawCell(Sender: TObject; ACol, ARow: Integer;
                             Rect: TRect; State: TGridDrawState);

var
   r:TRect;
   i,a,x:integer;
   s:string;
begin
     
     
           with (sender as Tstringgrid) do
               begin
                   for i:=0 to 6 do
                      begin
                          r:=cellrect(i,0);
                          canvas.brush.color:=clblue;
                          if i = 0 then

                            s:='name'
                            
                            else
                            s:='Donnerstag';
                            a:=length(s)*font.size;
                          canvas.TextRect(r,r.left+((colwidths[i]div 2)-(a div 2)),r.top,s);// das ist die zeile die zentrieren soll !!!
                    
                    canvas.Brush.color:=clwhite;
                    canvas.FrameRect(r);
                    end;
               end;
er zentriert aber nicht richtig. wird eigentlich bei der breite der zellen der rahmen mitgemessen, oder muss man diesen noch dazuaddieren???

raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
grayfox

Registriert seit: 22. Jan 2003
Ort: Litschau
173 Beiträge
 
Delphi 4 Standard
 
#2

Re: in einem stringgrid den text in den column zentrieren

  Alt 25. Dez 2003, 23:35
hallo kiar!

ich glaub, du hast die arbeitsweise von 'drawcell' nicht richtig verstanden
drawcell zeichnet immer nur jene zelle, mit deren koordinaten es aufgerufen wird

--> procedure TForm1.SG1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);

wenn du in einer schleife durch deine spalten iterierst, ist es sehr wahrscheinlich, dass du
colwidth der letzten spalte für alle vorherigen auch zum zentrieren heranziehst. aus diesem grund
dürfte es bei dir nicht so gut aussehen

probiers mal auf diese art:
Delphi-Quellcode:
{$UNTESTED}

  s:=StringGrid1.Cells[ACol,ARow]
  StringGrid1.Canvas.FillRect(Rect); // Zellfarbe zeichnen
  DrawText(StringGrid1.Canvas.Handle, PChar(s), Length(s), Rect, DT_Center);
quelle: huberlix im vorigen beitrag

damit sollte es klappen

mfg, stefan
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#3

Re: in einem stringgrid den text in den column zentrieren

  Alt 26. Dez 2003, 00:49
hi grayfox , danke für deine antwort, bin auch schon auf drawtext gekommen, da geht es sogar mit dt_center und dtwordbreak, aber ich will die fixierten cellen zentrieren und umbrechen.

wäre klasse, wenn dir noch etwas einfallen würde.

raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#4

Re: in einem stringgrid den text in den column zentrieren

  Alt 26. Dez 2003, 09:31
Hallo,
versuch es doch mal mit
DrawText(StringGrid1.Canvas.Handle, PChar(s), Length(s), Rect, DT_Center+dt_wordbreak);
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#5

Re: in einem stringgrid den text in den column zentrieren

  Alt 26. Dez 2003, 12:07
hallo jens

siehe einen post über deinen . ich hatte die beschriftung für die Column ausgeschaltet, deshalb war nichts in den column zu sehen.

also das thema ist erledigt.

vielen dank raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  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 10:04 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