AGB  ·  Datenschutz  ·  Impressum  







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

zahl in Uhrzeit darstellen

Ein Thema von Cr3at0r · begonnen am 8. Jul 2006 · letzter Beitrag vom 14. Jul 2006
Antwort Antwort
Seite 2 von 4     12 34      
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#11

Re: zahl in Uhrzeit darstellen

  Alt 8. Jul 2006, 23:53
Ich habe den Code mal ein wenig poliert, damit der Compiler ihn übersetzen kann und der Rechner ohne Laufzeitfehler das richtige Ergbnis liefert:

Delphi-Quellcode:
function SecToStr (t: Int64): string;
var
  DT : TDateTime;
begin
  DT := t / (60 * 60 * 24);
  Result := Format('%d Tag(e), %s', [Trunc(DT), FormatDateTime('h "Stunden", n "Minuten und" s "Sekunden"', DT)]);
end;
Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#12

Re: zahl in Uhrzeit darstellen

  Alt 9. Jul 2006, 00:16
Zitat von Hawkeye219:
Ich habe den Code mal ein wenig poliert, damit der Compiler ihn übersetzen kann und der Rechner ohne Laufzeitfehler das richtige Ergbnis liefert
Danke.... Die Quotes hatte ich echt vergessen
  Mit Zitat antworten Zitat
Cr3at0r

Registriert seit: 6. Jul 2006
52 Beiträge
 
#13

Re: zahl in Uhrzeit darstellen

  Alt 9. Jul 2006, 12:46
und wie bau ich eine function ein? wie eine prozedure?
  Mit Zitat antworten Zitat
Benutzerbild von Michael Habbe
Michael Habbe

Registriert seit: 10. Aug 2005
264 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: zahl in Uhrzeit darstellen

  Alt 9. Jul 2006, 12:49
Zitat von Cr3at0r:
und wie bau ich eine function ein? wie eine prozedure?
Im Prinzip ja, aber Du willst ja auch was mit dem Ergebnis der Funktion was anfangen. Also z.B.:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := SecToStr(25000);
end;
Damit die Funktion "gesehen" wird, muss Sie vor dem Aufruf im Button1Click in die Unit eingefügt werden:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function SecToStr (t: Int64): string;
var
  DT : TDateTime;
begin
  DT := t / (60 * 60 * 24);
  Result := Format('%d Tag(e), %s', [Trunc(DT), FormatDateTime('h "Stunden", n "Minuten und" s "Sekunden"', DT)]);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := SecToStr(25000);
end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: zahl in Uhrzeit darstellen

  Alt 9. Jul 2006, 13:00
Und damit das ganze noch besser lesbarer ist, sollte man statt 24*60*60 lieber die definierten Zeitkonstanten nehmen, z.B.:
FormatDateTime(ShortTimeFormat, Seconds/(HoursPerDay*MinsPerHour*SecsPerMin)); Wenn man dann noch Format Variablen verwendet ist es auch noch auf der ganzen weiten Welt verwendbar.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Cr3at0r

Registriert seit: 6. Jul 2006
52 Beiträge
 
#16

Re: zahl in Uhrzeit darstellen

  Alt 9. Jul 2006, 17:15
@Michael:
Wie hängt die Prozedure mit der Funktion zusammen?


@All:

Was mir glaub ich am meisten hilft, wenn mir einer ma dei Zelen dazu auch erklärt um es nachvoll ziehen zu können.

MfG
  Mit Zitat antworten Zitat
Cr3at0r

Registriert seit: 6. Jul 2006
52 Beiträge
 
#17

Re: zahl in Uhrzeit darstellen

  Alt 11. Jul 2006, 22:28
hmmm keine Antworten mehr...ich hoffe ich nerve euch nicht zu sehr damit.

Ich kenne mich eben in delphi nicht so aus und darum wäre eine erklärungen u den zeilen der hilfreich wie zb. was ist int64 ist und so.

MfG
  Mit Zitat antworten Zitat
Benutzerbild von Michael Habbe
Michael Habbe

Registriert seit: 10. Aug 2005
264 Beiträge
 
Turbo Delphi für Win32
 
#18

Re: zahl in Uhrzeit darstellen

  Alt 11. Jul 2006, 23:41
Nochmal die Unit und die wichtigsten Hinweise dahinter.

Um dieses Beispiel nachzubilden, brauchst Du ein leeres Formular (neues Projekt), wo Du einen Button und ein Label rauftust. Anschließend einen Doppelklick auf den Button.

[edit]
1. nochmals vereinfacht
2. Delphi-Referenz durchsuchenInt64: Datentyp zum Speichern von ganzen Zahlen
[/edit]

Delphi-Quellcode:
unit Unit1; // war Delphi
                                                //
interface // überall, wo ein leerer
                                                // Kommentar hintersteht,
uses // soll stellvertretend
  Windows, Messages, SysUtils, Variants, // darstellen, dass diese
  Classes, Graphics, Controls, Forms, Dialogs, // Zeilen von Delphi
  StdCtrls; // generiert wurden
                                                //
type //
  TForm1 = class(TForm) //
    Label1: TLabel; //
    Button1: TButton; //
    procedure Button1Click(Sender: TObject); // nach Doppelklick auf den Button
  private //
    { Private-Deklarationen }                   //
  public //
    { Public-Deklarationen }                    //
  end; //
                                                //
var //
  Form1: TForm1; //
                                                //
implementation //
                                                //
{$R *.dfm}                                      //

// die folgende Funktion muss kopiert und in Delphi eingefügt werden
// und zwar an genau dieser Stelle, dadurch wird sichergestellt,
// dass alle nachfolgenden "ButtonClicks" und andere Funktionen/Prozeduren
// diese Benutzerfunktion "sehen" können
function SecToStr (sec: Int64): string; // Name der Funktion mit einem
                                                // Übergabeparameter vom Typ
var // Integer, Rückgabe nach
                                                // Verarbeitung des Parameters
  DT : TDateTime; // lokale Variable // ist ein String, der die
                                                // Sekunden umgewandelt hat
begin
  DT := sec / (60 * 60 * 24); // Sekunden umwandeln in Tage

  // die folgende Zeile kodiert die Tage aus dem "Double" = TDateTime
  // in einen lesbaren String, der die Angabe Tage enthält
  Result := IntToStr(Trunc(DT)) + ' Tage'; // Trunc schneidet den
                                                // Nachkommaanteil einer
                                                // Dezimalzahl ab
                                                // IntToStr wandelt Zahl
                                                // in String um
end;

procedure TForm1.Button1Click(Sender: TObject); //
begin //
  // in dieser Zeile wird die selbstgeschriebene Funktion aufgerufen "SecToStr"
  // und ihr ein Wert mitgegeben (25000 Sekunden)
  // die Funktion wird ausgeführt und der Rückgabewert (der ein String ist)
  // im Label ausgegeben
  Label1.Caption := SecToStr(25000);
end; //

end. // Finale
HTH

mfg
Michael
  Mit Zitat antworten Zitat
Cr3at0r

Registriert seit: 6. Jul 2006
52 Beiträge
 
#19

Re: zahl in Uhrzeit darstellen

  Alt 12. Jul 2006, 15:14
Also ich habe jetzt bei dieser zeile:

Delphi-Quellcode:
irig := floattosec((irib - iriv) / iri2);
label51.caption := sectostr(irig);
irib, iriv und iri2 sind alles als real deklariert genauso wie irig.

den fehler:

"Undefinierter Bezeichner: floattosec"

Meine Frage wie mach ich das jetzt, dass das label irig in der Zeit angibt??
  Mit Zitat antworten Zitat
Benutzerbild von Michael Habbe
Michael Habbe

Registriert seit: 10. Aug 2005
264 Beiträge
 
Turbo Delphi für Win32
 
#20

Re: zahl in Uhrzeit darstellen

  Alt 12. Jul 2006, 17:14
Zitat von Cr3at0r:
Also ich habe jetzt bei dieser zeile:
Delphi-Quellcode:
irig := floattosec((irib - iriv) / iri2);
label51.caption := sectostr(irig);
irib, iriv und iri2 sind alles als real deklariert genauso wie irig.
den fehler:
"Undefinierter Bezeichner: floattosec"
Meine Frage wie mach ich das jetzt, dass das label irig in der Zeit angibt??
Ganz einfach: Eine Funktion programmieren, die das gewünschte Ergebnis liefert, benutzen kannst Du den Quelltext, den ich extra für Dich nach Aufforderung kommentiert habe, als Vorlage.

-->> Nicht alle Funktionen, die man gerne benutzen möchte, gibt es auch, manchmal muss man selbst Hand anlegen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 17:37 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