![]() |
MonthCalendar1.BoldDays mit variablen
HuHu,
ich habe das Problem, dass ich in einem ARRAY gespeicherte Integerwerte als Bolt in meinem kalender schreiben lassen mochte ... das geht so wie ich es gemacht habe aber leider nicht =( hier mal der code
Delphi-Quellcode:
bin für jede hilfe dankbar =D
procedure TForm1.MonthCalendar1GetMonthInfo(Sender: TObject;
Month: Cardinal; var MonthBoldInfo: Cardinal); VAR i,j: INTEGER; datum2 : STRING; bolting : ARRAY[1..30] of integer; begin Datum := datetostr(MonthCalendar1.Date); monat := datum[4] + datum[5]; edit1.Text := monat; while not Table1.eof do begin datum2 := Table1.FieldByName('Datum').AsString; datum2 := datum2[4] + datum2[5]; if datum2 = monat then begin inc(b); //wird auf null gesetzt und das klappt auch alles bolting[b] := strtoint(datum2); end; Table1.next; end; MonthCalendar1.BoldDays([bolting],MonthBoldInfo); end; |
Re: MonthCalendar1.BoldDays mit variablen
Hier ein Beispiel, wie man 3 Tage "bold" macht:
Delphi-Quellcode:
Und jetzt für ein ganzes Jahr:
procedure TForm1.MonthCalendar1GetMonthInfo(Sender: TObject; Month: Cardinal; var MonthBoldInfo: Cardinal);
procedure MakeBoldDay(day : Integer); begin MonthBoldInfo := MonthBoldInfo or (1 shl (day-1)); end; begin MonthBoldInfo := 0; // alle Tage "normal" MakeBoldDay(13); MakeBoldDay(17); MakeBoldDay(21); end;
Delphi-Quellcode:
var
boldMonths: array[0..11] of Cardinal; ... procedure ClearAll; var i : integer; begin for i := Low(boldMonths) to High(boldMonths) do boldMonths[i] := 0; end; procedure MakeBoldDay(month,day : Integer); begin boldMonths[month] := boldMonths[month] or (1 shl (day-1)); end; procedure TForm1.MonthCalendar1GetMonthInfo(Sender: TObject; Month: Cardinal; var MonthBoldInfo: Cardinal); begin MonthBoldInfo:= boldMonths[Month]; end; procedure SetupAll; begin ClearAll; // alle Tage Normal MakeBoldDay(1, 1); // Neujahr MakeBoldDay(12, 24); // Weihnachten .... end; |
Re: MonthCalendar1.BoldDays mit variablen
hmm eigentlich ist das schon so alles ganz schön... aber ... naja .. ich wollte doch nicht im code festlegen müssen, welche tag ich "bolten" möchte, sondern die sollen selbstständig ermittelt werden und dann einzeln zu "geboltet" werden. am liebsten aus einem ARRAY.
Und dann habe ich noch eine Frage: Wie bekommt ich aus dem monthcalendar das datum von heute ?? Also der tag der rot umkringelt ist. |
Re: MonthCalendar1.BoldDays mit variablen
Zitat:
![]() |
Re: MonthCalendar1.BoldDays mit variablen
Zitat:
Zitat:
![]() edit. scharky war schneller Aenogym |
Re: MonthCalendar1.BoldDays mit variablen
ahh ja klar ... manchmal sieht man den wald voller bäume nicht. Danke !
|
Re: MonthCalendar1.BoldDays mit variablen
ok das klappt =D danke nochmal.
nun ist mir gerade noch eine idee gekommen... ist es möglich das symbol, welches um den heutigen tag kreist zu ändern ? |
Re: MonthCalendar1.BoldDays mit variablen
ne doch irgendwie nicht ... was genau macht die Procedure
Delphi-Quellcode:
oder besser gefragt wann und wie! Also wer ruft sie auf und wie oft wird sie dann durchlaufen ? wenn ich mein Programm starte und eine showmessage reinpacke in die Proc. dann kommt sie 3 mal, als haette ich in der Form create Proc. 3mal reingeschrieben er solle mir die message zeigen. wenn ich dann aber auf einen monat weiter klicke kommt er garnicht mehr klar. der kalender durchlaeuft alle monate und die message kommt immer wieder. Was solln des? warum macht es das ?
procedure TForm1.MonthCalendar1GetMonthInfo(Sender: TObject;
Month: Cardinal; var MonthBoldInfo: Cardinal); |
DP-Maintenance
Dieses Thema wurde von "Sharky" von "Sonstige Fragen zu Delphi" nach "VCL-Komponenten und Controls" verschoben.
Ich verschiebe das mal nach VCL. Ist dort etwas besser aufgehoben ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz