» Poradna » Programy

ListBox v Delphi

 |   | 

Nemohl by jste mi někdo poradit, mám následující problém: rekurzivní metodou načtu do ListBoxu seznam souborů se kterými potom dál pracuji. Do ListBoxu se mi načítá celá cesta k souboru, protože mám ale ListBox úzký potřebovala bych, aby se v ListBoxu zobrazovaly jen názvy souborů. Zkoušela jsem metodu ExtractFileName, ale tím oříznu cestu a to pak řve, že soubor nebyl nalezen. díky moc

Odpovědi na otázku

 |   | 

Ulož si do nějaké nové řetězcové proměnné zbytek cesty k těm souborům. Jestli je načteš OpenDialogem, obvykle se na tu složku nastaví i aktuální adresář, takže není problém použít metodu GetCurrentDir(). Pak při další práci se soubory stačí napsat jen název té proměnné + název souboru ( asi bude potřeba dát před název souboru zpětné lomítko, nejsem si jistý ).

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

Asi si mal na mysli nacitat do array ? ona totis nacitava zoznam suborov.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

Ale pokial nacitava vsetky subory z toho isteho adresara tak je plati co si napisal.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

Samozřejmě. Jestli z více adresářů, pak pole, jinak to nepůjde. Počítal jsem s tím, že je načítá ze stejné složky. Sice jsem na možnost, že by ty soubory byly z různých složek, nemyslel, ale to už by si autorka určitě dokázala dovtípit, že pro více hodnot stejného typu může použít pole.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | 

1. budes mit ListBox a StringList. V Listboxu pouze jmena a ve StringListu i s cestou. Indexy budou odpovidat, takze se na to jednoduse dostanes2. Pouzijes uzivatelske vykreslovani ListBoxu (OnDrawItem, priklad je v helpu Delphi) a "vykreslis" (vypises) tam pouze nazev souboru.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

A nebolo by jednoduchsie pouzit listview: 2 stlpce , pricom ten jeden by obsahovat extr. nazov suboru a druhy by mal 0 sirku (nebude vidiet) a obsahoval by cestu.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

Nešlo by užít proceduru Delete?

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

Když už blbě radit, tak aspoň DeleteFile...

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

Co tak zkusit Event ListBoxu "OnDrawItem" a tam pouzit pro kazdy nazev souboru funkci MinimizeName.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

Kde je taková funkce definovaná? Při zapsání do kódu ji Delphi nezná, tak předpokládám, že bude v nějaké unitě, kterou nemám zahrnutou.

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Celá cesta