Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
Delphi 10.4 Sydney
|
AW: Eigener Kabender bauen
5. Sep 2016, 11:14
Hallo ConnorMcLeod,
danke dür den Code. Das bringt mich schon sehr viel weiter, bzw. vereinfacht das ganze schon einmal.
Vllt mit einer Prozedur, die alles macht und als Parameter die Anzeigeobjekte bekommt...
ProcessOneDay(Datum, Wochentag, Jan4, Jan4Tag, Jan4Anzahl, FeldJan4);
Jetzt habe ich nur nochein Problem. Ich müste nun beim erzeugen 365 mal die Aufruf starten also etwas so:
Delphi-Quellcode:
ProcessOneDay(Datum, Wochentag, Jan1, Jan1Tag, Jan1Anzahl, FeldJan1);
ProcessOneDay(Datum, Wochentag, Jan2, Jan2Tag, Jan2Anzahl, FeldJan1);
...
ProcessOneDay(Datum, Wochentag, Dez30, Dez30Tag, DEZ30Anzahl, FeldDez30);
ProcessOneDay(Datum, Wochentag, Dez31, Dez31Tag, DEZ31Anzahl, FeldDez31);
Kann man den Code auch noch etwas vereinfach in Form z.B. einer Schleife ?
Tanja
Hallo Tanja,
für deine Frage hätte ich diese Antwort unten ... aber Du könntest Dir auch mal überlegen, Kompenenten selbst abzuleiten.
Ein TDatumsLabel, ein TTagesLabel, ein TKalenderTagesPanel und so weiter. Die bekommen ein zusätzliches Property 'Date' und wenn man ein Datum zuweist, dann richten sie sich selbst darauf ein. Dein TKalender bestünde dann aus TKalenderTagesPanels und der Code wäre etwas übersichtlicher
Delphi-Quellcode:
var
liDateCounter: integer;
lsDateString: string;
for liDateCounter := 1 to 365 do begin
Datum := MachEinSinnvollesDatum(liDateCounter);
Wochentag := GibMirDenWochenTag(Datum);
lsDateString := FormatDateTime('mmmd', Datum);
ProcessOneDay(
Datum
, Wochentag
, TLabel(FindComponent(lsDateString))
, TLabel(FindComponent(lsDateString + 'Tag'))
, TLabel(FindComponent(lsDateString + 'Anzahl'))
, TPanel(FindComponent('Feld' + lsDateString))
);
end;
)
Nr.1 Delphi-Tool: [F7]
Geändert von ConnorMcLeod ( 5. Sep 2016 um 17:58 Uhr)
|