Seite 1 von 2
DateGadget ohne Datum
Verfasst: 10.03.2012 09:59
von gnaps
Hallo Forum,
ich erstelle eine Datenbank in der 4 verschiedene Datumsfelder für verschiedene Ereignisse sind.
Beim erstellen eines neuen Datensatzes soll das aktuelle Datum im ersten DateGadget eingefügt werden.
Dies ist kein Problem.
Jedoch sollen die anderen DateGadgets leer bleiben und erst durch den Anwender gefüllt werden.
Wie erstelle ich ein leeres DateGadget das auf die Eingabe des Anwenders wartet ??
Gruß gnaps
Re: DateGadget ohne Datum
Verfasst: 10.03.2012 10:12
von ts-soft
DateGadget ohne startwert geht nicht und macht keinen Sinn, was soll den der Kalender anzeigen, wenn der
geöffnet wird?
Ein Eingabefeld für ein Datum wirst Du Dir wohl selber programmieren müssen.
Gruß
Thomas
Re: DategGadget ohne Datum
Verfasst: 10.03.2012 10:12
von rolaf
gnaps hat geschrieben:Hallo Forum,
ich erstelle eine Datenbank in der 4 verschiedene Datumsfelder für verschiedene Ereignisse sind.
Beim erstellen eines neuen Datensatzes soll das aktuelle Datum im ersten DateGadget eingefügt werden.
Dies ist kein Problem.
Jedoch sollen die anderen DateGadgets leer bleiben und erst durch den Anwender gefüllt werden.
Wie erstelle ich ein leeres DateGadget das auf die Eingabe des Anwenders wartet ??
Gruß gnaps
Nun, ich würde jedes deiner DateGadgets mit dem aktuellen Datum füllen und beim Abspeichern prüfen ob die drei übrigen verändert wurden. Wenn nicht wird kein Datum gespeichert oder der Anwender darauf hingewiesen doch bitte eine Angabe vorzunehmen.
Re: DateGadget ohne Datum
Verfasst: 10.03.2012 12:10
von gnaps
Hallo,
zuerst vielen Dank für die Antworten.
Leider kann ich hier das DateGadget nicht verwenden. Ich nehme jetzt ein StringGadget, setze einen Button neben dem
Gadget und öffne ein CalenderGadget und hole mir darüber das Datum.
Funkt soweit ganz gut, jedoch wenn ich ein CalenderGadget öffne, muss ich das über andere StringGadgets
öffnen, fahre ich jetzt mit der Maus auf dem Kalender herum, kommen die darunterliegenden Gadgets zum Vorschein.
Wie kann ich das verhindern ??
Re: DateGadget ohne Datum
Verfasst: 10.03.2012 12:43
von HeX0R
Setze das CalenderGadget einfach in ein neues kleines (Popup-)Fenster oder gib uns ein wenig Beispielcode.
...und ein Fragezeichen genügt i.d.R.
Re: DateGadget ohne Datum
Verfasst: 10.03.2012 13:07
von gnaps
an das Extra-Fenster habe ich auch schon gedacht, jedoch möchte ich das CalenderGadget unter dem dazugehörigen StringGadget
plazieren um so eine bessere Zugehörigkeit zu erzielen.
Mein Code ist zu Groß für das Problem.
Re: DateGadget ohne Datum
Verfasst: 10.03.2012 13:54
von gnaps
hier doch einen code der das ganze aufzeigt.
Code: Alles auswählen
EnableExplicit
Global xFensterButton.i
Global KalenderX.i=230
Global KalenderY.i=330
Global KalenderW.i=200
Global KalenderH.i=180
Enumeration
#datum1
#datum2
#datum1_txt
#datum2_txt
#kalender
#datum
#button
EndEnumeration
OpenWindow(0,0,0, 1000, 700, "Testfenster",#PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_TitleBar | #PB_Window_MinimizeGadget)
TextGadget(#datum1_txt, 210, 415, 120, 20, "Datum-2", #PB_Text_Right)
StringGadget(#datum1, 280, 300, 90, 25,"123")
StringGadget(#datum2, 340, 410, 100, 25, "1232")
ButtonGadget(#kalender,375,300,20,25,"T")
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case #kalender
CalendarGadget(#datum,KalenderX.i,KalenderY.i,KalenderW.i,KalenderH.i,0)
EndSelect
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
End
wenn die Maus jetzt im rechten Bereich des Kalenders bewegt wird, kommt das StringGadget 2 nach vorne.
warum?
Re: DateGadget ohne Datum
Verfasst: 10.03.2012 14:08
von RSBasic
Ich hab mal einfach einen eigenen Code gebastelt, vielleicht ist es das was du brauchst:
Code: Alles auswählen
EnableExplicit
Define EventID
Procedure CalendarWindow(Gadget, X, Y, Width, Height)
Protected GadgetRect.RECT
GetWindowRect_(GadgetID(Gadget),@GadgetRect)
If OpenWindow(1,GadgetRect\left,GadgetRect\Top+GadgetHeight(Gadget),Width,Height,"",#PB_Window_BorderLess,WindowID(0))
CalendarGadget(3,0,0,Width,Height,0)
EndIf
EndProcedure
If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
StringGadget(1,100,100,200,20,"",0)
ButtonGadget(2,GadgetX(1)+GadgetWidth(1),GadgetY(1),20,20,"T",0)
Repeat
EventID=WaitWindowEvent()
If EventID=#PB_Event_Gadget
Select EventGadget()
Case 2
CalendarWindow(1, GadgetX(1), GadgetY(1), GadgetWidth(1)+GadgetWidth(2), 200)
Case 3
SetGadgetText(1,FormatDate("%dd.%mm.%yyyy", GetGadgetState(3)))
CloseWindow(1)
EndSelect
EndIf
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIf
Was noch natürlich fehlt, ist die Abfrage, ob das Calendar-Window noch den Fokus hat. Wenn nicht, dann soll dieses automatisch geschlossen werden.
Und es ist natürlich nur ein Anfangsbeispielcode. Kann man aber noch aufbauen wie z.B., dass das Fenster erst dann geschlossen wird, wenn man wirklich auf ein Tag geklickt hat oder man fügt noch einen Button im Fenster hinzu.
Re: DateGadget ohne Datum
Verfasst: 11.03.2012 18:34
von gnaps
Hallo,
so jetzt habe ich das ganze mit einem neuen Fenster umgesetzt.
Jetzt habe ich noch eine Frage:
Kann ich das zweite geöffnete Window (Kalenderwindow) an das Window eins vom Hauptprgamm anheften.
Wäre schön, dann kann ich mein Hauptfenster verschieben und das Kalenderfenster (sollte es offen sind) verschiebt sich mit.
Re: DateGadget ohne Datum
Verfasst: 11.03.2012 18:38
von RSBasic
Naja, ich würds eher so machen, dass das Aufklappfenster automatisch geschlossen wird, wenn das Hauptfenster verschoben wird, weil das Aufklappfenster ja dann keinen Fokus mehr hat.
Das ist ja bei anderen Controls genauso. Wenn du beispielsweise ein ComboBoxGadget erstellst und die Liste aufklappst und anschließend das Hauptfenster verschiebst, dann wird die Liste ebenfalls automatisch geschlossen.