Delphi Problem mit TMonthCalendar und XP Manifest

koffi

Lt. Junior Grade
Registriert
Jan. 2007
Beiträge
490
hallo!

der folgende text ist zwar nicht gerade kurz, beschreibt mein problem aber präzise und ich glaube, dass es durchaus einfach lösbar ist. bitte nehmt euch kurz die zeit, ich hab schon alles mir mögliche versucht.

zunächst kurz zum erläutern:
-das monthcalendar element in delphi sollte ja jeder delphi programmierer kennen, das ist n kleiner kalender in dem man ein datum anklicken kann
-xp manifest kann man sich auch ins projekt ziehen. befindet es sich im projekt, so nehmen alle anderen elemente (editfelder, buttons, radiobuttons etc) einen neuen look an, abhängig vom laufenden betriebssystem.

ich habe windows 7 und nutze delphi 7.

ich möchte, dass wenn man in meinem monthcalendar einen tag auswählt, automatisch die ganze woche von montag bis freitag ausgewählt wird.

OHNE xp manifest funktioniert das sehr gut. hier mein code:

Code:
procedure TForm1.OrdnungKalenderClick(Sender: TObject);
var datum: tdate;
  i: integer;
begin
  OrdnungKalender.MultiSelect := false;
  i := 0;
  datum := OrdnungKalender.Date;
  repeat begin
      if DateWochentag(datum) = 'Montag' then i := 1 else datum := datum - 1;
  end until i = 1;
  OrdnungKalender.date := datum; i := 0; OrdnungKalender.MultiSelect := true;
  OrdnungKalender.date := datum + 4;
  end;

ist jedoch xp manifest in meinem projekt drinnen, so bekommt ja auch der kalender einen neuen style. wenn man dort dann auf den pfeil nach rechts, also einen monat weiter, klickt, dann erfolgt eine kleine animation, welche so aussehen soll, als ob sich der kalender nach links schiebt und die seite für den nächsten monat von rechts kommt. sieht recht nett aus.

jetzt funktioniert aber aufgrund meines OrdnungKalenderClick events der kalender nichmehr gescheit.
wenn ich auf den pfeil nach rechts oder lins (also einen monat vor oder zurück) beim kalender klicke, erfolgt die animation und dann wird scheinbar erst mein code abgearbeitet. da in diesem code noch mehr tage ausgewählt werden geht also der kalender bei zb einen klick nack rechts (nächtser monat) auf den nächsten monat , dann aber sofort wieder zurück! das switchen zwischen monaten im kalender ist also nicht mehr möglich!

ich habe folgende ideen, wie man das in den griff bekommen könnte, brauche da aber hilfe von euch:
- xp manifest weglassen (will ich aber auf keinen fall!)
- die xp manifest styleänderung nicht am kalender (aber sonst überall) machen. geht sowas?
- gibt es eine event-procedure, welche anspringt, wenn ich einen TAG im kalender auswähle? in meinem fall ist es ja eine procedure welche in gang kommt wenn man irgendwas am kalender anklickt (was den fehler ja verursacht)
- die animation an diesem kalender ausschalten?
.. andere ideen zur lösung meines problems?

vielen dank im vorraus!
 
Wenn du ja Windows 7 verwendest, wäre die erste Frage, ob das XP Manifest in der Form, in der Du es benutzt, überhaupt mit Win7 voll kompatibel ist, da gabs mit Vista schon Probleme.
 
ich denke schon dass es kompatibel ist. ohne die procedure funktioniert ja alles einwandfrei wie es soll! der xp-manifestierte-monthcalendar ist eben nur so gemacht, dass er sich nicht mit meiner procedure verträgt..
 
Zurück
Oben