Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Problem mit BoldDays von MonthCalendar (https://www.delphipraxis.net/84432-problem-mit-bolddays-von-monthcalendar.html)

netgnom 16. Jan 2007 21:25


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:
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;
um sie dann mit
Delphi-Quellcode:
MonthCalendar1.BoldDays(TerminsImMonat), MonthBoldInfo);
aufzurufen.

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

ste_ett 16. Jan 2007 22:07

Re: Problem mit BoldDays von MonthCalendar
 
Laut Funktiondeklaration wird für den ersten Parameter
Delphi-Quellcode:
procedure TCommonCalendar.BoldDays(Days: array of LongWord; var MonthBoldInfo: LongWord);
ein dynamischer LongWord-Array und kein dynamischer Integer-Array verlangt. :)

netgnom 16. Jan 2007 22:24

Re: Problem mit BoldDays von MonthCalendar
 
Ah ja..... Also müßte der Code in etwa so hier lauten

Delphi-Quellcode:
  TerminsImMonat: array of integer;
        //snip
 

while not DB_Module.QueryTermin.Eof do
        begin
         Termins := IntToXXX(DB_Module.QueryTermin.FieldbyName('Termine').Value);
       //snip
        end;
Aber wie wandle ich die Zahl, die als Integer aus meiner DB-Query kommt, in einen "longWord" um? IntTo*Was*? :?:

Gruß
Netgnom

marabu 17. Jan 2007 06:28

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:
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;
Freundliche Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:44 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