AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Simons SRCalendar Termine mit 2 verschiedene Farben darstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Simons SRCalendar Termine mit 2 verschiedene Farben darstellen

Ein Thema von Coffeecoder · begonnen am 11. Mär 2012 · letzter Beitrag vom 12. Mär 2012
Antwort Antwort
Benutzerbild von Coffeecoder
Coffeecoder

Registriert seit: 27. Apr 2011
242 Beiträge
 
Delphi 6 Enterprise
 
#1

Simons SRCalendar Termine mit 2 verschiedene Farben darstellen

  Alt 11. Mär 2012, 17:16
Hi Leute,

Ich benutze den SRCalendar von der Simon Komponente.

Mein Problem:
Ich klicke auf einen Tag dann soll auch der Tag mit einer Farbe markiert werden. Klappt soweit.
Ich klicke auf einen Tag, wird markiert und soll einen weiteren Tag (im Abstand von 3 Tagen) auch markiert werden. Klappt soweit. ( siehe Screenshot 1)
Was ich aber erreichen will ist folgendes: Dieser Tag soll mit einer anderen Farbe markiert werden als auf den ich geklickt habe. (siehe Screenshot 2 - mit Paint modifiziert )
Das habe ich als Code:
Delphi-Quellcode:
procedure TForm1.srcalDblClick(Sender: TObject);
begin
        srcal.BackgroundColors.Marked := clAqua;
        srcal.Marked[srcal.day] := not srcal.Marked[srcal.Day];
        srcal.BackgroundColors.Marked := clGreen;
        srcal.Marked[srcal.Day+3] := not srcal.Marked[srcal.Day+3];
end;
Meine Frage:
Wo liegt mein Fehler? Farben werden entsprechend angepasst.
Ist die Komponente nicht in der Lage das zu tun?
Hat jemand von euch dieses Problem anders gelöst? Mit einer anderen Komponente?

Ich danke

[Add] Folgendes habe ich ebenfalls grad getestet:
Delphi-Quellcode:
procedure TForm1.srcalDblClick(Sender: TObject);
begin
        srcal.BackgroundColors.Marked := clAqua;
        srcal.Marked[srcal.day] := not srcal.Marked[srcal.Day];
        test := srcal.day;

end;

procedure TForm1.Button5Click(Sender: TObject);
begin
        srcal.BackgroundColors.Marked := clGreen;
        srcal.Marked[test+3] := not srcal.Marked[test+3];
end;
Ok. Die Variable "test" ist global *hust*.
Es scheint an der Komponente zu liegen und kann nur mit einer Farbe als Markierung klar kommen.
Er zeichnet den Tag "clAqua" und dann im Button "übermalt" er mit der aktuellen Markierungsfarbe alle markierten Tage.

Hat jemand von euch eine kostenlose Komponente anzubieten die sowas auch kann? Danke euch
Miniaturansicht angehängter Grafiken
srcal1.jpg   srcal2.jpg  
Coffeecoder

Geändert von Coffeecoder (11. Mär 2012 um 17:25 Uhr) Grund: weiterer Test
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Simons SRCalendar Termine mit 2 verschiedene Farben darstellen

  Alt 11. Mär 2012, 17:25
Zitat:
Delphi-Quellcode:
procedure TSRCalendar.SetMarked(Index: integer; const newValue: boolean);
begin
  FMarked[Index]:=newValue;
  Invalidate;
end;
Da dürfte der Hase im Pfeffer liegen. Ich habe den Code jetzt nicht in Gänze durchgeschaut, aber durch das Invalidate wird für jede Zelle das DrawCell durchlaufen und dort wohl die aktuell gesetzte Farbe ausgewertet und gezeichnet. Du wirst Dir die Komponente also selbst erweitern müssen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Coffeecoder
Coffeecoder

Registriert seit: 27. Apr 2011
242 Beiträge
 
Delphi 6 Enterprise
 
#3

AW: Simons SRCalendar Termine mit 2 verschiedene Farben darstellen

  Alt 11. Mär 2012, 17:27
Du wirst Dir die Komponente also selbst erweitern müssen.
Danke DeddyH, das habe ich mir schon gedacht.
Coffeecoder
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Simons SRCalendar Termine mit 2 verschiedene Farben darstellen

  Alt 11. Mär 2012, 18:06
am schnellsten wird es gehen aus der Property Marked statt eines Boolean ein TColor zu verwenden und OnDrawCell anzupassen;

TMarked = array [1..31] of TColor;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Simons SRCalendar Termine mit 2 verschiedene Farben darstellen

  Alt 11. Mär 2012, 18:09
Und damit dann Logik und Darstellung vermischen? Ich würde mir eher die Mühe machen, ein oder zwei Properies hinzuzufügen und im DrawCell auszuwerten.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Coffeecoder
Coffeecoder

Registriert seit: 27. Apr 2011
242 Beiträge
 
Delphi 6 Enterprise
 
#6

AW: Simons SRCalendar Termine mit 2 verschiedene Farben darstellen

  Alt 12. Mär 2012, 07:14
Ich werde es dann folgendermasse tun:
Ich nehm die Klasse SRCal, erweitere die Klasse mit einem weiteren Property "SecondMarked" oder so und dann erweitere ich die Methode OnDraw mit dem Malen mit einer weiteren Farbe.
So müsste es dann klappen.
Dies werde ich aber erst am kommenden Wochenende testen können. Bis dahin danke euch
Coffeecoder
  Mit Zitat antworten Zitat
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 14:57 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