AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

MonthCalendar1.BoldDays mit variablen

Ein Thema von FlinkerFinger · begonnen am 14. Feb 2005 · letzter Beitrag vom 15. Feb 2005
Antwort Antwort
FlinkerFinger

Registriert seit: 2. Jan 2005
41 Beiträge
 
#1

MonthCalendar1.BoldDays mit variablen

  Alt 14. Feb 2005, 19:11
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:
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;
bin für jede hilfe dankbar =D
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: MonthCalendar1.BoldDays mit variablen

  Alt 15. Feb 2005, 14:40
Hier ein Beispiel, wie man 3 Tage "bold" macht:
Delphi-Quellcode:
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;
Und jetzt für ein ganzes Jahr:
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;
Andreas
  Mit Zitat antworten Zitat
FlinkerFinger

Registriert seit: 2. Jan 2005
41 Beiträge
 
#3

Re: MonthCalendar1.BoldDays mit variablen

  Alt 15. Feb 2005, 16:15
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.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#4

Re: MonthCalendar1.BoldDays mit variablen

  Alt 15. Feb 2005, 16:17
Zitat von FlinkerFinger:
... Wie bekommt ich aus dem monthcalendar das datum von heute ...
Einfach über die Delphifunktion Delphi-Referenz durchsuchenDate. Diese gibt dir immer das "heutige" Datum des Rechners an. Dafür brauchst Du ja keinen MonthCalendar.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: MonthCalendar1.BoldDays mit variablen

  Alt 15. Feb 2005, 16:18
Zitat von FlinkerFinger:
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.
kannst du doch auch.e infach deine werte auslesen und dann MakeBoldDay() aufrufen

Zitat von FlinkerFinger:
Und dann habe ich noch eine Frage: Wie bekommt ich aus dem monthcalendar das datum von heute ?? Also der tag der rot umkringelt ist.
nutze doch die funktion Delphi-Referenz durchsuchendate

edit. scharky war schneller

Aenogym
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
FlinkerFinger

Registriert seit: 2. Jan 2005
41 Beiträge
 
#6

Re: MonthCalendar1.BoldDays mit variablen

  Alt 15. Feb 2005, 16:23
ahh ja klar ... manchmal sieht man den wald voller bäume nicht. Danke !
  Mit Zitat antworten Zitat
FlinkerFinger

Registriert seit: 2. Jan 2005
41 Beiträge
 
#7

Re: MonthCalendar1.BoldDays mit variablen

  Alt 15. Feb 2005, 16:31
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 ?
  Mit Zitat antworten Zitat
FlinkerFinger

Registriert seit: 2. Jan 2005
41 Beiträge
 
#8

Re: MonthCalendar1.BoldDays mit variablen

  Alt 15. Feb 2005, 16:51
ne doch irgendwie nicht ... was genau macht die Procedure
Delphi-Quellcode:
procedure TForm1.MonthCalendar1GetMonthInfo(Sender: TObject;
  Month: Cardinal; var MonthBoldInfo: Cardinal);
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 ?
  Mit Zitat antworten Zitat
15. Feb 2005, 18:11
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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz