Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: OLEDragDrop-ongelma

miiro [07.08.2005 18:39:20]

#

Miten saisin ohjelmani toimimaan niin, että kun sen päälle drag&droppaa tiedoston, se näyttäisi sen nimen ja polun?
Esim drag&droppaan formille c:/desktopista vaikka filu.filin niin vaikka label1:n captioniksi tulisi C:\Desktop\filu.fil ?

BadSource [08.08.2005 07:04:40]

#

Kokeile seuraavaa...

Private Sub Form_OLEDragDrop(Data As DataObject, _
                             Effect As Long, _
                             Button As Integer, _
                             Shift As Integer, _
                             X As Single, _
                             Y As Single)
On Error GoTo TheEnd

    Label1.Caption = Data.Files.Item(1)

TheEnd:
End Sub

CyantLeap [08.08.2005 19:27:24]

#

En viitti samasta aiheesta uutta ketjua aloittaa joten kysyn tähän että mitenkäs tuon saman saa kuvakkeeksi formille?

BadSource [09.08.2005 08:19:06]

#

Haluatko kuvakkeen siis PictureBox:n formille vai formin vasempaan ylänurkkaan? Formille sen saat seuraavalla koodilla, josta soveltamalla sen saa myös sinne ylänurkkaan...

Option Explicit

Private Const MARGINAL = 60

Private Declare Function DrawIcon Lib "user32" _
                  (ByVal hdc As Long, _
                   ByVal x As Long, _
                   ByVal y As Long, _
                   ByVal hIcon As Long) As Long
Private Declare Function ExtractIcon Lib "shell32.dll" _
                  Alias "ExtractIconA" _
                  (ByVal hInst As Long, _
                   ByVal lpszExeFileName As String, _
                   ByVal nIconIndex As Long) As Long

Private PicIndex As Integer

Private Sub Form_OLEDragDrop(Data As DataObject, _
                             Effect As Long, _
                             Button As Integer, _
                             Shift As Integer, _
                             x As Single, _
                             y As Single)
On Error GoTo TheEnd
    Dim res As Long

    res = ExtractIcon(Me.hWnd, Data.Files.Item(1), 0) 'etsitään ikoni
    If res > 1 Then 'jos ikoni löytyy, niin...
        PicIndex = PicIndex + 1
        Load Picture1(PicIndex)
        Picture1(PicIndex).Picture = LoadPicture()
        Picture1(PicIndex).AutoRedraw = True
        Picture1(PicIndex).AutoSize = True
        Picture1(PicIndex).Visible = True 'varmistetaan, että ikoni näkyy käyttäjälle oikein
        res = DrawIcon(Picture1(PicIndex).hdc, 0, 0, res) 'ladataan ikoni sille varattuun PictureBox:in
        Picture1(PicIndex).Move _
          MARGINAL + ((PicIndex - 1) Mod 5) * Picture1(0).Width, _
          MARGINAL + ((PicIndex - 1) \ 5) * Picture1(0).Height
    Else 'virhe ikonin suhteen
        MsgBox "Wrong file-type or no icons were found in the file.", vbInformation
    End If
TheEnd:
    If Err.Number <> 0 Then Err.Clear
End Sub

CyantLeap [09.08.2005 12:23:25]

#

Kiitos.. :) tuosta on apua :)

miiro [12.08.2005 20:45:14]

#

Juu. Kiitos paljon!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta