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 Eintrag in Listview nach Eingabe formatieren (https://www.delphipraxis.net/146554-eintrag-listview-nach-eingabe-formatieren.html)

RWarnecke 22. Jan 2010 10:30


Eintrag in Listview nach Eingabe formatieren
 
Hallo zusammen,

ich ändere einen Wert in einer TAdvListView. Dieses funktioniert auch wunderbar. Ich möchte aber nun nach der Änderung den Wert noch entsprechend darstellen. Hier meine beiden Versuche, die leider nicht funktionieren :

Versuch 1:
Delphi-Quellcode:
procedure TMainForm.AdvLV_GrunddatenzuschuesseEdited(Sender: TObject;
  Item: TListItem; var S: string);
var
  tmpBetrag: Extended;
begin
  case AdvLV_Grunddatenzuschuesse.ColumnIndex of
    0 : begin
          // ToDo Something
        end;
    1 : begin
          if TryStrToFloat(S, tmpBetrag) then
            AdvLV_Grunddatenzuschuesse.Selected.SubItems.Strings[0] := Format('%2.2n €', [tmpBetrag]);
        end;
    2 : begin
          // ToDo Something
        end;
  end;
end;
Versuch 2:
Delphi-Quellcode:
procedure TMainForm.AdvLV_GrunddatenzuschuesseEdited(Sender: TObject;
  Item: TListItem; var S: string);
var
  tmpBetrag: Extended;
begin
  case AdvLV_Grunddatenzuschuesse.ColumnIndex of
    0 : begin
          // ToDo Something
        end;
    1 : begin
          if TryStrToFloat(S, tmpBetrag) then
            Item.SubItems.Strings[0] := Format('%2.2n €', [tmpBetrag]);
        end;
    2 : begin
          // ToDo Something
        end;
  end;
end;
Ihr werdet mir wahrscheinlich gleich sagen, dass Versuch 1 & 2 das gleiche ist. Das kann ich mir schon entsprechend vorstellen, nur leider funktionieren beide nicht. Es gibt auch keine Fehlermeldung. Es wird immer nur so angezeigt, wie ich es eingebe.

Was mache ich falsch ?

uligerhardt 22. Jan 2010 12:35

Re: Eintrag in Listview nach Eingabe formatieren
 
Nur damit ich dich recht verstehe: Der Benutzer editiert einen Eintrag in der einen Spalte, du möchtest aber den Eintrag in der gleichen Zeile, aber einer anderen Spalte formatieren?

Wenn nicht, sollte es reichen, den formatierten Wert auf S zuzuweisen.

RWarnecke 22. Jan 2010 12:43

Re: Eintrag in Listview nach Eingabe formatieren
 
Hallo Uli,

danke für Deinen Tip:
Zitat:

Zitat von uligerhardt
Wenn nicht, sollte es reichen, den formatierten Wert auf S zuzuweisen.

Wenn ich das ganze jetzt so mache :
Delphi-Quellcode:
procedure TMainForm.AdvLV_GrunddatenzuschuesseEdited(Sender: TObject;
  Item: TListItem; var S: string);
var
  tmpBetrag: Extended;
begin
  case AdvLV_Grunddatenzuschuesse.ColumnIndex of
    0 : begin
          // ToDo Something
        end;
    1 : begin
          if TryStrToFloat(S, tmpBetrag) then
            S := Format('%2.2n €', [tmpBetrag]);
        end;
    2 : begin
          // ToDo Something
        end;
  end;
end;
Funktioniert es wunderbar. Habe da wohl den Wald vor lauter Bäumen nicht gesehen.


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