Wyodrębnianie ikonki z programu (z rozszerzenia)

Odpowiedz Nowy wątek
2007-04-08 17:28
0

Witam, mam maly problem, nie z samym wyopdrebnianiem, lecz zapisaniem wynikow...

Pisze prosty program do katalogowania zawartosci dyskow CD itp.
Wylistowane pliki sa pokazywane w komponenecie TListView wraz z ikonkami pobranymi za pomoca funkcji SHGetFileInfo(), ktora zwraca informacje o pliku wraz z ikonka. Problem polega na tym, ze funkcja wymaga podania sciezki do pliku, z ktorego chcemy wyodrebnic ikonke. Wiadomo, ze jesli kataloguje dyski CD, to nie bede kazal uzytkownikowi 'prosze wlozyc dysk CD nr 35 zeby progam mogl odczytac ikonke'...

Zapisywac ikonki wraz z info pliku do bazy tez mija sie z celem. Ikonka moze sie zmieniac wraz z nowymi wersjami programow zainstalowanych w systemie.

Myslalem, zeby sprawdzic w rejestrze aplikacje powiazane z danym rozszerzeniem pliku i włala.
Czy to jedyne wyjscie i czy dobrze mysle?

Pozostało 580 znaków

2007-04-08 17:43
0

Użyj VirtualTreeView. Jest bardzo funkcjonalne i na pewno uda CI się go wykorzystać do swoich zastosowań (wiem bo sam kiedyś napisałem program do katalogowania oparty właśnie na VTV).


Program to zbiór zer i jedynek ułożonych tak, żeby denerwować użytkownika.

Pozostało 580 znaków

2007-04-08 17:51
0

Mozesz mi napisac, w czym mi pomoze ten komponent, oprocz prezentacji danych?

Pozostało 580 znaków

2007-04-08 18:04
0

A sprawdziłeś najpierw ten komponent? Bo skoro ktoś Ci napisał podpowiedź, to powinieneś sprawdzić co to jest... Poza genialną prezentacją danych VTV posiada bardzo elastyczny (zależny całkowicie od użytkownika) system przechowywania danych. Trzeba TYLKO wejść na odpowiednią stronę w Internecie i TROCHĘ poczytać.

[EDIT] Dzięki temu będziesz mógł przechowywać w łatwy sposób chociażby ikony plików wykonywalnych. (Które nie zmienią się z nową wersją bo ciężko uaktualnić coś na płycie. :P)


Program to zbiór zer i jedynek ułożonych tak, żeby denerwować użytkownika.

Pozostało 580 znaków

2007-04-08 18:11
0

Nie chcialbym przerabiac teraz calego programu. Jestem na etapie dosc zaawansowanego konca :)
Sa jakies inne rozwiazania?

Problem rozwiazany.
Rozwiazanie zawarte jest na stronie http://www.awitness.org/delphi_pascal_tutorial/index.html - "Using the API to extract and then display icons".

Pozostało 580 znaków

2007-04-09 00:54
chłopski rozum
0

stwórz pusty plik o potrzebnym rozszerzeniu np w katalogu Temp.
Pobierz z niego ikonę i dodaj do listy, następnie usuń plik z Temp
Będziesz miał takie same ikony jakie masz w systemie dla kazdego rodzaju pliku.

Pozostało 580 znaków

2007-04-09 02:52
0
markac napisał(a)

Zapisywac ikonki wraz z info pliku do bazy tez mija sie z celem. Ikonka moze sie zmieniac wraz z nowymi wersjami programow zainstalowanych w systemie.

Myslalem, zeby sprawdzic w rejestrze aplikacje powiazane z danym rozszerzeniem pliku i włala.
Czy to jedyne wyjscie i czy dobrze mysle?

   SHGetFileInfo('.zip', FILE_ATTRIBUTE_NORMAL, sfi, SizeOf(sfi), SHGFI_USEFILEATTRIBUTES or SHGFI_ICON);

Co do exe to trzeba gromadzić w bazie, bo każdy exe ma inne rozszerzenie.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0