Witam wszystkich !
Pewnie temat był już kiedyś wałkowany ale nie mogę nic ciekawego namierzyć w Googlach.
O co chodzi ? W stringridzie udało mi się justowanie ogarnąć, działa bez zarzutu, ale chciałbym również aby np. w 4 kolumnie liczby, które wpisuje wyglądały następująco : 12,00 , 15,21 , 0,00 , itp. Czyli są dwa miejsca po przecinku.
Wklejam co znalazłem, i wklejam co już mam, Proszę o pomoc.
**
Co mam : **
procedure TNarzedziaFrm.StringGrid_NarzedziaDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
var
bEsNum : boolean;
SCad: string;
u: integer;
s:string;
begin
with StringGrid_Narzedzia.Canvas do
begin
S:= StringGrid_Narzedzia.Cells[acol, arow];
if acol = 4 then
begin
StringGrid_Narzedzia.Canvas.FillRect(Rect);
DrawText(Handle, PChar(s), Length(S), Rect, DT_RIGHT or DT_VCENTER or DT_SINGLELINE);
end;
if acol = 5 then
begin
StringGrid_Narzedzia.Canvas.FillRect(Rect);
DrawText(Handle, PChar(s), Length(S), Rect, DT_CENTER or DT_VCENTER or DT_SINGLELINE);
end;
end;
Co znalazłem do formatowanie 0,00 :
: if Grid.Cells[ACol,ARow] <> '' then begin
: bEsNum := True;
: sCad := Grid.Cells[ACol,ARow];
: for i:=1 to length(sCad) do
: if not (sCad[i] in ['0'..'9','-',',']) then bEsNum := False;
: if bEsNum then begin
: sCad := Format('%10.2f',[StrToFloat(Grid.Cells[ACol,ARow])]);
: with Grid.Canvas,Rect do begin
: i:=Right-TextWidth(sCad+' ');
: Grid.Canvas.FillRect(Rect);
: Grid.Canvas.TextOut(i,Top+2,sCad);
: end;
: end;
: end;
Jak to połączyć Panowie / Panie ?