Seite 1 von 1

FormatDate

Verfasst: 19.02.2013 23:57
von Simieto
PB 5.10 Linux

Code: Alles auswählen

Datum = Date()
SetGadgetText(String_0, FormatDate("%dd.%mm.%yyyy  %hh:%ii:%ss", Datum))
bringt folgendes Ergebnis: 19022013225220

Was habe ich denn nun schon wieder nicht verstanden? Laut Hilfe sollte FormatDate doch ein lesbares Ergebnis liefern.

Re: FormatDate

Verfasst: 20.02.2013 00:06
von ts-soft

Code: Alles auswählen

Datum = Date()
Debug FormatDate("%dd.%mm.%yyyy  %hh:%ii:%ss", Datum)
Debugger hat geschrieben:19.02.2013 23:05:07
Für mich ist das lesbar. Selbes Ergebnis unter Linux wie auch Windows.
Wäre, wie immer, vielleicht Sinnvoll, ein ausführbares Beispiel zu posten :wink:
(evtl. noch Angabe der Compileroptionen)

Gruß
Thomas

Re: FormatDate

Verfasst: 20.02.2013 00:22
von Simieto
Für mich ist das lesbar. Selbes Ergebnis unter Linux wie auch Windows.
Wäre, wie immer, vielleicht Sinnvoll, ein ausführbares Beispiel zu posten :wink:
(evtl. noch Angabe der Compileroptionen)
HalloWelt.pb

Code: Alles auswählen

ImportC ""
  gtk_entry_set_alignment(entry, xalign.f)
EndImport

XIncludeFile "MainWindow.pbf"

OpenWindow_0()

Procedure Button_0_Click(type)
	gtk_entry_set_alignment(GadgetID(String_0), 0.5)
	gtk_entry_set_alignment(GadgetID(String_1), 0.5)
	SetGadgetText(String_1, "Hallo Welt!")
	Datum = Date()
	SetGadgetText(String_0, FormatDate("%dd.%mm.%yyyy  %hh:%ii:%ss", Datum))
EndProcedure

Repeat
	Event = WaitWindowEvent()
	Select EventWindow()
		Case Window_0
			Window_0_Events(Event)
		EndSelect
Until Event = #PB_Event_CloseWindow
MainWindow.pbf

Code: Alles auswählen

Global Window_0

Global Button_0, String_0, String_1

Declare Button_0_Click(EventType)

Procedure OpenWindow_0()
  Window_0 = OpenWindow(#PB_Any, 0, 0, 250, 130, "Hallo Welt!", #PB_Window_SystemMenu)
  Button_0 = ButtonGadget(#PB_Any, 80, 100, 80, 20, "Hallo")
  String_0 = StringGadget(#PB_Any, 30, 60, 180, 20, "")
  String_1 = StringGadget(#PB_Any, 30, 20, 180, 20, "")
EndProcedure

Procedure Window_0_Events(event)
  Select event
    Case #PB_Event_CloseWindow
      ProcedureReturn #False

    Case #PB_Event_Menu
      Select EventMenu()
      EndSelect

    Case #PB_Event_Gadget
      Select EventGadget()
        Case Button_0
          Button_0_Click(EventType())          
      EndSelect
  EndSelect
  ProcedureReturn #True
EndProcedure
Jetzt wird es lustig, ich habe eine Leerzeile gelöscht und die Datei noch einmal gespeichert und jetzt kommt das erwartete Ergebnis.
Purebasic 'merkt' sich also auch irgendwelche Dinge außerhalb des Codes.
Ich hatte vorher mit Ziffern experimentiert und dem StringGadget auch mal #PB_String_Numeric verordnet.

Nun jedenfalls funktioniert es.

Re: FormatDate

Verfasst: 20.02.2013 00:30
von ts-soft

Code: Alles auswählen

 String_0 = StringGadget(#PB_Any, 30, 60, 180, 20, "", #PB_String_Numeric)
Was erwartest Du, was das Flag "#PB_String_Numeric" bewirkt?

PS: Es wäre besser die beiden Sourcen zusammenzupacken, es ist für die Helfer unnötige
Arbeit, dies für Dich zu tun und die Helfer werden den Code im allgemeinen auch nicht
speichern. EnableExplicit solltest Du auch verwenden, ist schon mal ein Zeichen dafür,
das Du bereits nach Fehlern gesucht hast, bzw. die Helfer brauchen Fehler, die durch
falsche Nutzung von Variablen entstehen, nicht mehr überprüfen.

Diese Hinweise sind nicht böse gemeint, sondern erleichtern es den Helfern beim aufspüren
Deines Fehlers, so sind auch wesentlich mehr Boarduser bereit Dir schnell und kompetent
zu Helfen.

Gruß
Thomas

Re: FormatDate

Verfasst: 20.02.2013 00:52
von Simieto
Was erwartest Du, was das Flag "#PB_String_Numeric" bewirkt?
Nun genau das, desshalb hatte ich es ja auch für das Datum gelöscht.
Aber nur die neue *.pbf zu speichern änderte das Verhalten nicht. Erst als ich auch die andere noch mal verändert und gespeichert hatte, funktionierte es wie erwartet.
Also irgendwo merkt sich PB noch Sachen außerhalb des Codes.

Re: FormatDate

Verfasst: 20.02.2013 01:01
von ts-soft
Naja, der FormDesigner ist zur Zeit noch nicht besonders ausgereift, der hat so Probleme
mit den Flags und dem Umschalten von Codevorschau und Design :wink:

Ich persönlich werden den auch noch nicht einsetzen. Ich komme auch ohne FormDesigner
zurecht und kann warten, bis das Tool mal ausgereift ist.