Mam dwa pytania:
- Jak zrobić paski przewijania w komponencie TImage?
- 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...
Mam dwa pytania:
Jak by ktoś mógł mi pomóc...
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...
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.
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).
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?
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...
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.