AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Stringgrid-Zellen rechtsbündig

Ein Thema von Hansa · begonnen am 29. Jan 2010 · letzter Beitrag vom 14. Mär 2010
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#11

Re: Stringgrid-Zellen rechtsbündig

  Alt 14. Mär 2010, 17:31
Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
          Rect: TRect; State: TGridDrawState);
begin
  // Alle Spalten rechtsbündig
  WriteTextAligned(TStringGrid(Sender).Canvas, Rect, taRightJustify, TStringGrid(Sender).Cells[Acol, ARow]);
end;
Aktiviere mal das Ereignis OnDrawCell im Objektinspektor und setze dann den
obigen Code ein. So geht es bei mir.
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat
s-off

Registriert seit: 20. Jan 2010
89 Beiträge
 
Delphi 2010 Professional
 
#12

Re: Stringgrid-Zellen rechtsbündig

  Alt 14. Mär 2010, 19:25
Hast Du Dir mal die von mir gepostete Unit angesehen?
Gruß
s-off
  Mit Zitat antworten Zitat
Hansa

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

Re: Stringgrid-Zellen rechtsbündig

  Alt 14. Mär 2010, 19:46
Zitat von s-off:
Hast Du Dir mal die von mir gepostete Unit angesehen?
Ja sicher. Nichts für ungut, aber das passt nicht recht in mein Konzept. Wenn das mit dem OnDrawCell mir auch nicht gefällt : gehen tuts ja schon.

Das, was die Prozedur :

WriteTextAligned im Prinzip macht, das macht bei mir die Prozedur sgRechts und die wird im OnDrawCell des Grids aufgerufen (noch). Siehe #1.

Darum gehts aber nicht. Es geht darum diese Eigenschaft dem Stringgrid beizubringen. An Source gibts kaum mehr was zu zeigen. Der Vollständigkeit halber :

Delphi-Quellcode:
TExtStringGrid = class(TStringGrid)
  private
    FCellInteger : integer;
...
  public
     property CellInteger[ACol, ARow : integer] : integer read GetCellInteger write SetCellInteger;
end;
...
function TExtStringGrid.GetCellInteger(ACol, ARow: integer): integer;
begin
  GetCellInteger := FCellInteger;
end;
Rest siehe #1. Ich kann ja auch den Stringgrid-Zellen ohne große Umwege direkt Zahlenwerte übergeben. Das geht ja alles. Aber ich kriege die Zellwerte (sofern numerisch) eben nicht dazu, dass sie rechtsbündig in den Zellen stehen. Außer ich gehe bei jedem Grid hin und behandele das im OnDrawCell. Langsam wird das OnDrawCell unübersichtlich. Man schaue sich das mal an :

Delphi-Quellcode:
procedure Tfrm.sgDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
const IsChecked : array[Boolean] of Integer =
      (DFCS_BUTTONCHECK, DFCS_BUTTONCHECK or DFCS_CHECKED);
var DrawState: Integer;
begin
  inherited;
  if (ARow >= sgArtNr.FixedRows) and (ACol >= sgArtNr.FixedCols) then with sgArtNr do begin
    if (ACol in KommaCols) then
      sgKommaRechts(sgArtNr, Rect, ACol, ARow)
    else if (ACol in RechtsCols + ZahlenCols + MinusCols) then
      sgRechts(sgArtNr, Rect, ACol, ARow)
    else if (ACol in CheckBoxCols) then
      sgZentriert(sgArtNr, Rect, ACol, ARow);
    EditObject := TEditObject (Objects [ACol,ARow]);

... noch über 100 Zeilen
end;
Das muss langsam mal 1. entflechtet, übersichtlicher und 2. wartbarer gemacht werden. Denn obwohl ich schon beim Bestücken der Zellen weiss, wie die formatiert werden sollen, ob es integer, real oder sonstwas ist, gehe ich momentan über den Umweg der Spaltennummern.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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