Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Stringgrid-Zellen rechtsbündig drucken (https://www.delphipraxis.net/58337-stringgrid-zellen-rechtsbuendig-drucken.html)

Hansa 5. Dez 2005 20:46


Stringgrid-Zellen rechtsbündig drucken
 
Hi,

hänge hier an einer Sache fest : in einem Stringgrid werden Zahlen immer rechtsbündig dargestellt. Bei Reals wird auch bei einer Eingabe "10" immer "10,00" angezeigt. Dann wird noch manchmal etwas grafisches angezeigt usw. Alles im OnDrawCell. Jetzt wollte ich ein Grid drucken, aber da ist nichts mehr mit abschließenden Nullen.

Jetzt könnte ich ja dasselbe wie im OnDrawCell wieder machen. Muß das aber sein ? Ich brauche nur den reinen Text der angezeigten Zelle und zwar nach der Behandlung im OnDrawCell. Den Zelleninhalt nach der Umrechnung wieder neu anzuzeigen ists ja wohl auch nicht. Das landet ja dann wieder alles im DrawCell.

Ich will also mit einer Schleife das Grid durchgehen und die Zellinhalte so drucken, wie sie aussehen. Komme ich irgendwie nur an den Zellentext ran, ohne wieder formatieren zu müssen ?

Lannes 5. Dez 2005 21:16

Re: Stringgrid-Zellen rechtsbündig drucken
 
Hallo,

schau Dir das mal an, eventuell passt das :arrow:
... ein Stringgrid als Bitmap ausgeben/speichern

Hansa 8. Dez 2005 16:18

Re: Stringgrid-Zellen rechtsbündig drucken
 
Thx, Lannes. Aber das ist genau verkehrt rum. Ich brauche nur den Text und nicht die angezeigte Grafik, allerdings so wie er im OnDrawCell bereits formatiert wurde. Ich muß auf die einzelnen Zellen zugreifen und sie drucken, so wie sie auch auf dem Bildschirm zu sehen sind. Zumindest aber die Nachkommastellen.

Lannes 9. Dez 2005 09:50

Re: Stringgrid-Zellen rechtsbündig drucken
 
Hallo,

"verkehrt rum" würde ich nicht sagen, eher zuviel an Ausgabeinformationen.
Wenn die Gitterlinien ausgeblendet und die Funktionsvariablen richtig gesetzt werden,
hast Du nur noch die reinen Zellinhalte.
Ruf meine Funktion mal so auf:
Delphi-Quellcode:
var Bmp : TBitmap;
begin
  Bmp := TBitmap.Create;
  StringGrid1.Options := StringGrid1.Options - [goVertLine,goHorzLine];//<----
  if GridToBmp(StringGrid1,False,Bmp,0,clBlack) then
    begin
    Image1.Picture.Bitmap.Assign(Bmp);
    //oder
    //Bmp.SaveToFile('C:\Temp\StringGrid.bmp');
    //Clipboard.Assign(Bmp); //in uses clipbrd einbinden !!!
    end;
  StringGrid1.Options := StringGrid1.Options + [goVertLine,goHorzLine];//<----
  Bmp.Free;
end;
Es gibt aber ein Problem :? ,
wird in OnDrawCell auf gdFixed oder FixedCols/FixedRows reagiert,
ändert sich das Zeichnen der Fixed- Spalten/Zeilen wenn die Funktion, gesteuert über die Variable Fixed: Boolean, temporaer die Fixed- Spalten/Zeilen entfernt.
Das kann aber über eine Veränderung der OnDrawCell-Ereignisbehandlung angepasst werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:17 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