Tree View Menu örneği

1 2 3 4 5 6
19/10/2016, 13:30

atoz112

sayın kadirdursun,

bahsettiğiniz talebinize yönelik olarak;

ilgili uygulamanın basFunctions adlı fonksiyonunun içeriğindeki kodları tamamen iptal edip yerine,

Option Compare Database
Option Explicit




#If VBA7 Then








Private Declare PtrSafe Function GetSystemMetrics Lib "user32" (ByVal nIndex As Longptr) As Longptr




Private Const WM_SETICON = &H80
Private Const IMAGE_ICON = 1
Private Const LR_LOADFROMFILE = &H10
Private Const SM_CXSMICON As Longptr = 49
Private Const SM_CYSMICON As Longptr = 50




Private Declare PtrSafe Function LoadImage Lib "user32" Alias "LoadImageA" (ByVal hInst As Longptr, ByVal lpsz As String, ByVal un1 As Longptr, ByVal n1 As Longptr, ByVal n2 As Longptr, ByVal un2 As Longptr) As Longptr
Private Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Longptr, ByVal wMsg As Longptr, ByVal wParam As Longptr, LParam As Any) As Longptr




'Global Referencing
Public Dte As Date
Public CRef As Longptr




#Else




Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long




Private Const WM_SETICON = &H80
Private Const IMAGE_ICON = 1
Private Const LR_LOADFROMFILE = &H10
Private Const SM_CXSMICON As Long = 49
Private Const SM_CYSMICON As Long = 50




Private Declare Function LoadImage Lib "user32" Alias "LoadImageA" (ByVal hInst As Long, ByVal lpsz As String, ByVal un1 As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal un2 As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, LParam As Any) As Long




'Global Referencing
Public Dte As Date
Public CRef As Long




#End If




Public Function SetFormIcon(hWnd As Long, strIconPath As String) As Boolean
Dim lIcon As Long
Dim lResult As Long
Dim X As Long, Y As Long




X = GetSystemMetrics(SM_CXSMICON)
Y = GetSystemMetrics(SM_CYSMICON)
lIcon = LoadImage(0, strIconPath, 1, X, Y, LR_LOADFROMFILE)
lResult = SendMessage(hWnd, WM_SETICON, 0, ByVal lIcon)




End Function




Function IsLoaded(ByVal strFormName As String) As Boolean




    Const conObjStateClosed = 0
    Const conDesignView = 0




    If SysCmd(acSysCmdGetObjectState, acForm, strFormName) <> conObjStateClosed Then
        If Forms(strFormName).CurrentView <> conDesignView Then
            IsLoaded = True
        End If
    End If




End Function

yukarıdaki kodları dahil ediniz.

bilginize...iyi çalışmalar,saygılar.
19/10/2016, 13:41

kadirdursun

Yine aynı hatayı verdi.
19/10/2016, 14:19

atoz112

Sayın kadirdursun,

Eklediğiniz hata iletilerine yönelik olarak;
Eğer sadece bu değil birçok Treview örneklerinde benzer hatayı alıyorsanız,muhtemelen bir ihtimal,
referanslarda yer alan Microsoft Windows Common Control 6.0 (SP6) (MSCOMCTL.OCX adlı ActiveX denetimi) ya zarar görmüş ya da kendi sürümünüze göre olanını internet ortamında tedarik ederek iptal edip tekrar kurulumunu sağlamanız çözüme etki edebilir kanısındayım.

MSCAL.OCX, MSCAL.CNT, MSCAL.DEP ve MSCAL.HLP dosyaların da olması gerekiyor bu denetim için.

İlgili referans dosyasını,

eğer 32 bit ise C:\Windows\System32 klasörü içerisine,
eğer 64 bit ise C:\Windows\SysWOW64 klasörü içerisine yerleştiriniz.


32 bit için ÖRNEK
Regsvr32 "C:\Windows\System32\MSCOMCTL.OCX"

64 bit için ÖRNEK
Regsvr32 "C:\Windows\SysWOW64\MSCOMCTL.OCX"

Bilginize…iyi çalışmalar,saygılar.
19/10/2016, 14:24

kadirdursun

Bunuda yaptım şimdi. yine olmadı.
19/10/2016, 17:12

atoz112

Sayın kadirdursun,

Alternatif çözüm olması adına;

1) Sayın Demiral Bey tarafından eklenen uygulamayı ve kendi eklediğiniz uygulamayı aynı anda açınız.

    Her iki uygulamanın da frmProducts adlı formlarını Tasarım olarak açınız.

2) Kendi uygulamanızdaki bu formda yer alan ImgList (formun orta alt kısmında ve içiçe geçmiş dosya ya da zarf görselinde) ve TreeCtl (formun solunda Box33 adlı dikdörtgenin içerisinde) adlı denetimlerini siliniz.

3) Konunun örneğindeki frmProducts adlı formda yer alan ImgList ve TreeCtl adlı denetimlerini kendi uygulamanıza kopyalayınız (kopyala / yapıştır ile).

Bu şekilde uygulamayı kaydedip tekrar çalıştırınız.

Bilginize…iyi çalışmalar,saygılar.
19/10/2016, 17:34

atoz112

Sayın kadirdursun,

sizin eklediğiniz örnek uygulama incelendiğinde,aşağıdaki hususlara yönelik olarak açıklamaları gerektirmektedir.

1)
Uygulamanız çalıştırıldığında aşağıdaki,sizin bu konuda sorun olarak belirtip hata olarak danıştığınız ileti ekranda belirmiştir.



2)
Hatanın neden olduğu satır ise,resimde yer almaktadır.



burada,kast edilen; TreeCtl adlı denetimin olmadığı yönünde.

Aslında,bu hatayı vermesinin nedeni de,29.mesajda yer alan açıklamalarda olduğu gibi;bu denetimin içeriği BOŞ durumdadır.aynı şekilde, ImgList adlı denetim de Boş.

Sanırım bir ihtimal,yeni bir  uygulama niteliğinde oluştururken bu denetimler de aktarıldığında boş kalmış olabilir.

3)
TreeCtl adlı denetimin içeriğini gösteren resim ektedir.



Bu içeriğe ulaşmak için denetimin üzerine sağ tuşa basınız ve TreeCtl Nesnesi – PROPERTIES ifadesini seçiniz.

4)
Bu da,ImgList adlı denetimin içeriğidir.



Bu içeriğe ulaşmak için denetimin üzerine sağ tuşa basınız ve ImgList Nesnesi – PROPERTIES ifadesini seçiniz.

Bilginize…iyi çalışmalar,saygılar.
1 2 3 4 5 6