Jahresübersicht Calender
Moderator: Moderatoren
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Jahresübersicht Calender
hi,
mir fällt auf das mein Outlook Calender Clone keine Jahresübersicht hat ... das original aber auch nicht ...
nun überlege ich wie das wohl aussehen könnte ... bei 12 x 31 ist ja auch nicht viel Platz.
bei 12 Row passen ca. 2-3 "lesbare" Item ... wenn ich alle (Höhe = 1 Pixel) darstelle dauert das ewig.
bislang nehme ich
1.) Wochentag
2.) Geburtstage
3.) Feiertage
4.) ganztägige Events
und so sieht das aus ... aber es gefällt mir nicht ... zu 1.) Wochentag muss wohl sein ... aber es nimmt 1/4 der Cell in Anspruch
die Farben der Tage ... sind ja zwar anpassbar ... trotzdem "zu viel"
2.) habe schon auf Initialen gekürzt. Farbe hilft
3.) alle oder nur die gesetzlichen ... kennt man deshalb leicht zu identifizieren
4.) tja ... bei nur 3-4 Zeichen ...
Tooltip bringt es auch nicht, den mit ENTER komme ich ja (schneller) zur Information ( Tagesansicht) ...
Vorschläge erbeten wie man ein "klareres" Design hin bekommt.
mir fällt auf das mein Outlook Calender Clone keine Jahresübersicht hat ... das original aber auch nicht ...
nun überlege ich wie das wohl aussehen könnte ... bei 12 x 31 ist ja auch nicht viel Platz.
bei 12 Row passen ca. 2-3 "lesbare" Item ... wenn ich alle (Höhe = 1 Pixel) darstelle dauert das ewig.
bislang nehme ich
1.) Wochentag
2.) Geburtstage
3.) Feiertage
4.) ganztägige Events
und so sieht das aus ... aber es gefällt mir nicht ... zu 1.) Wochentag muss wohl sein ... aber es nimmt 1/4 der Cell in Anspruch
die Farben der Tage ... sind ja zwar anpassbar ... trotzdem "zu viel"
2.) habe schon auf Initialen gekürzt. Farbe hilft
3.) alle oder nur die gesetzlichen ... kennt man deshalb leicht zu identifizieren
4.) tja ... bei nur 3-4 Zeichen ...
Tooltip bringt es auch nicht, den mit ENTER komme ich ja (schneller) zur Information ( Tagesansicht) ...
Vorschläge erbeten wie man ein "klareres" Design hin bekommt.
gruss by OHR
Jimmy
Jimmy
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Jahresübersicht Calender
Hallo, Jimmy.
1. Ich würde in einer Jahresübersicht nur die Anzahl der Termine anzeigen, keine Inhalte. Ggf. wären noch mehrere Anzahlen möglich, wenn es qualitativ unterschiedliche Termine gibt, etwa "richtige" Termine, Geburtstage, Urlaube (Ganztagstermine) usw. Mit einem Klick/Doppelklick auf den Tag sieht man dann die Termine, oder über ein überlagertes Fensterchen.
2. Die Spaltenüberschriften sollten die Tagesnummern sein, so dass die Tabelle immer mit "1." beginnt. Die Wochentage würde ich ganz weglassen und durch die farbliche Darstellung der Zellen verdeutlichen, also Wochenendtage mit einer anderen Hintergrundfarbe, dito für Feiertage.
1. Ich würde in einer Jahresübersicht nur die Anzahl der Termine anzeigen, keine Inhalte. Ggf. wären noch mehrere Anzahlen möglich, wenn es qualitativ unterschiedliche Termine gibt, etwa "richtige" Termine, Geburtstage, Urlaube (Ganztagstermine) usw. Mit einem Klick/Doppelklick auf den Tag sieht man dann die Termine, oder über ein überlagertes Fensterchen.
2. Die Spaltenüberschriften sollten die Tagesnummern sein, so dass die Tabelle immer mit "1." beginnt. Die Wochentage würde ich ganz weglassen und durch die farbliche Darstellung der Zellen verdeutlichen, also Wochenendtage mit einer anderen Hintergrundfarbe, dito für Feiertage.
Herzlich,
Tom
Tom
- azzo
- Rekursionen-Architekt
- Beiträge: 483
- Registriert: So, 28. Mär 2010 19:21
- Danksagung erhalten: 11 Mal
Re: Jahresübersicht Calender
Hallo Jimmy,
Ich habe eine Klasse für einen Jahresplaner (FW).
Mich würde mal interessieren, ob man mit xBase selbst auch Klassen machen kann.
Glaubst du man könnet diese Klasse einfach auf xBase umändern?
mfg
Otto
Ich habe eine Klasse für einen Jahresplaner (FW).
Mich würde mal interessieren, ob man mit xBase selbst auch Klassen machen kann.
Glaubst du man könnet diese Klasse einfach auf xBase umändern?
mfg
Otto
Code: Alles auswählen
function Main()
local oWnd, oPickDate
SET DATE FRENCH
DEFINE WINDOW oWnd TITLE "Calendar"
oPickDate := TPickDate():New( 10, 10,,, oWnd )
oPickDate:bSelect = { | dStart, dEnd | MsgInfo( Str( dEnd - dStart + 1 ) + " days" ) }
oPickDate:bPainted = { | hDC, dStart, dEnd | ;
oPickDate:Say( 17, 20, Str( dEnd - dStart + 1 ) + " days",,,, .T., .T. ) }
oWnd:oClient = oPickDate
ACTIVATE WINDOW oWnd MAXIMIZED
//ON INIT TestDialog()
return nil
//----------------------------------------------------------------------------//
function TestDialog()
local oDlg, oPickDate
DEFINE DIALOG oDlg RESOURCE "Test"
oPickDate = TPickDate():Redefine( 10, oDlg )
oPickDate:bSelect = { | dStart, dEnd | MsgInfo( Str( dEnd - dStart + 1 ) + " days" ) }
ACTIVATE DIALOG oDlg CENTERED
return nil
//----------------------------------------------------------------------------//
CLASS TPickDate FROM TControl
DATA dStart, dEnd, dTemp, lMove
DATA nYear
DATA oBrushSunday, oBrushSelected, oFontHeader
DATA nLeftStart, nTopStart
DATA bSelect ,oBitmap,oBitmap2,oBitmap3,oBitmap4
CLASSDATA lRegistered AS LOGICAL
METHOD New( nTop, nLeft, nWidth, nHeight, oWnd, nYear, nClrFore, nClrBack )
METHOD Redefine( nId, oWnd )
METHOD Paint()
METHOD Display() INLINE ::BeginPaint(), ::Paint(), ::EndPaint(), 0
METHOD Destroy()
METHOD LButtonDown( nRow, nCol, nKeyFlags )
METHOD LButtonUp( nRow, nCol, nKeyFlags )
METHOD PreviousYear() INLINE ::nYear--, ::Refresh()
METHOD NextYear() INLINE ::nYear++, ::Refresh()
METHOD EraseBkGnd( hDC ) INLINE 0
METHOD MouseMove( nRow, nCol, nKeyFlags )
ENDCLASS
//----------------------------------------------------------------------------//
METHOD New( nTop, nLeft, nWidth, nHeight, oWnd, nYear, nClrFore, nClrBack ) CLASS TPickDate
DEFAULT nWidth := 800,;
nHeight := 300,;
nLeft := 0,;
nTop := 0,;
nYear := Year( Date() ),;
oWnd := GetWndDefault()
DEFINE BITMAP ::oBitmap FILE "go.bmp"
DEFINE BITMAP ::oBitmap2 FILE "go2.bmp"
DEFINE BITMAP ::oBitmap3 FILE "go3.bmp"
DEFINE BITMAP ::oBitmap4 FILE "go4.bmp"
::lMove = .F.
::nTopStart = 60 // for header
::nLeftStart = 150 // col header
::nTop = nTop
::nLeft = nLeft
::nBottom = nTop + nHeight - 1
::nRight = nLeft + nWidth - 1
::nYear = Year( Date() )
::oWnd = oWnd
::dStart := ::dEnd := ::dTemp := Date()
::nClrText = nClrFore
::nClrPane = nClrBack
::nStyle = nOr( WS_CHILD, WS_VISIBLE, WS_TABSTOP, WS_BORDER )
DEFINE BRUSH ::oBrushSunday COLOR nRGB( 183, 249, 185 ) // Sundays column green brush
DEFINE BRUSH ::oBrushSelected COLOR nRGB( 240, 232, 188 ) // Selected days orange brush
DEFINE FONT ::oFont NAME "Tahoma" SIZE 0, -12 BOLD
DEFINE FONT ::oFontHeader NAME "Tahoma" SIZE 0, -12
#ifdef __XPP__
DEFAULT ::lRegistered := .F.
#endif
::Register()
if ! Empty( oWnd:hWnd )
::Create()
oWnd:AddControl( Self )
else
oWnd:DefControl( Self )
endif
return self
//----------------------------------------------------------------------------//
METHOD Redefine( nId, oWnd ) CLASS TPickDate
DEFAULT oWnd := GetWndDefault()
::nId = nId
::oWnd = oWnd
::lMove = .F.
::nTopStart = 60 // for header
::nLeftStart = 150 // col header
::dStart := ::dEnd := ::dTemp := Date()
::nYear = Year( Date() )
DEFINE BRUSH ::oBrushSunday COLOR nRGB( 183, 249, 185 ) // Sundays column green brush
DEFINE BRUSH ::oBrushSelected COLOR nRGB( 240, 232, 188 ) // Selected days orange brush
DEFINE FONT ::oFont NAME "Tahoma" SIZE 0, -12 BOLD
DEFINE FONT ::oFontHeader NAME "Tahoma" SIZE 0, -12
::SetColor( 0, 0 )
::Register()
oWnd:DefControl( Self )
return Self
//----------------------------------------------------------------------------//
METHOD Paint() CLASS TPickDate
local aInfo := ::DispBegin()
local hDC := ::hDC, cDay, nDay, n, dDate, nColStep, nRowStep
local dTmpDate, nMonth := 0, nLeftCol := 0
FillRect( hDC, GetClientRect( ::hWnd ), ::oBrush:hBrush )
nRowStep = ( ::nHeight - ::nTopStart ) / 13
GradientFill( hDC, 0, 0, ::nHeight, ::nWidth, { { 1, nRGB( 128, 217, 255 ), nRGB( 54, 147, 255 ) } } )
dDate = CToD( "01/01/" + Str( ::nYear, 4 ) )
dDate += 8 - DoW( dDate )
nColStep = ( ::nWidth - ::nLeftStart ) / 37
GradientFill( hDC, 0, 0, nRowStep - 1, ::nWidth, { { 1, nRGB( 128, 217, 255 ), nRGB( 54, 147, 255 ) } } )
::Say( ( ::nTopStart + ( nRowStep / 2 ) - ( ::oFont:nHeight / 2 )),;
( ( ::nLeftStart + nColStep ) / 2 ) - ( GetTextWidth( hDC, Str( ::nYear, 4 ), ::oFont:hFont ) / 2 ),;
Str( ::nYear, 4 ),,, ::oFont, .T., .T. )
// Paint Sunday background color
for n = 1 to 36 step 7
FillRect( hDC, { 0, ::nLeftStart + ( nColStep * n ),;
::nHeight - 1, ::nLeftStart + ( nColStep * ( n + 1 ) ) }, ::oBrushSunday:hBrush )
next
for nMonth = 1 to 12
::Line( ::nTopStart + nMonth * nRowStep, 0,(::nTopStart + nMonth * nRowStep), ::nWidth - 1 )
::Say( ::nTopStart + nMonth * nRowStep + ( nRowStep / 2 ) - ( ::oFont:nHeight / 2 ), 3, cMonth( RegionDate(nMonth, Str( Year( Date() ), 4 ))) ,,, ::oFont, .T., .T. )
next
// fill selected days
if ::lMove
dTmpDate = Min( ::dStart, ::dEnd )
while dTmpDate <= Max( ::dStart, ::dEnd )
nMonth = Month( dTmpDate )
nLeftCol = ::nLeftStart + ( nColStep * ( DOW( RegionDate( nMonth, Str( ::nYear, 4 ) ) ) ) ) + ;
nColStep * ( Day( dTmpDate ) - 1 )
FillRect( hDC, { ::nTopStart + month(dTmpDate) * nRowStep + 1,;
nLeftCol, ::nTopStart + Month( dTmpDate ) * nRowStep + nRowStep,;
nLeftCol + nColStep}, ::oBrushSelected:hBrush )
dTmpDate++
end
endif
// Draw days
for n = 1 to 36
::Line( 0, ::nLeftStart + ( nColStep * n ), ::nHeight - 1, ::nLeftStart + ( nColStep * n ) )
cDay = SubStr( CDoW( dDate++ ), 1, 2 )
::Say( ( ::nTopStart + nRowStep * 0.4 ),;
::nLeftStart + ( nColStep * n ) + ( nColStep / 2 ) - ( GetTextWidth( hDC, cDay, ::oFont:hFont ) / 2 ) + 1,;
cDay, 0, 0, ::oFont, .T., .T. )
next
// Draw months
for nMonth = 1 to 12
dDate = RegionDate(nMonth,Str( ::nYear, 4 ) )
nDay = DoW( dDate )
while Month( dDate ) == nMonth
cDay = AllTrim( Str( Day( dDate ) ) )
::Say( ( ::nTopStart + nMonth * nRowStep ),;
::nLeftStart + ( nColStep * nDay ) + ( nColStep / 2 ) - ( GetTextWidth( hDC, cDay, ::oFont:hFont ) / 2 ) + 1,;
cDay, 0, 0, ::oFontHeader, .T., .T. )
::SayBitmap( ( ::nTopStart + nMonth * nRowStep + ( nRowStep * 0.4 ) ),;
::nLeftStart + ( nColStep * nDay++ ) + ( nColStep / 6 ) - ( GetTextWidth( hDC, cDay, ::oFont:hFont ) / 2 ) + 1, ::oBitmap2 , , 1 )
dDate++
end
next
if ValType( ::bPainted ) == "B"
Eval( ::bPainted, hDC, Min( ::dStart, ::dEnd ), Max( ::dStart, ::dEnd ), Self )
endif
::DispEnd( aInfo )
return 0
//----------------------------------------------------------------------------//
METHOD Destroy() CLASS TPickDate
::oBrushSunday:End()
::oBrushSelected:End()
::oFontHeader:End()
return Super:Destroy()
//----------------------------------------------------------------------------//
METHOD LButtonDown( nRow, nCol, nKeyFlags ) CLASS TPickDate
local nMonth := Int( ( nRow - ::nTopStart ) / ( ( ::nHeight - ::nTopStart ) / 13 ) )
local nDay := Int( ( nCol - ::nLeftStart ) / ( ( ::nWidth - ::nLeftStart ) / 37 ) ) - ;
DoW( RegionDate( nMonth, Str( ::nYear, 4 ) ) ) + 1
if nDay > 0 .and. nMonth > 0 // to work with valid dates only
::dStart := CToD( AllTrim( AllTrim( Str( nDay ) )+ "/" + Str( nMonth ) ) + "/" + Str( ::nYear, 4 ) )
::lMove := .T.
::Refresh( .F. )
endif
return Super:LButtonDown( nRow, nCol, nKeyFlags )
//-----------------------------------------------------------------//
METHOD LButtonUp( nRow, nCol, nKeyFlags ) CLASS TPickDate
if ValType( ::bSelect ) == "B"
Eval( ::bSelect, Min( ::dStart, ::dEnd ), Max( ::dStart, ::dEnd ), Self )
endif
::lMove := .F.
return Super:LButtonUp( nRow, nCol, nKeyFlags )
//-----------------------------------------------------------------//
METHOD MouseMove( nRow, nCol, nKeyFlags ) CLASS TPickDate
local nMonth := Int( ( nRow - ::nTopStart ) / ( ( ::nHeight - ::nTopStart ) / 13 ) )
local nDay := Int( ( nCol - ::nLeftStart ) / ( ( ::nWidth - ::nLeftStart ) / 37 ) ) - ;
DoW( RegionDate( nMonth, Str( ::nYear, 4 ) ) ) + 1
local dEnd
if nDay > 0 .and. nMonth > 0 // to work with valid dates only
dEnd = CToD( AllTrim( Str( nDay ) ) + "/" + AllTrim( Str( nMonth ) ) + "/" + Str( ::nYear, 4 ) )
if ! Empty( dEnd ) .and. dEnd != ::dTemp // for reducing continuous refreshes
::dTemp := dEnd
::dEnd = dEnd
::Refresh( .F. )
if ValType( ::bChange ) == "B"
Eval( ::bChange, Min( ::dStart, ::dEnd ), Max( ::dStart, ::dEnd ), Self )
endif
endif
endif
return Super:MouseMove( nRow, nCol, nKeyFlags )
//-----------------------------------------------------------------//
function RegionDate( nMonth, cYear )
return CToD( "01/" + AllTrim( Str( nMonth ) ) + "/" + cYear )
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Jahresübersicht Calender
wieso nicht, das ist doch "nur" eine XbpMultiCellGroup() wie dieses Beispiel von Diego zur Auswahl eines Datums. ( Monatsansicht ) im Prinzip hab ich das Demo aufgebohrt mit Ownerdraw und verwende is in 4 Ansichten ( Tag, Woche, Monat, Jahr )azzo hat geschrieben:Ich habe eine Klasse für einen Jahresplaner (FW).
Mich würde mal interessieren, ob man mit xBase selbst auch Klassen machen kann.
Glaubst du man könnet diese Klasse einfach auf xBase umändern?
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Jahresübersicht Calender
ja die "Anzahl" wäre eine MöglichkeitTom hat geschrieben:1. Ich würde in einer Jahresübersicht nur die Anzahl der Termine anzeigen, keine Inhalte.
ok könnte man auch durch Icon oder Farben machen.Tom hat geschrieben:Ggf. wären noch mehrere Anzahlen möglich, wenn es qualitativ unterschiedliche Termine gibt, etwa "richtige" Termine, Geburtstage, Urlaube (Ganztagstermine) usw.
ja das habe ich defaultTom hat geschrieben:Mit einem Klick/Doppelklick auf den Tag sieht man dann die Termine, oder über ein überlagertes Fensterchen.
hm ... Hintergrundfarbe ... ob das nicht wieder zu bunt wird ?Tom hat geschrieben:2. Die Spaltenüberschriften sollten die Tagesnummern sein, so dass die Tabelle immer mit "1." beginnt. Die Wochentage würde ich ganz weglassen und durch die farbliche Darstellung der Zellen verdeutlichen, also Wochenendtage mit einer anderen Hintergrundfarbe, dito für Feiertage.
ich habe es nun mit "nur" einem Punkt versucht, zusätzlich wird am So. die KW angezeigt ( jaja müsste eigentlich Mo. sein ... ) und die 7 Tage dazwischen wird man wohl identifizieren können.
weitere Vorschläge / Ideen willkommen, danke
gruss by OHR
Jimmy
Jimmy
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2825
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 96 Mal
- Danksagung erhalten: 13 Mal
Re: Jahresübersicht Calender
Hallo, Jimmy -AUGE_OHR hat geschrieben: ich habe es nun mit "nur" einem Punkt versucht, zusätzlich wird am So. die KW angezeigt ( jaja müsste eigentlich Mo. sein ... ) und die 7 Tage dazwischen wird man wohl identifizieren können.
weitere Vorschläge / Ideen willkommen, danke
das ist aber doch richtig, da der Sonntag der erste Tag der Woche ist. Unser Samstag entspricht dem jüdischen Sabbat, und das ist der siebte Tag der Woche. Andernfalls wäre auch der Mittwoch nicht mehr die Mitte der Woche ...
Gruss,
Georg
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2936
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
- azzo
- Rekursionen-Architekt
- Beiträge: 483
- Registriert: So, 28. Mär 2010 19:21
- Danksagung erhalten: 11 Mal
Re: Jahresübersicht Calender
Hallo Jimmy,
>und so sieht das aus ... aber es gefällt mir nicht
Hast du die exe auch als Download.
mfg
Otto
>und so sieht das aus ... aber es gefällt mir nicht
Hast du die exe auch als Download.
mfg
Otto
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Jahresübersicht Calender
meinst du jetzt den Outlook Clone ?azzo hat geschrieben:Hast du die exe auch als Download.
Das ganze gibt es als LIB zum einbinden in seine eigene Xbase++ Application, deshalb sind Farben und Menutexte in DBF´s zum konfigurieren.
Ich muss nun "diese" Version noch fertig stellen dann werde ich das Teil uploaden.
- Dateianhänge
-
- Ocal_Jahr_2.JPG (100.97 KiB) 6182 mal betrachtet
gruss by OHR
Jimmy
Jimmy
- azzo
- Rekursionen-Architekt
- Beiträge: 483
- Registriert: So, 28. Mär 2010 19:21
- Danksagung erhalten: 11 Mal
Re: Jahresübersicht Calender
Hallo Jimmy,
Ist der Sourcecode in der zip-Datei vom Wochenplan.
Ich habe nicht herausgefunden, ob man den Plan stufenlose vergrößern oder
verkleinern kann.
Wenn ich den Code richtig verstehe werden hier eine Reihe von get Objekten verwendet.
Funktioniert der Bildschirmaufbau und das Neuzeichnen schnell.
Mfg
Otto
Ist der Sourcecode in der zip-Datei vom Wochenplan.
Ich habe nicht herausgefunden, ob man den Plan stufenlose vergrößern oder
verkleinern kann.
Wenn ich den Code richtig verstehe werden hier eine Reihe von get Objekten verwendet.
Funktioniert der Bildschirmaufbau und das Neuzeichnen schnell.
Mfg
Otto
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Jahresübersicht Calender
aha ... du meinst den Source von Diego.azzo hat geschrieben:Ist der Sourcecode in der zip-Datei vom Wochenplan.
Ich habe nicht herausgefunden, ob man den Plan stufenlose vergrößern oder
verkleinern kann.
Wenn ich den Code richtig verstehe werden hier eine Reihe von get Objekten verwendet.
Funktioniert der Bildschirmaufbau und das Neuzeichnen schnell.
Code: Alles auswählen
oCal := XbpMultiCellGroup():new( oDrawing,, { 0, 20 }, { 175, 114 } )
oCal:maxCol := 7
oCal:maxRow := 6
du kannst zwar die Grösse verändern aber du musst auch (manuell) die Anpassungen der Columne mit
Code: Alles auswählen
oCal:setColWidth( xx )
es ist eben nicht ein XbpBrowse() was sich um so was kümmert sondern 1 Etage tiefer der direkte Zugriff auf jede einzelne Cell.
mit Ownerdraw habe ich nun über jede Cell die Kontrolle "wie" die aussehen soll.
btw in deinem Bild sind ja mehrere Tage markiert ( andere Farbe ).
sind das einzelne Termine "pro/Tag" oder geht der Termin über mehr als 1440min ( = 1 Tag) ?
... ich weiss jetzt gar nicht wie Outlook solche Termine anlegt ...
gruss by OHR
Jimmy
Jimmy
- azzo
- Rekursionen-Architekt
- Beiträge: 483
- Registriert: So, 28. Mär 2010 19:21
- Danksagung erhalten: 11 Mal
Re: Jahresübersicht Calender
Hallo Jimmy,
den Source den ich gepostet habe ist die Basis für eine Kalenderklasse.
Hier ist die exe dazu.
Ich verwende eigentlich nur Windows API-Funktionen.
Mfg
Otto
http://www.atzwanger-software.com/fh/pick2.zip
den Source den ich gepostet habe ist die Basis für eine Kalenderklasse.
Hier ist die exe dazu.
Ich verwende eigentlich nur Windows API-Funktionen.
Mfg
Otto
http://www.atzwanger-software.com/fh/pick2.zip
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Jahresübersicht Calender
du sagtest ja FiveWin ... hatte ich vergessen bis ich den geposteten Code genauer ansah.azzo hat geschrieben:den Source den ich gepostet habe ist die Basis für eine Kalenderklasse.
Hier ist die exe dazu.
Ich verwende eigentlich nur Windows API-Funktionen.
zunächst einmal wirkt dein Bildschirmaufbau "schneller" ... ich denke weil du direkt in den DC "malst"
Anmerkung : was für Xbase++ der oPS ( Presspace ) ist in Windows der DC ( Device Content ) bzw das Handle hDC davon.
Frage : warum willst du den Code verändern ( "pure" Xbase++ ) ?
... wenn ich den Code so sehe denke ich das man es "leicht" mit ot4xb ersetzten könnte
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Jahresübersicht Calender
zunächst einmal : die Logic der Berechnung der Positionen sollte unverändert gelten.azzo hat geschrieben:Glaubst du man könnet diese Klasse einfach auf xBase umändern?Code: Alles auswählen
METHOD Paint() CLASS TPickDate ... return 0
aInfo := ::DispBegin()
soll das die "Ausgabe" des Bildschirm unterdrücken ? wenn ja ::drawingArea:lockUpdate(.T./.F.)
FillRect() -> Grabox()
hDC -> oPS
GetClientRect() -> CurrentPos() / CurrentSize()
::oBrush -> GRA_CLR* / GraMakeRGBColor()
GradientFill() -> GraGradient()
nRGB() -> GraMakeRGBColor()
GetTextWidth() -> GraQueryTextBox()
::Say() -> GraStringAt()
alles was ich hier aufgeführt habe hat ja was mit "malen" zu tun, nicht mit der Logic.
p.s. wenn du deinen Fivewin Code auf ot4xb umstellst könnte man ihn auch für ein "native" ListView() nehmen.
frage doch mal im ot4xb Forum an ob es eine #include/#xtranslate Datei Fivewin -> ot4xb gibt
gruss by OHR
Jimmy
Jimmy