Przeglądarka jpg - problem z OnImageClick

0

Oto moja przyszla przegladarka jpg, mam problem z wywolaniem procedury KLIK za pomoca OnImageClick w procedurze rysuj, co powieniem zrobic zeby to dzialalo? Ogolnie chodzi mi o to zeby po kliknieciu na miniaturce pobrac sciezke do pliku.

Mam jeszcze jeden problem, jak zrobic zeby "ubic" wczytane obrazki do TScrollBox w chwili wybrania innego folderu na TShellTreeView, na razie dziala to tak, ze "na kupe" tworzone miniaturki zakrywaja te z poprzedniego folderu.

Tu mozna pobrac: http://lan.wseia.edu.pl/~konrad18527/temp/min2.rar

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, XPMan, ComCtrls, ShellCtrls, jpeg, Buttons;
      
type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    ShellTreeView1: TShellTreeView;
    Label2: TLabel;
    Button2: TButton;
    Image1: TImage;
    Edit1: TEdit;
    ScrollBox1: TScrollBox;

    procedure ShellTreeView1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public

    pliki:array [0..80] of string;
    pliki1:array [0..10,0..100] of string;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure Klik(sciezka:string);
begin
ShowMessage(sciezka);
end;


procedure rysuj(lewo:integer; wysokosc:integer; sciezka:string);
var
    Image: TImage;
begin
    Image := TImage.Create(form1.ScrollBox1);
    Image.Parent:=form1.ScrollBox1;
     Image.Width := 100;
     Image.Height := 100;
    Image.Proportional := true;
    Image.Center := true;
    Image.showHint := true;
    Image.Left := Lewo;
    Image.Top := Wysokosc;
    Image.Visible := true;
    Image.Picture.LoadFromFile(sciezka);
    Image.OnClick := Klik(sciezka);
end;


procedure TForm1.ShellTreeView1Click(Sender: TObject);
var
  sr: TSearchRec;
  listaplikow: Tstringlist;
  a,i, b, k: integer;
begin

Label2.Caption := ShellTreeView1.Path;
i:=0;
listaplikow:=TStringlist.create;

if FindFirst(ShellTreeView1.Path+'\*.jpg',$0000003F,sr)=0 then
   begin
   repeat
     if (sr.Name[1]<>'.') then pliki[i] := ShellTreeView1.Path+'\'+sr.name;
   i := i + 1;
   until findnext(sr)<>0;
   end;
sysutils.findclose(sr);
listaplikow.free;
i:=0;
for b:=0 to 80 do
 for a:=0 to 5 do
  if pliki[i] <> ''then
  begin
  pliki1[a][b] := pliki[i];
  i:=i+1;
  rysuj((a*110)+20,b*110,pliki1[a][b]);
  end;

end;
end.
0

Jeden problem rozwiazalem, pozostaje tylko ten blad z OnImageClick.

0

nałóż jeden image, kliknij na events, kliknij dwa razy na onclick, wpisz co tam chcesz, skopiuj nazwę z events, skasuj image, dopisz:

costam.Onclick := toCoSkopiowales;

to wersja najprostsza do zrozumienia a coś czuję że klasy są ci obce i raczej delphi otworzyłeś 20 min temu więc inaczej nie tłumaczę

ło żesz , nie popatrzałem, ty chcesz parametr przekazać do procedury
no to poczekaj jeszcze aż ktoś się zlituje i ci napisze gotowca, a przez ten czas możesz przeczytać jakiś kurs delphi to wszystko powinno być jasne

0

niestety ale musze sie zgodzic z przedmowca :| totalnie nie wiesz co to jest delphi :| to o co prosisz to sa podstawy bez ktorych NIE DA sie pisac programu... nawet 1 kursu nie przeczytales :]

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