Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Kalender (https://www.delphipraxis.net/93735-kalender.html)

Alter Mann 21. Jun 2007 13:39

Re: Kalender
 
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

f.siebler 22. Jun 2007 09:05

Re: Kalender
 
Moin,

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

Danke &
Gruß
Fabian

Alter Mann 22. Jun 2007 18:31

Re: Kalender
 
Liste der Anhänge anzeigen (Anzahl: 2)
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

Alter Mann 24. Jun 2007 08:48

Re: Kalender
 
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

ConstantGardener 24. Jun 2007 09:58

Re: Kalender
 
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 !?

Alter Mann 28. Jun 2007 16:59

Re: Kalender
 
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]


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:51 Uhr.
Seite 2 von 2     12   

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