Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - StringGrid1GetEditMask, rechtsbündig, 2- und 3-stellige Zahl


galagher - Mo 29.03.10 17:20
Titel: StringGrid1GetEditMask, rechtsbündig, 2- und 3-stellige Zahl
Hallo!

In Prozedur StringGrid1DrawCell wird rechtsbündig angezeigt, aber ich glaube, das ist bei meinem Problem hier egal.

Wie kann ich erreichen, dass der Code in StringGrid1GetEditMask...

Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.StringGrid1GetEditMask(Sender: TObject; ACol,
  ARow: Integer; var Value: String);
begin
 if StringGrid1.Col = 6 then Value := '!###'+'kg';
end;

... nicht diese Anzeige bewirkt:

Delphi-Quelltext
1:
2:
75 kg
100kg

...sondern so aussieht:

Delphi-Quelltext
1:
2:
 75kg
100kg

Dass also 2-stellige Zahlen eingerückt werden?
Wie muss Value dabei aussehen?


DonManfred - Di 30.03.10 06:09

StringGrid1GetEditMask hat einen Parameter ACol... Das ist die aktuelle Column....
Auf DIE würde ich prüfen (ACol =6)

Edith: Aber das ist nicht die Lösung für dein Problem... Es ist nur sinniger ACol halt abzufragen. weiss nicht ob stringgrid.col = acol ist...


galagher - Di 30.03.10 17:51

Ich habe das jetzt so gelöst und lasse den Text mit DrawText rechtsbündig anzeigen:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
//...
 if aCol = 6 then
  if Pos('kg', Cells[ACol, ARow]) = 0 then
   Cells[ACol, ARow] := Cells[ACol, ARow]+'kg';


Danke!