AGB  ·  Datenschutz  ·  Impressum  







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

Kalender

Ein Thema von Alter Mann · begonnen am 10. Jun 2007 · letzter Beitrag vom 28. Jun 2007
Antwort Antwort
Seite 2 von 2     12   
Alter Mann
Registriert seit: 15. Nov 2003
Hallo,

habe gerade einen kleinen Kalender fertig gestellt und stelle in hiermit zur Verfügung!

Ich habe bisher keinerlei Anpassungen bzg. anderer Delphiversionen vorgenommen, so wie es ist
läuft es unter D7 (wegen DateUtils), sollte aber mit ein paar Anpassungen auch unter andernen
Versionen laufen.

Der Kalender hat (leider) ein paar Bugs die sich leider nicht so einfach finden lassen und
weil das so ist, ist er auch Open-Source.

Die einzigste Bedingung die ich habe, ist das alle Änderungen hier veröffentlich werden.

Gruss

Alter Mann

[Edit]
Ups...

Jetzt sind alle Dateien bei. [Edit] Plus Beispiel inkl. aller Dateien für Delphi 7.[/Edit]
[/Edit]

PS Kleine Anmerkung sei noch gestattet:

Das Beispiel zeigt ungefähr wo es hingehen soll, vielleicht noch DB-Anbindung.

Was mich da ein wenig verwundert ist die Darstellung zur Desginzeit und zur Laufzeit bzw.
die unterschiedliche Darstellung zwischen Componenten auf Form plaziert und zur Laufzeit
erstellt(siehe Calendar.zip), genauso im Beispiel.
 
Alter Mann

 
Delphi 10.2 Tokyo Professional
 
#11
  Alt 21. Jun 2007, 13:39
Hallo,

kleine Verbesserung für den Zugriff das DB-Feld.

Bitte folgende Proceduren austauschen:

Delphi-Quellcode:
procedure TDBCalendarControl.DataChange(Sender: TObject);
begin

  if (FDataLink.Field <> nil) and not FDataLink.DataSourceFixed then
  begin
    if FMaxRecords <> FDataLink.DataSet.RecordCount - 1 then
    begin
      FMaxRecords := FDataLink.DataSet.RecordCount - 1;
      LoadDatesForMonth;
    end;
  end;
end;

procedure TDBCalendarControl.LoadDatesForMonth;
var
  I : Integer;
  DT : TDateTime;
  Y,
  M,
  D : Word;
  B : TBookmarkStr;
begin
  if not IsDateTimeField then
  begin
    Exception.CreateFmt('This Field ''%s'' is not a DateTimeField.', [FDataLink.FieldName]);
    Exit;
  end;

  DecodeDate(FDate, Y, M, D);
  D := 32;
  try
    while not IsValidDate(Y, M, D) do Dec(D);
  except
  end;

  B := FDataLink.DataSet.Bookmark;
  FDataLink.DataSourceFixed := True;

  for I := 1 to D do
  begin
    DT := EncodeDate(Y, M, I);
    if FDataLink.DataSet.Locate(FDataLink.FieldName,
                                DT,
                                [loCaseInsensitive, loPartialKey]) then
      FDates[I] := Trunc(FDataLink.Field.AsDateTime);
  end;
  Invalidate;
  FDataLink.DataSourceFixed := False;
  FDataLink.DataSet.Bookmark := B;
end;
Es geht jetzt schneller.

@marabu

Danke


Gruss

Alter Mann
  Mit Zitat antworten Zitat
Benutzerbild von f.siebler
f.siebler

 
Delphi 2006 Professional
 
#12
  Alt 22. Jun 2007, 09:05
Moin,

gibts einen Screenshot davon? Wäre schön.

Danke &
Gruß
Fabian
  Mit Zitat antworten Zitat
Alter Mann

 
Delphi 10.2 Tokyo Professional
 
#13
  Alt 22. Jun 2007, 18:31
Moin, Moin

bitteschön.

Das Bild wurde unter Vista gemacht und da ich gerade nicht auf meine Standardplatte zugreifen kann,
konnte ich die Farben nicht einstellen.

Gruss
Miniaturansicht angehängter Grafiken
screenshot_146.jpg   kalender_121.jpg  
  Mit Zitat antworten Zitat
Alter Mann

 
Delphi 10.2 Tokyo Professional
 
#14
  Alt 24. Jun 2007, 08:48
Hallo,

ich habe mal eine neuere Version eingestellt.
Für alle die den Code nicht direkt übersetzen können, ist auch eine Executable bei.

Wo ich noch Schwachstellen sehe, ist das bisher realisierte Multiselect-Verfahren
(muss im Beispiel erst im Dialog ausgewählt werden).
Als Idee schwebt mir ein angezeigter Auswahlrahmen vor, aber vielleicht kann gibt
es ja auch andere Vorschläge.


Gruss
  Mit Zitat antworten Zitat
ConstantGardener

 
Delphi 10.4 Sydney
 
#15
  Alt 24. Jun 2007, 09:58
Hallo Alter Mann,

nette Komponente !! Nett wären noch direkte Auswahlmöglichkeiten für das Jahr und den Monat. Evtl. noch 2 Buttons um gleich ein Jahr vor bzw. zurück springen zu können !?
Andreas Schachtner
  Mit Zitat antworten Zitat
Alter Mann

 
Delphi 10.2 Tokyo Professional
 
#16
  Alt 28. Jun 2007, 16:59
Hallo


Ich glaube wenn bedarf besteht, dass weitere Buttons notwendig sind um gleich ein Jahr vor oder zurück springen zu können,
dann sollte es in Eigenregie erfolgen, was ja auf Grund des Sourcecode nicht weiter schwer fallen dürfte.

Die Idee jedoch ist nicht verkehrt und auch schon umgesetzt.
Standardmäßig kann mit + und - der Monat und mit PageUp und PageDown das Jahr gewechselt werden.
Sollte bedarf nach anderen Tasten bestehen, bitte schön, sie sind über die Optionen änderbar.

Viel Spaß

[Edit]
Habe alles Offline genommen.
Wer den aktuellen Source hat ...
[/Edit]
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 23:50 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