Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ShellListView on neki over?

[es] :: Pascal / Delphi / Kylix :: ShellListView on neki over?

[ Pregleda: 1784 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

matobj

Član broj: 72323
Poruke: 73
*.adsl.net.t-com.hr.



Profil

icon ShellListView on neki over?13.10.2010. u 09:42 - pre 163 meseci
Kako da dobijem path kada sam misem iznad neke mape. Dakle mapa u tom trenutku nije selektirana. Htio bi napraviti dragdrop. Dakle izaberem nekakve datoteke npr. iz jednog shelllistview-a i to zelim prebaciti u drugi.
E problem je kako sada iz tog drugog dobiti putanju kada sam iznad neke mape ili diska ..?

Ne treba biti onMouseOver - bilo koji sistem, bitno mi je da saznam putanju prije nego sto pustim datoteke na tu mapu ili disk.

[Ovu poruku je menjao matobj dana 13.10.2010. u 11:04 GMT+1]
 
Odgovor na temu

Milos D
Beograd

Član broj: 5621
Poruke: 280
*.adsl-a-8.sezampro.rs.



+1 Profil

icon Re: ShellListView on neki over?13.10.2010. u 12:05 - pre 163 meseci
Treba ti OnDragOver event u kojem ćeš koristiti ListView.GetItemAt (X,Y) da bi video iznad čega je cursor.
 
Odgovor na temu

matobj

Član broj: 72323
Poruke: 73
*.adsl.net.t-com.hr.



Profil

icon Re: ShellListView on neki over?13.10.2010. u 16:16 - pre 163 meseci
Ma probao sam ovako nesto, ali mi ne radi :(

Code:
var
  p: TPoint;
  item: TListItem;
begin
  GetCursorPos(p);
  p := ShellList.ScreenToClient(p);
  item := ShellList.GetItemAt(p.X, p.Y);
  if item <> nil then
    Label9.Caption := item.Caption;
end;
 
Odgovor na temu

Milos D
Beograd

Član broj: 5621
Poruke: 280
*.adsl-a-5.sezampro.rs.



+1 Profil

icon Re: ShellListView on neki over?13.10.2010. u 17:29 - pre 163 meseci
OnDragOver ti daje lokalne koordinate tj client X i Y, njih upotrebiš za GetItemAt (X, Y) i mora da radi.
 
Odgovor na temu

matobj

Član broj: 72323
Poruke: 73
*.adsl.net.t-com.hr.



Profil

icon Re: ShellListView on neki over?13.10.2010. u 18:15 - pre 163 meseci
Posto mi je to ocito malo teze za shvatit :) moze li kakav jednostavni primjer ako nije problem?

Moze i link na neki primjer - nije frka :)

Unaprijed jedno veliko hvala!
 
Odgovor na temu

Milos D
Beograd

Član broj: 5621
Poruke: 280
*.adsl-a-2.sezampro.yu.



+1 Profil

icon Re: ShellListView on neki over?14.10.2010. u 11:46 - pre 163 meseci
Nemam isečak stvarnog koda, ali ovako bi trebalo da radi:

Code:

procedure Tform1.ShellListDragOver(Sender, Source: TObject; 
                         X, Y: Integer; State: TDragState; var Accept: Boolean);
var
  item: TListItem;
begin

  item := ShellList.GetItemAt(X, Y);

  if item <> nil then
    Label9.Caption := item.Caption;

  Accept := (Source = neka_kontrola_iz_koje_počinje_drag) 
                and (item<>nil) 
                and (OdabraniItemMožeBitiDropTarget(item));

end;
 
Odgovor na temu

matobj

Član broj: 72323
Poruke: 73
*.adsl.net.t-com.hr.



Profil

icon Re: ShellListView on neki over?14.10.2010. u 13:47 - pre 163 meseci
Na zalost to mi nije pomoglo. Ja bi htio da na ovom label9.Caption u trenutku kada mišem prelazim preko neke mape ili diska dobijem naziv te mape ili diska.
 
Odgovor na temu

Milos D
Beograd

Član broj: 5621
Poruke: 280
*.adsl-a-1.sezampro.yu.



+1 Profil

icon Re: ShellListView on neki over?14.10.2010. u 18:11 - pre 163 meseci
Prilikom drag&drop, ili uvek? Ako uvek, onda umesto OnDragOver upotrebi OnMouseMove od ListView i izbaci onu poslednju naredbu koja radi Accept := jer toga naravno nema u OnMouseMove
 
Odgovor na temu

matobj

Član broj: 72323
Poruke: 73
*.adsl.net.t-com.hr.



Profil

icon Re: ShellListView on neki over?14.10.2010. u 19:30 - pre 163 meseci
Ne na žalost ni na onMouseMove to ne radi :( Jednostavno ne kužim ...

Code:
procedure TMainForm.ShellListMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  item: TListItem;
begin
item := ShellList.GetItemAt(X, Y);
if item <> nil then
Label9.Caption := item.Caption;
end;
 
Odgovor na temu

Milos D
Beograd

Član broj: 5621
Poruke: 280
*.adsl-1.sezampro.yu.



+1 Profil

icon Re: ShellListView on neki over?15.10.2010. u 15:12 - pre 163 meseci
Probao sam sa obicnim TListView i radi.

Probaj trace. Startuj program, stavi cursor na neki od item-a, predji sa alt+tab u delfi, stavi breakpoint (F5) na pocetak OnMouseMove, alt+tab nazad u tvoj program (sve to bez pomeranja misa da bi strelica ostala na istom mestu) i trebalo bi da te vrati u delfi pa vidi sta se desava, da li se event uopste poziva, da li su X i Y koordinate tacne, da li nalazi item, da li je to prava labela u koju upisujes...
 
Odgovor na temu

matobj

Član broj: 72323
Poruke: 73
*.adsl.net.t-com.hr.



Profil

icon Re: ShellListView on neki over?16.10.2010. u 07:59 - pre 163 meseci
Daj molim te probaj sa TShellListView - taj mi je bitan i taj me zanima. Pa mi javi ako nije frka.
 
Odgovor na temu

Milos D
Beograd

Član broj: 5621
Poruke: 280
*.adsl-1.sezampro.yu.



+1 Profil

icon Re: ShellListView on neki over?16.10.2010. u 11:03 - pre 163 meseci
Izgleda da TListItem.caption nije upotrebljiv kod te komponente, ali mozes ovako:

Code:

procedure TformMain.ShellListView1MouseMove
              (Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
  item: TListItem;
  f: TShellFolder;
begin
  item := ShellListView1.GetItemAt(x, y);
  if item<>nil
     then begin
            f := ShellListView1.Folders[item.index];
            label9.Caption := f.DisplayName;
          end;
end;
 
Odgovor na temu

matobj

Član broj: 72323
Poruke: 73
*.adsl.net.t-com.hr.



Profil

icon Re: ShellListView on neki over?16.10.2010. u 12:44 - pre 163 meseci
To to to to to to :)
To je to - zahvaljujem na ulozenom trudu :)
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: ShellListView on neki over?

[ Pregleda: 1784 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.