Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: CommonDialog
Tigrisek



Typ: neutral
Postów: 91
Zarejestrowany: Jul 2002
CommonDialog

jak zrobić CommonDialog by pokazywał tylko katalogi i w wyniku podawał katalog a nie konkretny plik?
A może jest jakaś inna kontrolka co to robi?

thx

07-05-2003 17:48
Pokaż profil Tigrisek  Wyślij email do Tigrisek        107040
Chudy
[TLHW]Wiktor



Typ: moderator
Postów: 574
Zarejestrowany: Aug 2002

W API-Guide przeczytaj sobie o funkcji SHBrowseForFolder.


_____________________________________________
Projekt "Thunder Cannons" nadchodzi...

07-05-2003 18:29
Pokaż profil Chudy  Wyślij email do Chudy   Odwiedź stronę Chudy       1220895
Tigrisek



Typ: neutral
Postów: 91
Zarejestrowany: Jul 2002

że niby gdzie?
w api-viever nie mam czegośtakiego jak SHBrowseForFolder

11-05-2003 22:52
Pokaż profil Tigrisek  Wyślij email do Tigrisek        107040
Ushy




Typ: neutral
Postów: 87
Zarejestrowany: Mar 2003

http://republika.pl/ushy

sciagnij kontrolke SystemDialogs..

najlepsze bedzie okienko BrowseForFolder


_____________________________________________
www.KURDE.pl

12-05-2003 00:04
Pokaż profil Ushy  Wyślij email do Ushy   Odwiedź stronę Ushy       3299912
Chudy
[TLHW]Wiktor



Typ: moderator
Postów: 574
Zarejestrowany: Aug 2002

Mi chodziło o program API-Guide który na przyszłość ci się przyda, a ściągnąć go możesz choćby tutaj: http://republika.pl/vbworks/download/apiguide.exe


_____________________________________________
Projekt "Thunder Cannons" nadchodzi...

12-05-2003 08:18
Pokaż profil Chudy  Wyślij email do Chudy   Odwiedź stronę Chudy       1220895
Lampart
RC



Typ: neutral
Postów: 11
Zarejestrowany: Mar 2005
CDialog

Common dialog ma właściwość FILENAME,jak wpiszesz tam *.bmp wyświetli tylko bmp , itd. Wpisz tam nieistniejące rozszerzenie.


_____________________________________________
Lampart :-)

30-03-2005 11:30
Pokaż profil Lampart  Wyślij email do Lampart   
hicks
raptor user



Typ: moderator
Postów: 279
Zarejestrowany: Apr 2003


jak zrobić CommonDialog by pokazywał tylko katalogi i w wyniku podawał katalog a nie konkretny plik?
A może jest jakaś inna kontrolka co to robi?

Tak jak mówił Chudy. Użyj funkcji API SHBrowseForFolder. Oto przykład z Api-Guide:

Private Type BrowseInfo
    hWndOwner As Long
    pIDLRoot As Long
    pszDisplayName As Long
    lpszTitle As Long
    ulFlags As Long
    lpfnCallback As Long
    lParam As Long
    iImage As Long
End Type
Const BIF_RETURNONLYFSDIRS = 1
Const MAX_PATH = 260
Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
Private Sub Form_Load()
    'KPD-Team 1998
    'URL: http://www.allapi.net/
    '
    Dim iNull As Integer, lpIDList As Long, lResult As Long
    Dim sPath As String, udtBI As BrowseInfo

    With udtBI
        'Set the owner window
        .hWndOwner = Me.hWnd
        'lstrcat appends the two strings and returns the memory address
        .lpszTitle = lstrcat("C:\", ""
        'Return only if the user selected a directory
        .ulFlags = BIF_RETURNONLYFSDIRS
    End With

    'Show the 'Browse for folder' dialog
    lpIDList = SHBrowseForFolder(udtBI)
    If lpIDList Then
        sPath = String$(MAX_PATH, 0)
        'Get the path from the IDList
        SHGetPathFromIDList lpIDList, sPath
        'free the block of memory
        CoTaskMemFree lpIDList
        iNull = InStr(sPath, vbNullChar)
        If iNull Then
            sPath = Left$(sPath, iNull - 1)
        End If
    End If

    MsgBox sPath
End Sub


Common dialog ma właściwość FILENAME,jak wpiszesz tam *.bmp wyświetli tylko bmp , itd. Wpisz tam nieistniejące rozszerzenie.

O ile pamiętam to do tego służy własność Filter. Po za tym jak wybierzesz folder? Klikając na niego poprostu do niego wejdziesz.


_____________________________________________
TLHW Clan member

30-03-2005 12:39
Pokaż profil hicks  Wyślij email do hicks   Odwiedź stronę hicks       2511367
Lampart
RC



Typ: neutral
Postów: 11
Zarejestrowany: Mar 2005


O ile pamiętam to do tego służy własność Filter. Po za tym jak wybierzesz folder? Klikając na niego poprostu do niego wejdziesz.



Filter to Ci tylko ten podpis pod nazwą wybranego pliku zmieni, ale dziękuję. Lubię takich krytyków jak ty


_____________________________________________
Lampart :-)

30-03-2005 13:10
Pokaż profil Lampart  Wyślij email do Lampart   
hicks
raptor user



Typ: moderator
Postów: 279
Zarejestrowany: Apr 2003


Filter to Ci tylko ten podpis pod nazwą wybranego pliku zmieni


Czy aby napewno? A spróbuj wywołać taki kod:

Private Sub Form_Load()
    With CommonDialog1
        .Filter = "Wszystkie pliki (*.*)|*.*"
        .ShowOpen
        .Filter = "Tajny format|*.bmp"
        .ShowOpen
        .Filter = "Tajny format|*.bmp|Wszystkie pliki (*.*)|*.*"
        .ShowOpen
    End With
End Sub

Zauważ, że za każdym razem widać inny zestaw plików...


_____________________________________________
TLHW Clan member

30-03-2005 17:35
Pokaż profil hicks  Wyślij email do hicks   Odwiedź stronę hicks       2511367
Lampart
RC



Typ: neutral
Postów: 11
Zarejestrowany: Mar 2005

A, jednak. Dzięx. Już będę wiedział jak tego używać. Może poprzez wpisywanie w polu właściwości nic nie zmieniało... MAM GŁUPIEGO KOMPA!!!


_____________________________________________
Lampart :-)

31-03-2005 10:29
Pokaż profil Lampart  Wyślij email do Lampart   
Wszystkich odpowiedzi: 9 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1