/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Gem Controls fra Form i registry - Hvordan~
Fra : bnj


Dato : 11-10-01 13:11

Jeg har et problem med at gemme controls fra en form til registry - PÆNT -
altså på en ikke hackeragtig måde!

Ikke noget med On Error Resume Next o.s.v.!!
****************************************************
PROBLEM:
Jeg vil gerne gemme controls, med et navn hvor deres eventuelle "index"
indgår!
Men jeg kan ikke teste Controls fra Forms.Control for om de er arrays eller
ikke!..

f.eks:
Dim Opt as OptionButton
Dim OptArray(2) as OptionButton
Dim ControlName As String
ControlName = OptArray.name & CStr(OptArray.index)
...
det går fint. men..

ControlName = Opt.name & CStr(Opt.index)

går ikke fint, da Index ikke er defineret (det er jo ikke et array).

derfor kan man benytte:

if IsArray(Opt) then
ControlName = Opt.name & CStr(Opt.index)
Else
ControlName = Opt.name & "0"
End if

MEN!
IsArray virker ikke på Object eller på Control typen (tilsyneladende)


********************************************
Her er lidt mere kode der forklarer sammenhængen:

Public Sub GetFormControls(frm As Form)
Dim c As Control
Dim name As String

For Each c In frm.Controls
If c.Tag <> "X" Then ' Use tag to indicate that the control should not
be saved
' Virker IKKE
**************
If Not IsEmpty(c.Index) Then
name = c.name & c.Index
Else
name = c.name
End If

' Virker heller IKKE
******************
If IsArray(c) Then
name = c.name & c.Index
Else
name = c.name
End If
Debug.Print "Get:" & name

If TypeOf c Is OptionButton Then
c.Value = GetSetting(App.Title, frm.name, name, c.Value)
End If

If TypeOf c Is CheckBox Then
c.Value = GetSetting(App.Title, frm.name, name, c.Value)
End If
'.
' og så videre
'.
End If
Next c

End Sub





 
 
Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408889
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste