AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi im OnExit Event den String hinter dem Komma auffüllen auf 2
Thema durchsuchen
Ansicht
Themen-Optionen

im OnExit Event den String hinter dem Komma auffüllen auf 2

Ein Thema von juergen · begonnen am 19. Feb 2006 · letzter Beitrag vom 19. Feb 2006
Antwort Antwort
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.175 Beiträge
 
Delphi 11 Alexandria
 
#1

im OnExit Event den String hinter dem Komma auffüllen auf 2

  Alt 19. Feb 2006, 20:35
Hallo zusammen,
ich möchte über das OnExit Event von einem Edit-Feld den eingegebenen Wert durch den Anwender ggf. "richtig stellen".
Ich suche eine Möglichkeit zu prüfen, ob hinter meinem TimeSeparator (kommt aus dem OnKeyPress-Event) ggf. auf 2 Stellen aufgefüllt werden muss.
Also aus 123:1 wird 123:10.
Zusätzlich muss auch der evtl. vergessene Timeseparator aufgefüllt werden...
Aus 123 wird dann 123:00.
Als "Auffüller" muss es immer eine Null oder halt 2 Nullen sein. (linksbündig auffüllen)
Somit müssen es nach dem OnExitEvent immer 2 Stellen hinter dem TimeSeparator sein...


Nun hab ich schon einiges probiert, aber noch nicht den richtigen Weg gefunden...

Kennt hier jemand eine Lösung?


Danke schon mal vorab!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: im OnExit Event den String hinter dem Komma auffüllen au

  Alt 19. Feb 2006, 21:23
Hallo Jürgen.

Die Lösung deines Problems ist nicht sonderlich schwer, wenn du verrätst, was 123:1 darstellen soll. Minuten führen ab 60, Stunden ab 24 zum Übertrag. Und von deiner Aufgabenstellung her würde ich 123:01 erwarten und nicht 123:10.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.175 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: im OnExit Event den String hinter dem Komma auffüllen au

  Alt 19. Feb 2006, 21:37
Hallo Marabu,
ich benötige es tatsächlich so wie ich es beschrieben habe.
In meinem Fall soll der Anwender Stundenwerte/Minutenwerte addieren oder
subtrahieren können, durchaus auch Werte größer 24 Stunden...
Gruß Jürgen
Jürgen
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: im OnExit Event den String hinter dem Komma auffüllen au

  Alt 19. Feb 2006, 22:45
Hallo Jürgen,

hier ein wenig Code für dich - mach was draus:

Delphi-Quellcode:
function ParseStr(var s: string; delimiters: string; purge: boolean = true): string;
var
  i: integer;
begin
  i := 0;
  while (i < Length(s)) and (Pos(s[Succ(i)], delimiters) = 0) do
    Inc(i);
  Result := Copy(s, 1, i);
  Delete(s, 1, i + Ord(purge));
end;

function StrToMinutes(s: String): Cardinal;
begin
  Result := StrToInt(ParseStr(s, TimeSeparator)) * 60;
  if s <> 'then
    Result := Result + StrToInt(ParseStr(s, TimeSeparator));
end;

function MinutesToStr(minutes: Cardinal): String;
begin
  Result := Format('%d:%.2d', [minutes div 60, minutes mod 60]);
end;

procedure TDemoForm.EditExit(Sender: TObject);
begin
  with Sender as TEdit do
    Text := MinutesToStr(StrToMinutes(Text));
end;
Gute Nacht

marabu
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.175 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: im OnExit Event den String hinter dem Komma auffüllen au

  Alt 19. Feb 2006, 23:51
Hallo marabu,
Respekt! Funktioniert perfekt. - das hätte ich so nie hinbekommen...
Wieder eine sehr qualifizierte Antwort von dir!
Dafür könnte ich , naja keine Angst, nur im übertragenem Sinne...

Mit deiner Lösung wird nun aus 123:1 dann 123:01, aber inzwischen denke ich, dass es so eigentlich besser ist.

Vielen Dank und Gute Nacht!
Jürgen
  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 13:34 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