Foro | | | | Dirk Kuntzmann | ¡Hola Profaner, hay en Profano el Möglichkeit el Kalender, como en Dateedit aufklappt, inmediatamente y ständig Mostrar que se?
Frohe Weihnachten (gehabt a haben) a todos
Saludo Dirk |
| | | | |
| | Rolf Koch | Hi meinste algo como? [web]https://XProfan.com/thread.core?t=5474&highlight=sysmonthcal32[/web] |
| | | | |
| | Dirk Kuntzmann | ¡Hola Rolf, si du algo schickst se lo sicherlich trabajo, Yo tener desafortunadamente kein Prefellow a Hand, así dass el Test algo dauern kann. Trotzdem vielen Dank sólo una vez para la respuesta rápida.
Saludo Dirk |
| | | | |
| | | Auch ya hier geschaut? [...] |
| | | | |
| | Rolf Koch | oder otra vez algo, Yo grad zusammengestellt habe y einfacher es: KompilierenMarcaSeparacióndeclare calender&,lesen&
declare dtp#
DEF getsystime(2) SendMessage(&(1),4097,0,&(2))
dim dtp#,20
PROC GETDATE
declare d$,m$,y$
parameters chdl&
getsystime(chdl&,dtp#)
d$=format$(00,word(dtp#,6))
m$=format$(00,word(dtp#,2))
y$=format$(0000,word(dtp#,0))
return d$+.+m$+.+y$
ENDPROC
cls
calender&=Control(SysMonthCal32,,$54000004,1,1,202,155,%hwnd,2000,%hinstance)
lesen&=Create(Button,%hwnd,Zeige,220,10,100,20)
while 1
waitinput
if getfocus(lesen&)
getdate calender&
messagebox($(0),Gewählt,0)
endif
wend
disponer dtp#
|
| | | | |
| | Dietmar Horn | ¡Hola Dirk,
Lade Usted simplemente hier de el Wettbewerbsbereich unsere MMJ-Quellcodesammlung runter. Dort findest Usted el de Rolf genannte Ejemplo y en el Unterordner Sistema todos eventuell de los weit encima 1000 Demoquellcodes benötigten Incluir- y sonstige Archivos, así el Demos inmediatamente lauffähig son (el jeweils passende Profano²- o. XProfan-Versión natürlich vorausgesetzt).
Si usted en el Suchfunktion el Quellcodesammlung el Begriff Kalender eingibst, entonces findest Usted weitere Beispiele dazu, el Usted Usted selber adaptar kannst.
Marc-Gordon Kröhn hatte dieses Jahr veces una komplette Terminverwaltung veröffentlicht (esta es u.a. en el XProfan-Manager enthalten: Kurse -> Demo-Programas):
Für el komplette Programa se zwar el ListView.dll de Frank Abbing benötigt, pero la Kalenderteil funktioniert auch sin esta DLL. Dort kannst Usted Usted praktisch alles adaptar, qué Su Herz begehrt, porque el Code es muy bien dokumentiert. KompilierenMarcaSeparación(C) 2007 by Marc-Gordon Kröhn, http://www.marc-gordon.de
$P*
USERMESSAGES 16
Declare lvdll&,exit%,liste&,freelist&,text$,lvfont&,idx%,idx2%,Kalender&,X&,wochenende%,zeile1$,zeile2$
Declare AnzahlSpalten%,BreiteAnfang%,BreiteEnde%,ZeileY%,MerkeX%,MerkeY%,Kalender&,spalte$,ende$,styleset$,st%
Declare Kal_Innen&,Kal_NoAct&,Kal_Text&,Kal_Title&,Kal_TitleText&,Background&,Frage&,butmann&,butfrau&,frageexit%
Declare lvu%,neux%
Def GSC(1) !USER32,GetSysColor
Def GetWindowRect(2) !USER32, GetWindowRect
WindowStyle 16
Frage&=CreateDialog(%hwnd,Frage,((%maxX/2)-127),((%maxY/2)-45),255,91)
CreateText(Frage&,Sind Sie männlich oder weiblich?,5,5,242,20)
butmann&=CreateButton(Frage&,männlich,5,30,92,25)
butfrau&=CreateButton(Frage&,weiblich,150,30,92,25)
WhileNot frageexit%
GetMessage
if GetFocus(butmann&)
st%=1 Style 1
frageexit%=1
elseif GetFocus(butfrau&)
st%=2 Style 2
frageexit%=1
endif
Wend
DestroyWindow(Frage&)
##### EINSTELLUNGEN #####
wochenende%=1 Mit Wochenende=1 | Kein Wochenende=0
Case st%=1:Background&=rgb(209,246,255) Fensterhintergrund Style 1
Case st%=2:Background&=rgb(234,207,239) Fensterhintergrund Style 2
##### Grafiken & Style #####
Proc Style
Parameters getstyle%
Case getstyle%=1:styleset$=\set1 Style 1
Case getstyle%=2:styleset$=\set2 Style 2
spalte$=$ProgDir+styleset$+\Spalte.bmp
zeile1$=$ProgDir+styleset$+\zeile1.bmp
zeile2$=$ProgDir+styleset$+\zeile2.bmp
ende$=$ProgDir+styleset$+\endezeile.bmp
Farben für den Kalender
if getstyle%=1
Kal_Innen&=rgb(255,255,210) Innenfarbe
Kal_NoAct&=rgb(125,125,125) Farbe für nicht-aktuellen Monat
Kal_Text&=rgb(0,0,0) Textfarbe
Kal_Title&=rgb(71,118,179) Titelhintergrund
Kal_TitleText&=rgb(255,255,255) Titeltext
elseif getstyle%=2
Kal_Innen&=rgb(255,255,210)
Kal_NoAct&=rgb(125,125,125)
Kal_Text&=rgb(0,0,0)
Kal_Title&=rgb(154,17,108)
Kal_TitleText&=rgb(255,255,255)
endif
EndProc
Proc BMPXY
##### Automatische Grafikeinstellungen #####
##### Lade Garfiken und ermittel die Größe #####
MLoadBmp zeile1$
ZeileY%=%BmpY Höhe einer Zeile (Nicht Anfangszeile)
MLoadBmp spalte$
BreiteAnfang%=%BmpX Breite der ersten Grafik
MLoadBmp ende$
BreiteEnde%=%BmpX Breite der letzten Grafik
EndProc
##### ListView.dll einbinden
lvdll&=usedll($ProgDir+Listview.dll)
$I ListView_Funktionen.inc
Register(123456) Oder so ähnlich ;-)
lvfont&=Create(Font,Verdana,14,0,1,0,0)
##### ListView #####
Proc Liste
Declare wechsel%,Uhrzeit%,Uhrzeit$,text$
liste&=CreateListview(%hwnd,%hinstance,0,-1,-1,$400)
EnableEdits(liste&,1)
text$=011111
SelectColumnEdits(liste&,addr(text$))
InsertColumn liste&,,54,0
InsertColumn liste&,Montag,150,0
InsertColumn liste&,Dienstag,150,0
InsertColumn liste&,Mittwoch,150,0
InsertColumn liste&,Donnerstag,150,0
InsertColumn liste&,Freitag,150,0
Case Wochenende%=1:InsertColumn liste&,Samstag,150,0
Case Wochenende%=1:InsertColumn liste&,Sonntag,150,0
freelist&=SetLineHeight(liste&,ZeileY%-1)
DestroyImageList(freelist&)
wechsel%=2
Uhrzeit%=0
WhileLoop 48
if wechsel%=2
if Uhrzeit%<10
Uhrzeit$=0+Str$(Uhrzeit%)+:00
else
Uhrzeit$=Str$(Uhrzeit%)+:00
endif
SetItem liste&,Uhrzeit$,
wechsel%=1
else
SetItem liste&,,
Inc wechsel%
Inc Uhrzeit%
endif
EndWhile
SetFont liste&,lvfont&
ShowListview(liste&,10,10,width(%hwnd)-220,height(%hwnd)-50)
InitMessages(%hwnd)
AnzahlSpalten%=GetColumns(liste&)-1 Anzahl der normalen Zeilen ohne die Anfangszeile
EndProc
##### Erstellt die Hintergrundgrafik für das ListView mit Profan-Mitteln #####
Proc makegrf
Parameters Lang%
Declare zf&,StartZeichnenX%,StartZeichnenY%,multi%
StartZeichnenX%=0
StartZeichnenY%=0
multi%=1
windowStyle 80
zf&=Create(Window,%hwnd,,0,0,%maxX,ZeileY%*3)
#### Zeichnen
StartPaint zf&
LoadBmp spalte$,StartZeichnenX%,StartZeichnenY%;0
LoadSizedBmp zeile1$,BreiteAnfang%+StartZeichnenX%,StartZeichnenY%-Lang%,ZeileY%;0
LoadSizedBmp zeile2$,BreiteAnfang%+StartZeichnenX%,StartZeichnenY%+ZeileY%-Lang%,ZeileY%;0
WhileNot multi%=AnzahlSpalten%
loadbmp ende$,Lang%*multi%+BreiteAnfang%,StartZeichnenY%;0
LoadSizedBmp zeile1$,Lang%*multi%+BreiteAnfang%+BreiteEnde%,StartZeichnenY%-Lang%,ZeileY%;0
LoadSizedBmp zeile2$,Lang%*multi%+BreiteAnfang%+BreiteEnde%,StartZeichnenY%+ZeileY%-Lang%,ZeileY%;0
inc multi%
Wend
loadbmp ende$,Lang%*multi%+BreiteAnfang%,StartZeichnenY%;0
SaveBmp $TempDir+LVBACK.BMP,StartZeichnenX%,StartZeichnenY%-Lang%*multi%+BreiteAnfang%+25,ZeileY%*2 +20für evtl. Scrollbar
endPaint
DestroyWindow(zf&)
text$=$TempDir+lvback.bmp
SetBackImage(liste&,addr(text$),1)
endproc
Proc LVGroesse
Declare LangLV%,Spaltenbreite%,idx%
LangLV%=width(liste&)-5
Spaltenbreite%=(LangLV%-BreiteAnfang%)/AnzahlSpalten%
idx%=1
WhileNot idx%=AnzahlSpalten%+1
SetColumnWidth(liste&,idx%,Spaltenbreite%)
Inc idx%
Wend
makegrf Spaltenbreite%
EndProc
Proc Kal
Kalender&=Control(SysMonthCal32,,$54000004,width(liste&)+40,10,180,height(liste&),%hwnd,2000,%hinstance)
SetFont Kalender&,lvfont&
SendMessage(Kalender&,$100A,0,Background&)Hintergrund
SendMessage(Kalender&,$100A,4,Kal_Innen&)
SendMessage(Kalender&,$100A,5,Kal_NoAct&)
SendMessage(Kalender&,$100A,1,Kal_Text&)
SendMessage(Kalender&,$100A,2,Kal_Title&)
SendMessage(Kalender&,$100A,3,Kal_TitleText&)
Endproc
Proc SetOptimalSize
Parameters hmc&
Declare h&,w&,mrect#,am%,hoch%
Dim mrect#,16
SendMessage(hmc&,$1009,0,mrect#)
Let w&=Sub(Long(mrect#,8),Long(mrect#,0))
Let h&=Sub(Long(mrect#,12),Long(mrect#,4))
am%=height(%hwnd)/h&
hoch%=(am%*h&)
neux%=((Width(%hwnd)-10)-w&)
SetWindowPos Kalender&=neux%,10-w&,hoch%;0
Dispose mrect#
EndProc
##### Update ListView #####
lvu%=1
Proc Update
Case Width(%hwnd)<790:SetWindowPos %hwnd=%WinLeft,%WinTop-800,%WinBottom-%WinTop;0
Case Height(%hwnd)<570:SetWindowPos %hwnd=%WinLeft,%WinTop-%WinRight-%WinLeft,600;0
MerkeX%=Width(%hwnd)
MerkeY%=Height(%hwnd)
SetOptimalSize Kalender&
SetWindowPos liste&=10,10-neux%-20,height(%hwnd)-30;0 ***
LVGroesse
MerkeX%=Width(%hwnd)
MerkeY%=Height(%hwnd)
WindowTitle LV-Test - Anzahl LV-Updates:+Str$(lvu%)
Inc lvu%
EndProc
*** = Da wartet jemand sehnsüchtig auf seine XPrf10
um die Thread.pcu von iF zu benutzen :-)
##### Hauptfenster #####
Proc Hauptfenster
SetTrueColor 1
WindowStyle $003F
WindowTitle LV Test
Window ((%maxX/2)-512),((%maxY/2)-384)-1024,768
CLS Background&
UseFont Verdana,13,0,1,0,0
SetDialogFont 1
EndProc
##### Hauptprogramm #####
Hauptfenster
Case st%=1:Style 1
Case st%=2:Style 2
BMPXY
Liste
LVGroesse
Kal
Update
##### Hauptprogrammschleife #####
MerkeX%=Width(%hwnd)
MerkeY%=Height(%hwnd)
WhileNot exit%
GetMessage
Case %Umessage=16:exit%=1
CaseNot MerkeX%=Width(%hwnd):Update
CaseNot MerkeY%=Height(%hwnd):Update
Case Width(%hwnd)<790:Update
Case Height(%hwnd)<570:Update
Wend
DestroyWindow(liste&)
Clo ages (% hwnd)
$I ListView_Dispose.inc
freedll lvdll&
Saludo Dietmar |
| | | Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V. [...] Windows 95 bis Windows 7 Profan² 6.6 bis XProfan X2 mit XPSE Das große XProfan-Lehrbuch: [...] | 26.12.2007 ▲ |
| |
| | Dirk Kuntzmann | ¡Hola, vielen Dank para eure Mühe. Das kurze Ejemplo de Rolf es eigentlich alles, Yo z. Z. gesucht habe. Yo habe me zwar mittlerweile auch otra vez Prfellow installiert, aber Rolf kleines Programa mach sí eigentlich el Gleiche. Tal vez wäre el sí algo para una neue Profano-Versión, como Erweiterung el Date$-Función y wo entonces el angeklickte Datum con gettext$ igual ausgelesen voluntad kann.
Saludo Dirk |
| | | | |
| | Michael Wodrich | Ab XProfan 8.0 es dieser Wunsch erfüllt:
(el Ejemplo de el Hilfedatei) KompilierenMarcaSeparaciónDeclare hWin&, hButton&, Ende&, hDate&
hWin& = @Create(Dialog, %hWnd, Test, 100, 100, 200, 200)
hButton& = @Create(Button, hWin&, Ende, 10, 10, 180, 24)
hDate& = @Create(DateEdit, hWin&, , 10, 50, 100, 24)
Clear Ende&
WhileNot Ende&
WaitInput
If @GetFocus(hButton&)
Ende& = 1
EndIf
EndWhile
@MessageBox(@GetText$(hDate&), Datum, 0)
End
Schöne Grüße Michael Wodrich |
| | | Programmieren, das spannendste Detektivspiel der Welt. | 26.12.2007 ▲ |
| |
| | Dirk Kuntzmann | ¡Hola Michael, el es sí el normale dateedit, wo el Kalender sólo aufklappt, si la Button gedrückt se. Der Wunsch es sí, dass el Kalender siempre adecuado se y ausgelesen voluntad kann, sin dass sólo una Button betätigt voluntad muss. Siehe kurzes Ejemplo de Rolf.
Saludo Dirk |
| | | | |
| | Michael Wodrich | Sí, como tener Yo wohl geschlafen.... (es bastante deutlich en Deinem ersten Posting).
Como debería Roland entonces una Conjunto(DateEdit, 0|1 ) bauen. Und en Gelegenheit auch el SetDate- y SetTime-Características nachrüsten. Bisher va el en efecto sólo una Trick.
Ach sí, y en el Gelegenheit entonces auch Conjunto TimeFormat y SetDateFormat para el Formatstrings con einbauen.
Schöne Grüße Michael Wodrich |
| | | Programmieren, das spannendste Detektivspiel der Welt. | 27.12.2007 ▲ |
| |
| | RGH | Michael Wodrich
Und en Gelegenheit auch el SetDate- y SetTime-Características nachrüsten.
Ab el nächsten Versión es Befehl SetText entsprechend erweitert, así dass para el beiden Controls TimeEdit y DateEdit con SetText el Tiempo beziehungsweise el Datum eingestellt voluntad kann.
Saludo Roland |
| | | Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 27.12.2007 ▲ |
| |
|
RespuestaThemeninformationenDieses Thema ha 6 subscriber: |