HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

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;

Cikksorozat

#IDKategóriaCikk címeSorozat
3643DelphiFormEditor1. rész
3689DelphiProject és modul információk2. rész
3719DelphiMegnyitás, mentés3. rész
3749DelphiKódszerkesztő4. rész
3778DelphiForráskód írása, olvasása5. rész
3809DelphiInterfész a kódszerkesztő ablakhoz6. rész
3839DelphiKijelölt blokkok7. rész
3869DelphiA buffer beállításai8. rész
3899DelphiKörnyezeti és Project opciók9. rész
3929DelphiKurzor a kódszerkesztőben10. rész
3959DelphiKeresés és csere beállításai11. rész


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!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |