![]() |
Re: StringGrid Zellen wie Excel Kommastellen unterdrücken
Hallo Stecky2000,
ich würde versuchen, das mit der TStringGrid.Object – Eigenschaft zu lösen, damit ist es möglich hinter jeder Zelle ein Object dranzuhängen. In deinem Fall währe das der original Wert. Bis bald Chemiker |
Re: StringGrid Zellen wie Excel Kommastellen unterdrücken
Ich dachte da eher an einen Array o.ä.
|
Re: StringGrid Zellen wie Excel Kommastellen unterdrücken
oder am einfachsten OwnerDraw ... in den Zellen steht dann der richtige Wert, aber angezeigt/gezeichnet wird nur der per Format gerundete.
|
Re: StringGrid Zellen wie Excel Kommastellen unterdrücken
bau dir dich am besten 'n schönes objekt auf... in dem du die daten mit den algos speicherst. diese objekte hänst du in eine ObjectList. beim aufbau der objekte schreibst du zusätzlich die addresse in eine zeile/spalte. die berechnungen führst du dann easy über die objekte durch und scheibst nur die ausgabe ins stringgrid.
ist easy, zuverlässig und hinterlässt keine speicherlöcher :-) |
Re: StringGrid Zellen wie Excel Kommastellen unterdrücken
Schwer zu verdauen , Eure Kost....
Ich werde mal sehen, was ich hin bekomme. Werde mich mal in Ownerdrw einlesen und schauen, ob ich damit fertig werde. Array ist auch eine Alternative. Ich hatte damit bereits experimentiert. |
Re: StringGrid Zellen wie Excel Kommastellen unterdrücken
Hallo Stecky2000,
OwnerDraw ist der Überbegriff, bei StringGrid ist die Suche nach OnDrawCell erfolgreicher. Bis bald Chemiker |
Re: StringGrid Zellen wie Excel Kommastellen unterdrücken
So Jungs, sorry, hab ein wenig länger gebraucht um mich zu melden.
Ich hatte bereits heraus gefunden, das Ownerdraw nur der überbegriff war. Hab das Problem damit gelöst, war gar nicht so schwer ;-) Habs so gemacht:
Delphi-Quellcode:
Danke Euch für die Hilfe. Ich werde bestimmt mit mehr Fragen kommen ;-)
procedure TForm1.StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState); begin with (Sender as TStringGrid) do begin // Erste Reihe nicht einfärben if (ARow = 0) then Canvas.Brush.Color := clBtnFace else begin if (cells[ACol, ARow] <> '') and (cells[ACol, ARow] <> ' ') then Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, Format('2.2f', [StrToFloat (cells[acol, arow])])); end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz