Xbase für Anfänger

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12910
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Xbase für Anfänger

Beitrag von AUGE_OHR »

brandelh hat geschrieben:Womit wieder bewiesen ist, wenn es gut werden soll (unabhängig von der Installation), muss man es selber machen :D
ola ... würde Pablo sagen und dir das vor den Latz knallen ... http://msdn.microsoft.com/en-us/library ... 85%29.aspx

nach Xbase++ müsste das so aussehen

Code: Alles auswählen

CLASS MyDatePick FROM XbpStatic
...
INLINE CLASS STRUCTURE DATETIMEPICKERINFO
   http://msdn.microsoft.com/en-us/library/bb761729%28v=VS.85%29.aspx
END STRUCTURE

INLINE CLASS STRUCTURE NMDATETIMECHANGE
   http://msdn.microsoft.com/en-us/library/bb761730%28v=VS.85%29.aspx
END STRUCTURE

INLINE CLASS STRUCTURE NMDATETIMEFORMAT
   http://msdn.microsoft.com/en-us/library/bb761731%28v=VS.85%29.aspx
END STRUCTURE

INLINE CLASS STRUCTURE NMDATETIMEFORMATQUERY
   http://msdn.microsoft.com/en-us/library/bb761732%28v=VS.85%29.aspx
END STRUCTURE

INLINE CLASS STRUCTURE NMDATETIMESTRING
   http://msdn.microsoft.com/en-us/library/bb761733%28v=VS.85%29.aspx
END STRUCTURE

INLINE CLASS STRUCTURE NMDATETIMEWMKEYDOWN
   http://msdn.microsoft.com/en-us/library/bb761734%28v=VS.85%29.aspx
END STRUCTURE

INLINE CLASS METHOD initclass()
       @comctl32:InitCommonControlsEx({8,ICC_DATE_CLASSES})
       _fp_SendMessageA_ := nGetProcAddress("user32","SendMessageA")
       return Self

INLINE METHOD init(p1,p2,p3,p4,p5,p6)
       ::XbpStatic:init(p1,p2,p3,p4,p5,p6)
       return Self

INLINE METHOD Create(p1,p2,p3,p4,p5,p6)
       ::clipChildren := .T.
       ::XbpStatic:Create(p1,p2,p3,p4,p5,p6)
       ::hXbp := ::GetHWnd()
       ot4xb_subclasswindow(::hXbp,Self,,"xbp_wndproc")
       @user32:SendMessageA(::hXbp,WM_USER+1,0,0)
       return Self

INLINE METHOD xbp_wndproc(hWnd,nMsg,wp,lp,ctx)
local rc,n
   if nMsg == (WM_USER + 1 )
      ::hDPick := @User32:CreateWindowExA(0,;                   // extended styles
                           DATETIMEPICK_CLASS,;        // control 'class' name "SysDateTimePick32"
                           "DateTime",;                // control caption
                           nOr(WS_BORDER,WS_CHILD,WS_VISIBLE,DTS_SHOWNONE),; // wnd Style
                           20,50,220,20,;              // position: left,top,width,height
                           ::hXbp,;                    // parent window handle
                           4711,;                      // control's ID
                           AppInstance(),;             // instance Ot4Xb -> GetModuleHandleA()
                           0)                            // user defined info
          ot4xb_subclasswindow(::DPick,Self,,"DatePick_wndproc")

       elseif nMsg == WM_SIZE
            // hier resize
       elseif nMsg == WM_NOTIFY
            // hier ::_HandleListViewNotify_() 
       end
       return NIL
ich hatte im Thread "CreateWindowEx() Common Controls" http://www.xbaseforum.de/viewtopic.php?f=27&t=5254
ja angedeutet das man damit "native" Controls selbst machen kann.
die M$C*.OCX sind "überflüssig" als "Wrapper" ! ( und ausserdem langsam ... )

Für "Date and Time Picker" sieht das so aus
http://msdn.microsoft.com/en-us/library ... 85%29.aspx

Macros, Messages, Notifications und Structure findet man hier
http://msdn.microsoft.com/en-us/library ... 85%29.aspx

viel Spass ;)

Nachtrag :

Korrektur fehlendes "return Self" in init()
CreateWindowEx() -> @User32:CreateWindowExA()
und "DateTime) -> "DateTime"
Zuletzt geändert von AUGE_OHR am Mi, 20. Jul 2011 15:38, insgesamt 1-mal geändert.
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Xbase für Anfänger

Beitrag von brandelh »

Jetzt bin ich aber irritiert. Ich dachte die Date und Time Picker wären in Win7 nicht mehr verfügbar ?
Ist das etwas anderes als die common controls die von VB oder Office installiert werden (wurden) ?
Kann man damit die Wochenenden und Feiertage BOLD darstellen ?

Wenn ich mir aber ansehe was nötig ist um das Control zu bauen und auf das Teil richtig zu reagieren ... sicher auch noch der CALLBACK Compiler ...
fiele MIR ein eigener vermutlich leichter ;-)
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9373
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Xbase für Anfänger

Beitrag von Tom »

Ich habe meinen eigenen Datepicker mit XbpBrowse und Ownerdrawing gebaut. Der kann auch "fette" Feiertage (die zusätzlich mit Icons markiert sind) und alles mögliche sonst, zum Beispiel lustige Sonnenschirmchen-Icons an Ferientagen oder gesonderte Icons (und entsprechend hervorgehobene Texte) an "besonderen Tagen", die keine Feiertage sind (etwa Heiligabend, Sommerbeginn usw.). Und in dem kann man auch, wenn man schon so etwas tun will, direkt zu einer Jahreszahl springen, etwa bei der Auswahl von Geburtstagen. Außerdem zeigt er Kalenderwochen und die Anzahl der Werktage im Monat an. Und noch einiges mehr. Ist wieselflink, und es ist dem Teil völlig egal, welche Windows-Version benutzt wird und ob etwa Common Controls installiert sind. Ach ja, und man kann auch noch zwischen sechs Darstellungsversionen wählen. ;)
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12910
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Xbase für Anfänger

Beitrag von AUGE_OHR »

hi,

ich konnte es nicht lassen und hab mal auf die schnelle alles zusammengebaut und hier das Resultat
DatePicker_native.JPG
DatePicker_native.JPG (11.81 KiB) 8362 mal betrachtet
datepick.zip
native DatePicker
benötigt ot4xb ( enthalten )
(207.23 KiB) 279-mal heruntergeladen
ok ich habe noch längst nicht "alles" ... nur den Anfang der zeigt wie es geht.

p.s. noch nicht unter Win7 getestet ... aber das müsste auch unter Win7 gehen
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Xbase für Anfänger

Beitrag von brandelh »

Hi,

in PowerBasic habe ich im Beispiel folgenden Hinweis gesehen:

Code: Alles auswählen

'  Note: the Calendar control came with COMCTL32.DLL version 4.70 (MSIE 3.0),
'  so in order to use it, we should also check the version number of this file.  
das sieht genauso aus wie deines, handelt es sich um das Gleiche ?
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12910
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Xbase für Anfänger

Beitrag von AUGE_OHR »

brandelh hat geschrieben:in PowerBasic habe ich im Beispiel folgenden Hinweis gesehen:

Code: Alles auswählen

'  Note: the Calendar control came with COMCTL32.DLL version 4.70 (MSIE 3.0),
'  so in order to use it, we should also check the version number of this file.  
das sieht genauso aus wie deines, handelt es sich um das Gleiche ?
ich "denke" im Prinzip ja den "da" stecken ja die Common Controls "drin".
M$ComCtl.OCX, M$ComCt2.OCX und M$Cal.OCX sind ja nur "Wrapper" als activeX aber wie ich schon sagte kann man "alle" Common Controls auch "native" mit ot4Xb und @user32:CreateWindowExA() erzeugen.

mit "fehlt" nur für eine STRUCTURE der
szDisplay

Type: TCHAR

64-character buffer that is to receive the zero-terminated string that the DTP control will display. It is not necessary to fill the entire buffer.
... da muss ich Pablo noch mal fragen.
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Xbase für Anfänger

Beitrag von brandelh »

Hallo das ist einfach ein String, der angezeigt wird. Er muss 64 oder 65 Zeichen lang sein und mit chr(0) aufgefüllt werden.
Da alle Strings an DLL per ASCIIZ String übergeben werden, sollten 64 Zeichen reichen, aber eventuell muss man das letzte chr(0) doch selbst anhängen ...
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12910
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Xbase für Anfänger

Beitrag von AUGE_OHR »

hi,

man kann auch mal im Source DATETIMEPICK_CLASS gegen MONTHCAL_CLASS tauschen dann bekommt ihr das
3 Monate mit MONTHCAL_CLASS
3 Monate mit MONTHCAL_CLASS
MonthPicker_native.JPG (30.39 KiB) 8343 mal betrachtet
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12910
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Xbase für Anfänger

Beitrag von AUGE_OHR »

hi,
brandelh hat geschrieben:Hallo das ist einfach ein String, der angezeigt wird. Er muss 64 oder 65 Zeichen lang sein und mit chr(0) aufgefüllt werden.
Da alle Strings an DLL per ASCIIZ String übergeben werden, sollten 64 Zeichen reichen, aber eventuell muss man das letzte chr(0) doch selbst anhängen ...
so nun hab ich die Antwort von Pablo ... es ist wohl doch ein wenig komplizierter.
Is an errata of the MSDN docs, I've seen in the commctrl.h in the win7 sdk and also in the same file of the old VC6 defined as CHAR szDisplay[64] maybe in more early versions defined as a single sharacter

But when received inside a DTN_FORMAT don't need to care so mutch about the szDisplay member as the pszDisplay will point to a valid string


>MEMBER LPSTR szDisplay DYNSZ cText
>for Type: TCHAR
noooooo :-)

use
MEMBER LPSTR pszDisplay STRZ_READ cDisplay
and for the szDisplay
MEMBER SZSTR szDisplay SIZE 64

when you receive a pointer to this structure just ignore the szDisplay member
just read the string using the cDisplay member

In case you need to fill this structure you must first allocate memory for it ( don't use the automatic Xbase++ character buffer ) or link to a suitable memory pointer
use the szDisplay to store the string and do st:pszDisplay := sz:_addressof_("szDisplay")
gruss by OHR
Jimmy
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

Re: Xbase für Anfänger

Beitrag von Benz »

AUGE_OHR hat geschrieben:hi,

ich konnte es nicht lassen und hab mal auf die schnelle alles zusammengebaut und hier das Resultat
DatePicker_native.JPG


ok ich habe noch längst nicht "alles" ... nur den Anfang der zeigt wie es geht.

p.s. noch nicht unter Win7 getestet ... aber das müsste auch unter Win7 gehen
Hast du dafür auch den Quellcode ? :-) Oder gibst du den nicht raus? Oder bin ich nur mal wieder zu blind und finde ihn nicht ? :-D
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

Re: Xbase für Anfänger

Beitrag von Benz »

Benz hat geschrieben:Gibt es außerdem die Möglichkeit aus einem XbpBrowse-Objekt, das in einem Childfenster platziert wird die angeklickte Zeile in ein SLE einzulesen, das in einem Parent steht?
Ich glaube das hier ist in meiner Ansammlung von Fragen untergegangen :-)
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14659
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Xbase für Anfänger

Beitrag von Jan »

Benz hat geschrieben:
Benz hat geschrieben:Gibt es außerdem die Möglichkeit aus einem XbpBrowse-Objekt, das in einem Childfenster platziert wird die angeklickte Zeile in ein SLE einzulesen, das in einem Parent steht?
Ich glaube das hier ist in meiner Ansammlung von Fragen untergegangen :-)
Vielleicht wäre es hilfreich, wenn Du je Thema einen neuen Thread in dem passenden Unterforum aufmachst?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12910
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Xbase für Anfänger

Beitrag von AUGE_OHR »

Benz hat geschrieben:Hast du dafür auch den Quellcode ? :-) Oder gibst du den nicht raus? Oder bin ich nur mal wieder zu blind und finde ihn nicht ? :-D
das ist der Source, paar Msg vorher, den ich noch korrigiert habe http://www.xbaseforum.de/viewtopic.php? ... &start=112
um das Teil aber "richtig" zu nutzen muss man die STRUCTURE auffüllen und die Events "abfangen".

ich bin noch mit den Demo´s für ListView beschäftigt und versuche die LIB "abzuspecken" die inzwischen mächtig angewachsen ist für meine "grosse" Application.
... die "restlichen" Common Controls muss ich nochmal mit Pablo durchgehen wenn er die DXE_LIB "abgesegnet" hat.
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12910
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Xbase für Anfänger

Beitrag von AUGE_OHR »

Benz hat geschrieben:
Benz hat geschrieben:Gibt es außerdem die Möglichkeit aus einem XbpBrowse-Objekt, das in einem Childfenster platziert wird die angeklickte Zeile in ein SLE einzulesen, das in einem Parent steht?
Ich glaube das hier ist in meiner Ansammlung von Fragen untergegangen :-)
wurde doch schon längst hier im Thread beantwortet http://www.xbaseforum.de/viewtopic.php? ... ock#p56957

das Stichwort heisst : XbpBrowse():stableBlock
gruss by OHR
Jimmy
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

Re: Xbase für Anfänger

Beitrag von Benz »

:oops: sorry :banghead: :banghead:
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

Re: Xbase für Anfänger

Beitrag von Benz »

AUGE_OHR hat geschrieben:
Benz hat geschrieben:Und hat vielleicht auch jemand eine Lösung für meine zweite Frage ? :-)
das "auslösen" hat dir ja Bertram erklärt. aber wie "synchronisiert" man die Maske mit dem Browse ?

wenn du die Maske mit dem FormDesigner ( XPPFD.EXE ) erstellt hat und "Class Code" generiert hast dann gibt es die iVar "editcontrol".
"editcontrol" hat per AADD() alle XbpSLE Objecte in ein Array aufgenommen.

ein XbpSLE hat ja nun einen o:Datalink, in dem ein Codeblock steht, der für da "lesen"/"schreiben" zuständig ist.

Code: Alles auswählen

AEVAL( oMaske:editcontrol, { | oXbp | oXbp:SetData() } )
damit werden ja die "Werte in Editcontrols übertragen" so das du sie anzeigen/editieren kannst.

nun gibt es es bei XbpBrowse() den Slot "o:stableBlock" den man mit einem Codeblock "bestücken" kann.

Code: Alles auswählen

 ::oBrowse:stableblock := {|| Ref2Gets(::editControls)}

FUNCTION Ref2Gets(editcontrols,oBrowse)
LOCAL oCol
LOCAL i
LOCAL n
LOCAL LenGets := LEN(editcontrols)

   FOR n := 1 TO LenGets
      editcontrols[n]:setdata() // lese DBF und fülle SLE
      editcontrols[n]:show()    // anzeigen
   NEXT
RETURN NIL
damit bekommst du nun bei einer "Bewegung" im Browse die "passenden" Daten in der Maske.

In meine Beispiel gehe ich davon aus das "im Fenster" der Maske auch das Browse ist.
wenn es 2 "Fenster" sind müsstest du das oMaske:editcontrols in den oBrowse:stableblock bekommen
... aber das ist noch ein ganz anderes Thema mit mehreren "Fenstern"
Ok nicht ganz :-P. Ich habe nämlich eine Maske die mit den Browse, die ich einbinden will ungleich mehr überladen wäre wie jetzt schon.
Von dem her sind mehrere Fenster schon sinnvoll. Ich hab das jetzt auch realisiert, dass die Browse in Childfenstern zu dem Hauptfenster aufgehen. Ist der Aufwand denn groß, wenn ich dein Beispiel so ändern will, dass es in 2 Fenstern läuft ? Wie würde das funktionieren?
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

Re: Xbase für Anfänger

Beitrag von Benz »

Gleich noch was hinterher: Wie kann ich ein Fenster ganz oben platzieren / mittig platzieren, ohne dass ich manuell die Zahlen dafür eingebe (bei anderer Auflösung funktioniert das nämlich ja wieder nicht)?
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Xbase für Anfänger

Beitrag von brandelh »

Hi,

mit centercontrol() kann man zwar ein Control schön zentrieren, aber halt nur in X und Y Richtung :-)
Du kannst ab dem create() eines Fenster und Controls die aktuellen Breiten und höhen abfragen:

Code: Alles auswählen

nBreiteDA := oDlg:drawingArea():currentSize()[1]
nBreite     := oControl:drawingArea():currentSize()[1]
nPosX := int((nBreiteDA-nBreite)/2)
nHoeheDA := oDlg:drawingArea():currentSize()[2]
nHoehe     := oControl:drawingArea():currentSize()[2]
nPosY := int((nHoeheDA-nHoehe)/2)
oControl:setPos( { nPosX,nPosY } )
Am Besten macht man diese Berechnungen im Resize() Slot, dann kann man dynamisch auf Größenänderungen reagieren.

...
Gruß
Hubert
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

Re: Xbase für Anfänger

Beitrag von Benz »

Woher kommt das "oControl" in der letzten Zeile?
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Xbase für Anfänger

Beitrag von brandelh »

Hallo,

das ist das Control das du zentrieren möchtest, z.B. oFtTitel := XbpStatic ... oder osleName := XbpSle ... also einfach eine Variable mit dem Control (CLASS CODE ;-) )
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12910
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Xbase für Anfänger

Beitrag von AUGE_OHR »

hi,
Benz hat geschrieben:Ist der Aufwand denn groß, wenn ich dein Beispiel so ändern will, dass es in 2 Fenstern läuft ? Wie würde das funktionieren?
es kommt auf deinen Code an ...

Frage :
hat jedes deiner "Fenster" einen eigenen Event-Loop oder hast du ein "Main" Event-Loop ?
Wenn du 2 "Fenster" hast ... was ist der Parent / Owner des 2nd "Fenster" ?

es geht ja um diese Zeile im 2nd "Fenster"

Code: Alles auswählen

oFenster2:oBrowse:stableblock := {|| Ref2Gets(oFenster1:editControls)}
das Array mit den SLE aus dem 1st "Fenster" (oFenster1:editControls) musst du an das 2nd "Fenster" übergeben.

Wenn du es als Function aufrufst würde ich einen Parameter "ran-hängen"
Wenn du es als Class aufrufst würde ich in der 2nd Class eine Ivar "MyEditControls" damit auffüllen.

Wenn das 2nd "Fenster" nun als Thread läuft, der sein "eigene" WorkSpaceList() hat, würde ich nur die RECNO() übergeben um das 1st "Fenster" zu synchronisieren.
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Xbase für Anfänger

Beitrag von brandelh »

Benz hat geschrieben:Gleich noch was hinterher: Wie kann ich ein Fenster ganz oben platzieren / mittig platzieren
ok , ich hatte das Fenster überlesen. Vom Prinzip her genau das Gleiche, zunächst ermitteln wiegroß der Desktop ist.
Dann die Maße des eigenen Fensters ermitteln und mit setPos() positionieren ... dabei beachten, dass 0,0 im normalen Xbase++ links unten ist.

AppDesktop():currentSize() => Array mit { nBreite, nHoehe }
SetAppWindow():currentSize() => Array mit { nBreite, nHoehe } // wenn SetAppWindow sauber gesetzt und nicht geändert wurde.
Gruß
Hubert
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Xbase für Anfänger

Beitrag von Koverhage »

Vielleicht sollte man für den Datepicker ein extra Thema erstellen.
Wenn Silverlight installiert ist bzw. die system.windows.controls.dll vorhanden ist
müsste es doch sehr einfach sein.
siehe: http://msdn.microsoft.com/en-us/library ... S.95).aspx
Gruß
Klaus
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12910
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Xbase für Anfänger

Beitrag von AUGE_OHR »

Koverhage hat geschrieben:Vielleicht sollte man für den Datepicker ein extra Thema erstellen.
yup geht wieder in den Common Controls Thread.
für den DatePicker habe ich auch den Event gefunden, siehe http://www.xbaseforum.de/viewtopic.php? ... 280#p58280
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Xbase für Anfänger

Beitrag von brandelh »

Genau, sehr einfach ...
wenn man C# programmiert und Silverlight voraussetzt :D
Gruß
Hubert
Antworten