[ dellco @ 23.10.2008. 00:07 ] @
Hocu da napravim program za pregled slika, nesto najprostije-forma na kojoj je picture box u koji se prikazuje slika.
Kako da napravim da moj program otvara jpg fajlove duplim klikom na njih iz windows explorera?
Drugacije receno kao sto klikom na mp3 fajl se otvara winamp, tako klikom na jpg zelim da se otvori moj exe za pregled slika i da prikaze sliku.
[ stefanpn @ 23.10.2008. 00:28 ] @
Pogledaj u Object Browser-u VBA -> Interaction -> Command

Command() - Ta f-ja ti vraca argument sa komandne linije u stringu.
[ Eurora3D Team @ 23.10.2008. 00:30 ] @
Podesi windows da otvara jpg fajlove tim programom ...
Desni klik na jpg pa Open With pa Choose Program pa nadji svoj program i cekiraj Always use the selected program ... i Ok
A program treba da procita komandnu liniju (sa Command) i da otvori sliku ...
[ dellco @ 24.10.2008. 23:05 ] @
Molim vas malo pace koda kao primer, posto mi nije bas jasno ono sa Command funkcijom.
Kako da delarisem i koju promenljivu i kako bi izgledao string koji vraca funkcija?
[ Aleksandar Vasic @ 25.10.2008. 07:46 ] @
koristi pretragu, parce kôda ces naci sigurno u jos najmanje 5 tema
[ Rollback @ 26.10.2008. 00:42 ] @
Dobro je i postaviti opciju u meniju kad ides desni klik na jpg sliku i odaberes tvoj program iz menija... inace, sve ovo moze da se uradi sa kreiranjem par kljuceva i podkljueva u registry bazi... mozes recimo, i dodeliti neku posebnu ikonicu jpg slikama (ikonicu tvog programa ili neceg drugog).

I naravno, kao sto je vec receno, hvatas putanju slike pomocu Command() funkcije kako bi tvoj program prikazao sliku koju si odabrao desnim ili dvoklikom, inace, tvoj program, ne bi "znao" koju si sliku trenutno odabrao.
[ Eurora3D Team @ 26.10.2008. 19:44 ] @
Evo primer
Code:

Private Sub Form_Load()
Dim Cmd As String
'dobijanje komandne linije
Cmd = Command
'uklanjanje levog znaka navoda ako ga ima
If Left(Cmd, 1) = Chr(34) Then Cmd = Right(Cmd, Len(Cmd) - 1)
'uklanjanje desnog znaka navoda ako ga ima
If Right(Cmd, 1) = Chr(34) Then Cmd = Left(Cmd, Len(Cmd) - 1)
'komandna linija je u cmd

Me.Picture = LoadPicture(Cmd)
Debug.Print Cmd
End Sub
[ dellco @ 04.11.2008. 22:32 ] @
OK a sad kako da mi se pojavi slika ako novu sliku prevucem na otvorenu formu tj na pokrenuti moj exe(drag and drop)?
[ Eurora3D Team @ 05.11.2008. 11:00 ] @
Ovako mozes da dobijes imena fajlova koji su "pusteni" na formu
Code:


Private Sub Form_Load()
Me.OLEDropMode = 1 ' ukljucujemo OLEDragDrop , ovo moze da se podesi i u properties prozoru forme
End Sub

Private Sub Form_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
'Ovde je fajl (ili fajlovi) pusten na formu
'Da bi izbegli gresku u LoadPicture ako nije pustena slika ovde cemo da stavimo
On Error Resume Next

If Data.GetFormat(vbCFFiles) Then ' ako su fajlovi
Dim File As Variant
For Each File In Data.Files ' trazimo ime fajla
Debug.Print File ' ispis
Me.Picture = LoadPicture(File) ' ucitavamo sliku ' ili idemo na neku svoju funkciju ... ime fajla je u File
Next File
End If

End Sub

Private Sub Form_OLEDragOver(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single, State As Integer)
'Proveravamo format podataka dok traje prevlacenje preko forme i podesavamo kursor, ova subrutina nije neophodna ...
If Data.GetFormat(vbCFFiles) Then Effect = vbDropEffectCopy And Effect: Exit Sub
Effect = vbDropEffectNone
End Sub