Jak zrobić przyciski do przewijania zdjęć w Delphi?

0

Witam zrobiłęm sobie w delphi taką mini przeglądarkę zdjęć ale nie wiem jak zrobić przyciski po naciśnięciu których wyświetli się następne/poprzednie zdjęci z wybranego folderu. Pomoże ktoś?

4

i czego oczekujesz od nas?, że ktoś wyciągnie swoją szklaną kule i zobaczy coś tam naprodukował i powie ci co zrobić, żeby działało???

0

nie oczekuje zeby mi podpowiedziec z jakiego komponentu skorzystac albo cos w tym stylu to dalej sprobuje cos samemu ogarnac. Bo mi nie ma co dzialac skoro nie mam pomyslu jak zrobic przerzucanie obrazkoz za pomoca przycisku

0

nie oczekuje zeby mi podpowiedziec z jakiego komponentu skorzystac albo cos w tym stylu

No to czego Ty oczekujesz...?

Bo mi nie ma co dzialac skoro nie mam pomyslu jak zrobic przerzucanie obrazkoz za pomoca przycisku

Nie masz pomysłu czy nie wiesz jak to zrobić \ jakich zmiennych, procedur czy funkcji użyć?

0

no po prostu nie wiem czego użyć. W swojej przeglądarce użyłem DirectoryListBoxa FileListBoxa i Image, a procedura wygląda tak:

 procedure TForm1.FileListBox1Change(Sender: TObject);
var
 x:string;
begin 
 x:= FileListBox1.FileName; 
 if x = '' then Exit;
 Image1.Picture.LoadFromFile(x);
end;

I moge sobie wybrać jaką chcę ścieżkę/jaki folder z dysku przez DirectoryListBoxa i potem zmieniać obrazki jakie są wyświetlane w FileListBox, a chciałbym zrobić jakiś przycisk po naciśnięciu którego będą się wyświetlać następne obrazki z folderu. I tu moje pytanie czy podpowiecie mi coś jak to zrobić?

1

no po prostu nie wiem czego użyć.

Takie rzeczy omawia się jeszcze w fazie projektowania aplikacji; Chyba, że piszesz z pamięci i na bieżąco "wymyślasz" nowe funkcjonalności programu, to nie mogłeś tego ustalić wcześniej;

I moge sobie wybrać jaką chcę ścieżkę/jaki folder z dysku przez DirectoryListBoxa i potem zmieniać obrazki jakie są wyświetlane w FileListBox, a chciałbym zrobić jakiś przycisk po naciśnięciu którego będą się wyświetlać następne obrazki z folderu. I tu moje pytanie czy podpowiecie mi coś jak to zrobić?

Na mój gust (choć nie korzystam ani z FileListBox ani z DirectoryListBox bo zawsze programuję swoje) to jeżeli chcesz za pomocą jakichś przycisków ładowac grafikę do TImage, to musisz mieć kilka rzeczy;

Jeżeli masz komponent do przedstawiania np. drzewa katalogów (przykład: TShellTreeView) to możesz w łatwy sposób pobrać ścieżkę aktualnie zaznaczonego katalogu (bądź napędu); Jeżeli masz komponent do przedstawienia zawartości wybranego wcześniej katalogu pod kątem filtrów wyszukujących (przykład: TShellListView) to możesz w łatwy sposób pobrać także nazwę pliku, który jest zaznaczony (w Twoim przypadku MultiSelect powinno być wyłączone); Mając te dwie informacje masz podstawy do załadowania grafiki z pliku do komponentu;

Natomiast jak będzie wyglądać mechanizm przeglądania zawartości tych plików (tu: minigaleria) musisz sobie sam odpowiedzieć, bo nikt Ci tu nie powie w jaki sposób masz to zrobić; Ty sam musisz się zastanowić jak to ma działać i czego będziesz potrzebował;

Szybki przykład: jeśli do przeglądania zdjęć użyjesz dwóch przycisków (dowolnej klasy, np. TButton czy TBitBtn) będziesz musisał przechowywać gdzieś listę plików, które zawarte są w zaznaczonym wcześniej katalogu; Także będziesz potrzebował przechować gdzieś informacje o aktualnie wyświetlonym pliku (można skorzystać z właściwości ItemIndex bez deklarowania dodatkowych zmiennych); Mając z kolei te informacje wystarczy tylko oprogramować przyciski do zmiany obrazu; Tu też będziesz się musisał zastanowić w jaki sposób będzie działał ten mechanizm; Przykład (pseudokod):

Przycisk btnPoprzedni

  1. Pobierz aktualny indeks wyświetlonego obrazu
  2. Sprawdź indeks
    Indeks > 0: Zmniejsz wartość indeksu
    Indeks = 0: Ustaw indeks na ostatni plik (Ilość plików - 1)
  3. Zaznacz plik na liście o ustalonym indeksie
  4. Wczytaj grafikę z zaznaczonego pliku do komponentu

Przycisk btnNastępny

  1. Pobierz aktualny indeks wyświetlanego obrazu
  2. Sprawdź indeks
    Indeks < Ilość plików - 1: Zwiększ wartość indeksu
    Indeks = Ilość plików - 1: Ustaw indeks na pierwszy plik (0)
  3. Zaznacz plik na liście o ustalonym indeksie
  4. Wczytaj grafikę z zaznaczonego pliku do komponentu

Jeżeli natomiast koniecznie chcesz to przedstawić w FilesListBox, to kod odpowiedzialny za zmianę grafiki raczej zrobiłbym nie w OnChange, ale w OnMouseDown wcześniej oczywiście sprawdzając, czy indeks w klikany item jest różny od 0 (funkcja ItemAtPos), a dopiero później ładując grafikę; Musisz obsłużyć kilka warunków sprawdzających istotne informacje, ale nie napiszę Ci jakie, żeby nie odbierać Ci przyjemności;

0

ok dzieki bardzo poradziłem sobie skorzystałem z ShellListView. Świetnie mi to opisałes dzięki ;)

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