AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Edit immer mit 2 Nachkommastellen

Ein Thema von Hansa · begonnen am 16. Sep 2004 · letzter Beitrag vom 17. Sep 2004
Antwort Antwort
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#1

Edit immer mit 2 Nachkommastellen

  Alt 16. Sep 2004, 01:55
Ich habe hier ein Stringgrid mit 2 Nachkommastellen. Ich kann also 2 Nachkommestellen eingeben und fertig. Ich wollte das nun auf ein TEdit übertragen, aber es geht nicht. 8) Wie muß der Code geändert werden ?

Delphi-Quellcode:
procedure TfrmTest.sgTestDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);

procedure WriteText(StringGrid: TStringGrid; ACanvas: TCanvas; const ARect: TRect;
    const Text: string);
  const
    DY = 2;
  var
    S: array[0..255] of Char;
  begin
    with Stringgrid, ACanvas, ARect do begin
      ExtTextOut(Handle, Right - TextWidth(Text) - 3, Top + DY,
            ETO_OPAQUE or ETO_CLIPPED, @ARect, StrPCopy(S, Text),
            Length(Text), nil);
    end;
  end;

  procedure Display(StringGrid: TStringGrid; const S: string);
  begin
    WriteText(StringGrid, StringGrid.Canvas, Rect, S);
  end;

var
   s : string;
begin
  inherited;
  if (ACol in [1,3..7]) then
    Display(sgTest, sgTest.Cells[ACol, ARow])
end;
Wie kann ich dieses Verhalten auf ein Edit übertragen ??
Gruß
Hansa
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Edit immer mit 2 Nachkommastellen

  Alt 16. Sep 2004, 07:16
Musst du gar nicht: In der JVCL gibt es bereits FloatEdits, die nicht mehr als eine bestimmte Anzahl an Nachkommastellen "durchlassen".
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3

Re: Edit immer mit 2 Nachkommastellen

  Alt 16. Sep 2004, 10:59
Was soll ich mit der JVCL ? Wenn es schon in einem Stringgrid geht, dann wird es mit einem Edit ja wohl auch hinzukriegen sein. Wie man an dem Source sieht, habe ich dazu das OnDrawCell Ereignis verwendet. Das gibts nun aber beim Edit nicht. Außerdem handelt es sich um eine eigene Komponente, die nicht fast alles so macht wie gewünscht (siehe Fremdkomponenten) sondern genau das, was ich will. Eben bis auf die 2 Dezimalstellen. Wenn es geht mache ich die auch noch in den OI rein, damit auch das einzustellen ist, mit 2 als Default-Wert.
Gruß
Hansa
  Mit Zitat antworten Zitat
CT86

Registriert seit: 24. Aug 2004
Ort: Wo immer mein PC steht
21 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Edit immer mit 2 Nachkommastellen

  Alt 16. Sep 2004, 11:08
Hey,
probiers mal so
Delphi-Quellcode:
var v:Integer; s: String;
begin
  v := 1.43245;
  Str(v:6:2, s); // die 2 steht für die Nachkommastellen
  Edit.Text := s;
end;
Müsste so funzen
mfg
CT86
Wenige Menschen denken, und doch wollen alle entscheiden.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

Re: Edit immer mit 2 Nachkommastellen

  Alt 17. Sep 2004, 15:35
Kannst auch das hier versuchen (nicht sehr ausgiebig getestet):
Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
var
  SelStart: Integer;
begin
  try
    SelStart := Edit1.SelStart;
    Edit1.Text := Format('%.2f', [StrToFloat(Edit1.Text)]);
    Edit1.SelStart := SelStart;
  except
  end;
end;
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6

Re: Edit immer mit 2 Nachkommastellen

  Alt 17. Sep 2004, 16:20
Thx, aber das einfachste ist, das OnExit des Edits zu verwenden und dann noch FloatToStr. Im Onchange sieht das ganze etwas seltsam aus und es ist auch nicht nötig, das bei jedem Tastendruck aufzurufen.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:03 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