|
|
Dátumokkal feltöltött TreeView
|
|
Példaprogram letöltése
4036 bájt
|
Készítünk egy olyan eljárást, mely képes arra, hogy két megadott dátum közötti dátumokkal töltse fel a TreeView-t. A feltöltés eredményeképpen a struktúra első szintjére kerülnek az évszámok, a másodikra a hónapok, végül a harmadikra a napok.
A feltöltéshez a FillTreeView eljárást hozzuk létre, melynek első paraméterében a feltöltendő TreeView-t kell megadni, másodikként a kezdő, míg végül a befejező dátumot.
procedure TForm1.FillTreeView(treeview: TTreeview; startdate: TDateTime; enddate: TDateTime);
begin
Elsők között meghatározandó, hogy két dátum között hány nap van, vagyis hány lépésre van szükségünk a feltöltéshez.
step:=DaysBetween(startdate, enddate);
y:=0;
m:=0;
for i:=0 to step do begin
A ciklusváltozó aktuális értékével növeljük a kezdődátumot, így minden esetben megkapjuk az épp feltöltendő év, hónap és nap számát.
DecodeDate(IncDay(startdate, i), year, month, day);
Ezt követően ellenőriznünk kell, hogy ugyannál az évnél, illetve ugyanannál a hónapnál tart-e a feltöltés, mint a ciklus előbbi futásánál. Ha igen, akkor ugyanaz alá a csomópont alá kerül az új bejegyzés, ha nem, akkor egy új hierarchia szintet kell nyitni az új bejegyzéshez.
if y=year then begin
if m=month then begin
treeview.Items.AddChild(monthnode, IntToStr(day));
end else begin
DateTimeToString(s, 'mmmm', EncodeDateTime(year, month, day, 0, 0, 0, 0));
monthnode:=treeview.Items.AddChild(yearnode, s);
treeview.Items.AddChild(monthnode, IntToStr(day));
m:=month;
end;
end else begin
yearnode:=treeview.Items.AddChild(nil, IntToStr(year));
DateTimeToString(s, 'mmmm', EncodeDateTime(year, month, day, 0, 0, 0, 0));
monthnode:=treeview.Items.AddChild(yearnode, s);
treeview.Items.AddChild(monthnode, IntToStr(day));
y:=year;
m:=month;
end;
end;
end;
|
Könyv
Ez a cikk megtalálható ebben a könyvben:
Delphi Software Offline 2003 évkönyv 641. oldal
Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!
|