Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 4.408 pregleda

Najnovija ↓

File List Box 08.02.2003. u 15:40 · pre 288 meseci #1
Postoji li neka ugradjena komponenta za prikazivanje liste fajlova nekog direktorijuma? Nasao sam samo onu u okviru Win3.11 ali meni trebaju i ikonice, sto u 3.11 nije bilo podrzano.
Hvala unapred
Potpis
Bolje zivjeti sto godina u bogatstvu, nego dvije u siromastvu!
Re: File List Box 10.02.2003. u 14:43 · pre 288 meseci #4
Postavio sam taj property na true ali su ilonice iz Win3.11 ruzne i nisu iste kao ove.
Sto se tice Delphi-a imam i 5.0 i 7.0, ali u sedam nemam socket kontrole iz petice (zamenjene su nekim kontrolama o kojima pojma nemam), a u sedmici znam da ima FileListBox kakav mi treba, ali ne mogu da prekompajliram peticin dokument u sedmicu. Mogu li nekako te kontrole iz petice da dodam sedmici?
Potpis
Bolje zivjeti sto godina u bogatstvu, nego dvije u siromastvu!
Re: File List Box 11.02.2003. u 04:27 · pre 288 meseci #5
Probaj sa ShellListView ili tako nesto nalazi se na samples strani. Imas tamo jos toga. Naravno podrazumeva se da su komponente instalirane.
Re: File List Box 18.02.2003. u 03:06 · pre 288 meseci #6
Hoces ikone? Evo ti procedure koja vraca HICON selektovanog fajla/direktorijuma/drajva:

function GetIconHandle(FileName: string; Modifier: TIconModifier): THandle;
const
aModifier:array [TIconModifier] of integer = (0, SHGFI_LINKOVERLAY, SHGFI_SELECTED, SHGFI_OPENICON, SHGFI_SHELLICONSIZE, SHGFI_SMALLICON);
var
sfi: TSHFileInfo;
begin
SHGetFileInfo(PChar(FileName), 0, sfi, SizeOf(TSHFileInfo), SHGFI_SYSICONINDEX or SHGFI_ICON or aModifier[Modifier]);
Result := sfi.HICON;
end;

TIconModifier = (imNormal, imOverlay, imSelected, imOpen, imShellSize, imSmall);

Kada imas neku ikonu (Ikona: TIcon) onda teras:
Ikona.Handle := GetIconHandle('c:\NekiDirekrojum');

Nadam se da ce ti posluziti. Reci veliko hvala JEDI-jevcima...
Potpis
http://www.activecollab.com - Alat za upravljanje projektima
Re: File List Box 18.02.2003. u 03:29 · pre 288 meseci #7
Izvedi klasu iz TCustomListView i uvedi ovaj metod:

Code:
procedure ChangeDir(const Dir: string);
var
  SearchRec: TSearchRec;
  TempIcon: TIcon;
begin
  if DirectoryExists(Dir) then
    begin
      if FindFirst(Maska, Attr, SearchRec) = 0 then
        repeat
          with Items.Add do
            begin
              Caption := SearchRec.Name;
              TempIcon := TIcon.Create;
              try
                TempIcon.Handle := GetIconHandle(Dir + '\' + SearchRec.Name, itNormal);
                LargeImages.AddIcons(TempIcon);
              finally
                TempIcon.Free;
              end; 
              ImageIndex := Items.Count - 1
            end;
        until FindNext(SearchRec); 
        FindClose(SearchRec);
    end;
end;


Primetices Masku i Attr kao ulaz procedure FindFirst. Njih moras definisati (smor mi je da i to sad kucam), a kao vodilja nek ti posluzi kod koji je napisan u TFileListView. Ovde pozivas i funkciju GetIconHandle (zahteva ShellAPI). Kao ulazni parametar ide IconModifier (pogledaj definiciju i skontaces sta znaci):

Code:
  TIconModifier = (imNormal, imOverlay, imSelected, imOpen, imShellSize, imSmall);


Ovo je sama f-ja:

Code:
function TisCommander.GetIconHandle(FileName: string; Modifier: TIconModifier): THandle;
const
  aModifier:array [TIconModifier] of integer = (0, SHGFI_LINKOVERLAY,
                                                SHGFI_SELECTED,
                                                SHGFI_OPENICON,
                                                SHGFI_SHELLICONSIZE,
                                                SHGFI_SMALLICON);
var
  sfi: TSHFileInfo;
begin
  SHGetFileInfo(PChar(FileName), 0, sfi, SizeOf(TSHFileInfo),
                SHGFI_SYSICONINDEX or SHGFI_ICON or aModifier[Modifier]);
  Result := sfi.HICON;
end;


Napomena, ovaj kod je kucan iz glave i ne znam da li tacno radi (ovako kako je napisan nisam siguran, ali kad se malo sredi sigurno radi - provereno). Nadam se da ce ti pomoci. A ako ti je smor da pravis novu komponentu (ili volis Shell) onda jednostavno upotrebi neku od Shell komponenti (recimo Plasmatech ili Ortus Shell komponente - lepo izgledaju, savrseno rade, a besplatne su za nekomercijalne aplikacije, bez nag screenova i slicnih gluposti --> www.delphipages.com ).
Potpis
http://www.activecollab.com - Alat za upravljanje projektima
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme