| |
|
|
Rainer Hoefs | Hallo zusammen, brauche mal wieder Eure Aiuto, da ich nicht mehr weiter weiß.
In einem Programm stehen 2 DateEdits nebeneinander. Nach Auswahl des Datums in DateEdit1 soll das gleiche Datum (später 1 Tag plus) eingestellt werden.
Allerdings reagiert das IF CLICKED DateEdit1% nicht um den entsprechenden Befehl auszuführen.
Keine Ahnung warum.
Für jede Aiuto dankbar.
Hier der Code:
Declare dateedit1%, dateedit2%
Def GetStockObject(1) !"GDI32","GetStockObject"
Def GetSysColor(1) !"USER32","GetSysColor"
Def GetParent(1) !"USER32","GetParent"
Def &COLOR_BTNFACE $F
Def &DEFAULT_GUI_FONT $11
Proc CreateElements
WindowStyle 26 | 512 | 2048
WindowTitle "Arbeitsfenster"
Window 280, 0 - 318, 188
Cls GetSysColor(&COLOR_BTNFACE)
SetDialogFont GetStockObject(&DEFAULT_GUI_FONT)
dateedit1% = Create("DateEdit", %hwnd, Date$(0), 24, 32, 120, 24)
dateedit2% = Create("DateEdit", %hwnd, Date$(0), 160, 32, 120, 24)
EndProc
Proc MainLoop
UserMessages 16
ShowWindow(%hwnd, 1)
While 1
WaitInput
Case %umessage = 16 : BREAK
If Clicked(dateedit1%)'#window
SetText dateedit2%,GetText$(dateedit1%)
ElseIf Clicked(dateedit2%)'#window
Print GetText$(dateedit2%)+ "Von DateEdit1% übernommen!"
EndIf
EndWhile
EndProc
Proc Main
CreateElements
MainLoop
EndProc
Main
End
|
|
|
| |
|
|
|
H.Brill | Das ist das Problem mit den zusammengesetzten Controls, wie etwa das SpinEdit auch.
Vielleicht hilft dir das hier weiter :
$H Windows.ph
$H Messages.ph
$H commctrl.ph
Declare OldTest&,ende%
Struct POINT = \
x&, \
y&
Struct SYSTEMTIME = \
wYear%, \
wMonth%, \
wDayOfWeek%, \
wDay%, \
wHour%, \
wMinute%, \
wSecond%, \
wMilliseconds%
Struct MCHITTESTINFO = \
cbSize&, \
pt!POINT, \
uHit&, \
st!SYSTEMTIME
Proc Get_MonthCalHit
Declare DATA#, HIT%
Dim DATA#,MCHITTESTINFO
DATA#.cbSize& = SizeOf(DATA#)
DATA#.pt!x& = %MouseX - 500
DATA#.pt!y& = %MouseY - 150
Var QT% = SendMessage(KAL1&,$100E,0,DATA#)' $100E = $1000 + 14 = HITTEST
Var TEXT$ = str$(DATA#.st!wDay%)+"."+str$(DATA#.st!wMonth%)+"."+str$(DATA#.st!wYear%)
Messagebox(TEXT$,"HITFLAG "+Str$(QT%),$40000)
Dispose DATA#
RETURN QT%
EndProc
WINDOW 0,0 - 800,600
Var KAL1& = Control("SysMonthCal32", "Kalender", 1342177280, 500, 150, 180, 406, %HWND, 0, %hInstance, 0)
WhileNot Ende%
Waitinput
If %Key = 2
Ende% = 1
Else
Get_MonthCalHit
EndIf
EndWhile
|
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 14.06.2016 ▲ |
|
|
|
|
Rainer Hoefs | Hallo H. Brill,
vielen Dank per deine Aiuto.
Leider ist es per ein mit Create("DateEdit",.....) control nicht die Lösung.
Natürlich reagiert dieses Beispiel ebenso auf ein DateEdit, aber leider wird das Control weder zur Datumsauswahl aufgeklappt, noch wird (logischerweise) ein Datum trasferimento, weil man gar keines auswählen kann. Beim Anklicken kommt sofort die MessageBox e vorbei ist es.
Für einen so grande Kalender, ganz aufgeklappter Monat oder 2 wie in Deinem Beispiel, ist in dem Dialog kein Platz.
Trotzdem dankeschön.
Rainer |
|
|
| |
|
|