![]() |
Problem mit BoldDays von MonthCalendar
Hallo an alle,
(bin ein newbie aus der Perlecke und insofern nicht sehr vertraut mit Datentypen :gruebel: ) ich schlage mich hier mit einem kleinem Problem des MonthCalendar herum: ich möchte bestimmte Tage im Monat fett markieren. Die Tage stehen in einer Db und sind von Monat zu Monat unterschiedlich (auch in der Anzahl). Also habe ich mir ein dyn. Array aus Integern gebaut:
Delphi-Quellcode:
um sie dann mit
while not DB_Module.QueryTermin.Eof do
begin Termins := DB_Module.QueryTermin.FieldbyName('Termine').Value; setLength(TerminsImMonat,i+1); TerminsImMonat[i] := Termins; i:=i+1; DB_Module.QueryTermin.Next; end;
Delphi-Quellcode:
aufzurufen.
MonthCalendar1.BoldDays(TerminsImMonat), MonthBoldInfo);
MonthCalendar erwartet aber die Daten als statisches "array of cardinals" und gibt die Meldung "incompatible Typen 'array' und 'dynamic array'" heraus. Egal, was ich an Umwandlung probiert habe, nix geht :cry: Maximum, was ich über eine Schleife geschafft habe, war, daß immer der letzte Termin des Monats fett dargestellt wurde... Wie bekomme ich nun das "Array of Integer" in ein "statisches Array" umgewandelt? Gruß Netgnom |
Re: Problem mit BoldDays von MonthCalendar
Laut Funktiondeklaration wird für den ersten Parameter
Delphi-Quellcode:
ein dynamischer LongWord-Array und kein dynamischer Integer-Array verlangt. :)
procedure TCommonCalendar.BoldDays(Days: array of LongWord; var MonthBoldInfo: LongWord);
|
Re: Problem mit BoldDays von MonthCalendar
Ah ja..... Also müßte der Code in etwa so hier lauten
Delphi-Quellcode:
Aber wie wandle ich die Zahl, die als Integer aus meiner DB-Query kommt, in einen "longWord" um? IntTo*Was*? :?:
TerminsImMonat: array of integer;
//snip while not DB_Module.QueryTermin.Eof do begin Termins := IntToXXX(DB_Module.QueryTermin.FieldbyName('Termine').Value); //snip end; Gruß Netgnom |
Re: Problem mit BoldDays von MonthCalendar
Herzlich willkommen in der Delphi-PRAXiS, netgnom.
Du hast da etwas missverstanden. Angenommen dein Datenbank-Feld "Termine" ist vom Typ Integer:
Delphi-Quellcode:
Freundliche Grüße vom marabu
var
Days: array of LongWord; // nicht Integer begin // ... SetLength(Days, 0); while not DB_Module.QueryTermin.Eof do begin SetLength(Days, Succ(Length(Days))); Days[High(Days)] := DB_Module.QueryTermin.FieldbyName('Termine').AsInteger; DB_Module.QueryTermin.Next; end; // ... end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz