Przeglądarka graficzna

0

Mam dwa pytania:

  1. Jak zrobić paski przewijania w komponencie TImage?
  2. Jak zrobić żeby po kliknięcu na przycisk(lub przesunięciu scrolla) załadował się następny plik graficzny w danym folderze?

Jak by ktoś mógł mi pomóc...

0
  1. Połóż na Scroll Boxie
  2. OnScroll... poszukaj
0

Ad 1. Nie chce mi się całego kodu rzucać, ale taki zarys, jakby można było to zrobić. Tworzysz panel, w nim Image, i dwa ScrollBar'y. Teraz w ScrollBar1Change (nie jestem pewien, ale chyba tak) Image1.Top:=ScrollBar1.Pos; itp. Nie wiem, czy te nazwy są poprawne, trzebaby poszukać w helpie, piszę absolutnie z głowy. W procedurze ładującej z pliku ScrollBar1.MaxPos:=Panel1.ClientHeight-Image1.Height.
To wszystko przy założeniu, że ScrollBar1 jest pionowy. Podobnie z poziomym (zastąp Height Width, a Top Left. Wiem, że to się gramatycznie kupy nie trzyma, ale może coś pomoże...

Ad 2. FindFirst + FindNext + FindClose + F1. Jeśli chodzi o stwierdzenie "plik graficzny", to ciężko, bo nie znam komponentu, który pokazywałby dowolny obrazek, ale bitmapy możesz... Następnie TBitmap.LoadFromFile + F1.
No i powinno pomóc...

0

Dzięki ludzie. Jeśli chodzi o pierwszy punkt to Jonny_Bit bardziej mi pomógł. A drugim zajmę się później ale czekam na inne propozycje.

0

Ad. 2
Tu muszą wystąpić FindFirst, FindNext itd. Przy ich pomocy przy ładowaniu pierwszego obrazu robisz liste wszystkich plików graficznych w konkretnym folderze. Pózniej przy przeskakiwaniu do następnego obrazu Image.Picture.LoadFromFile(Pliki[n]), gdzie pliki[] to ta lista, a n to kolejny (bądź poprzedni) numer.
Z BMP nie ma problemu, z JPG trzeba w uses dodać JPEG, natomiast z innymi to musisz ściągnąć jakieś dodatkowe biblioteki (np Jedi http://jvcl.sourceforge.net).

0

No właśnie nie jestem obeznany z tymi funkcjami szukającymi ale się ich szybko naucze tylko czy można wyszukiwać pliki tylko o danym rozszerzeniu?

0

Gdyby nie można było, to by to nie były funkcje wyszukujące :) Sugeruję zajrzeć do Encyklopedii, tam jest wszystko wyjaśnione jak należy...

0

Hey! Masz cały art o wyszukiwaniu! (chyba). Ale opiszę:

var
  LP: Integer;
  SR: TSearchRec;
begin
LP := FindFirst(ExtractFilePath(Application.ExeName) + '*.*', faAnyFile, SR);  //pamiętaj, aby dodać '*.*' lub jakieś rozszerzenie. Niedawno z półtoreg godzinki się męczyłem, czemu to nie chce szukać, a to jest problem właśnie tego, musi być koniecznie rozszerzenie.
while (LP = 0) do
begin
  if ((SR.Name <> '..') and (SR.Name <> '.')) then
  begin
    {tutaj w SR.Name nasz nazwę pliku (bez ścieżki) (z rozszerzeniem)}
  end;
  LP := FindNext(SR);
end;
FindClose(SR);

Na drugie pytanie dostałeś już chyba odpowiedź :P.

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