Einzelnen Beitrag anzeigen

Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#10
  Alt 27. Nov 2002, 21:15
Hallo m-werk,

schnell noch ein paar Infos:

Ich habe, wie schon einmal in einem anderen Thread beschrieben, im privat Bereich des Hauptformulars die Variable FirstTime deklariert:

Delphi-Quellcode:
TForm1 = class(TForm)
    ...
  private
   { Private-Deklarationen }
    FirstTime   : Boolean;
    ...
  public
    { Public-Deklarationen }
  end;
Diese wird in FormCreate initialisiert:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  FirstTime := True;
end;
und in FormActivate benutzt:
Delphi-Quellcode:
procedure TForm1.FormActivate(Sender: TObject);
begin
   if FirstTime then
   begin
      FirstTime := False;
      if Not qrySelData.Active then
      begin
         qrySelData.ParamByName('PNr').AsString := frmLogin.PNr;
         qrySelData.Open;
      end;
      Caption := 'Arbeitszeiterfassung für '
                        +frmLogin.cbUser.Text;
      UpdateCalMark;
   end
end;
Hier habe ich eine Procedure UpdateCalMark aufgerufen, die du ebenfalls im Privat Bereich deklarieren solltest. Sie dient dazu, die Tage im Kalender zu markieren, für die bereits ein Eintrag existiert.
Delphi-Quellcode:
procedure TForm1.UpdateCalMark;
var
   jahr, monat, tag : Word;
   merken   : TBookmark;
begin
   qrySelData.DisableControls;
   merken := qrySelData.GetBookmark;
   qrySelData.First;
   cal.Markdays.Clear;
   while Not qrySelData.Eof do
   begin
      DecodeDate(qrySelDataDatum.Value, jahr, monat, tag);
      if (jahr = cal.Year) and
          (monat = cal.Month) then
          if tag < 10 then
             cal.Markdays.Add(FormatDateTime('d.mm.',qrySelDataDatum.Value))
          else
             cal.Markdays.Add(FormatDateTime('dd.mm.',qrySelDataDatum.Value));

      qrySelData.Next;
   end;
   cal.Invalidate;
   qrySelData.GotoBookmark(merken);
   qrySelData.EnableControls;
end;
So, da hast du wieder was zu tun. Aber nicht nur abtippen , sonst hilft dir das für zukünftige Probleme gar nicht. Versuche genau zu verstehen, was ich da vorschlage und warum. Wenn es nicht klar ist, solltest du lieber fragen.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat