Oppure

Loading
08/03/09 15:14
ffranco
Ciao a tutti. Mi sono da poco avvicinato al mondo di visual basic 6 ed ho realizzato un banale progetto a cui si accede attraverso la digitazione di una password. Il programma funzione alla perfezione in ambiete VB6. Ho quindi creato il file .exe e, attraverso la creazione guidata di pacchetti d'installazione offerta da vb, ho creato il mio pacchetto. Dopo aver installato il mio programma l'ho avviato rilevando che, dopo aver immesso la password attraverso l'apposita form, il programma si blocca. Qualcuno sa indicarmi dove ho sbagliato!!
Grazie
aaa
08/03/09 16:01
tippolo
Postato originariamente da ffranco:

Ciao a tutti. Mi sono da poco avvicinato al mondo di visual basic 6 ed ho realizzato un banale progetto a cui si accede attraverso la digitazione di una password. Il programma funzione alla perfezione in ambiete VB6. Ho quindi creato il file .exe e, attraverso la creazione guidata di pacchetti d'installazione offerta da vb, ho creato il mio pacchetto. Dopo aver installato il mio programma l'ho avviato rilevando che, dopo aver immesso la password attraverso l'apposita form, il programma si blocca. Qualcuno sa indicarmi dove ho sbagliato!!
Grazie

Premesso che è sconsigliato utilizzare la creazione guidata di pacchetti d'installazione offerta da vb, potresti utilizzare per compilare i tuoi progetti InnoSetup o CyberInstaller. A parte questo il tuo problema credo che risieda nel progetto, dici che funziona bene nell'IDE di VB6, hai provato a lanciare l'eseguibile creato da VB6 per vedere se funziona?
Magari se postassi il codice che utilizzi nel commandbutton per poter accedere al programma dopo aver inserito la password sarebbe piu semplice risponderti.
aaa
09/03/09 15:41
ffranco
l'eseguibile funziona alla perfezione
aaa
09/03/09 15:55
GrG
prova ad usare un programma + moderno per creare i pacchetti d'installazione... e vedi se il problema ti si ripresenta...
aaa
09/03/09 16:36
ffranco
ho usato CyberInstaller studio ed il problema permane.
aaa
09/03/09 16:41
GrG
mmm... comunque per miglior chiarezza se puoi mostar il codice del button
aaa
09/03/09 19:31
ffranco
credo che il problema sia in un Array filtrato. Posto il codice:
Private Sub prova1()
On Error Resume Next

Dim MyColl As Collection
Dim X As Integer, j As Integer
Dim Duplicati As Single

Set MyColl = New Collection
For X = LBound(MyArray) To UBound(MyArray)
'Cerco d'aggiungere l'elemento come chiave alla collection:
MyColl.Add 0, CStr(MyArray(X))
'La chiave esiste già, quindi è un duplicato la inserisco nella List2:
If Err Then
List2.AddItem MyArray(X)
' Toglie i duplicati:
MyArray(X) = Empty
Duplicati = Duplicati + 1
Err.Clear
ElseIf Duplicati Then
'ricompatta l'array :
MyArray(X - Duplicati) = MyArray(X)
MyArray(X) = Empty
End If
Next

'Toglie dall'array i valori "empty" - Numeri doppi e tripli inseriti in List1:
If Duplicati Then
ReDim Preserve MyArray(LBound(MyArray) To UBound(MyArray) - Duplicati) As Single
End If

' Ordina i numeri singoli del vettore:
Call BubbleSort

' Rimuove da List2 i numeri doppi e li inserisce in List3:
Call RimuoviDupl(List2)

Set MyColl = Nothing
End Sub
'------------------------------------------------
' Ordina in senso crescente i singoli elementi contenuti nella Lbl:
Sub BubbleSort()

Dim ii As Integer, j As Integer, y As Integer, Temp As String, risult2 As String

For ii = UBound(MyArray, 1) To LBound(MyArray, 1) Step -1
For j = LBound(MyArray, 1) To ii - 1
'scambiare il ">" con "<" per ottenere un ordinamento decrescente:
If MyArray(j) > MyArray(j + 1) Then
Temp = MyArray(j)
MyArray(j) = MyArray(j + 1)
MyArray(j + 1) = Temp
End If
Next j
Next ii

' Visualizza i numeri singoli in una Lbl:
For y = 0 To UBound(MyArray)
risult2 = risult2 & Space(2) & MyArray(y)
Next y
' Label6(7).Caption = risult2
End Sub
'------------------------------------------------
' Rimuove i numeri doppi dalla List2 e li inserisce in List3:
Sub RimuoviDupl(LB As ListBox)
Dim c As New Collection
Dim X As Long
Dim y As String
Dim j As Integer
Dim jj As Integer
Dim NC As Single

On Error Resume Next

If LB.ListCount > 1 Then
For X = 0 To LB.ListCount - 1
y = LB.List(X)
c.Add y, y
If Err Then
List3.AddItem c.Item(y)
Err.Clear
End If
Next X

LB.Clear

For X = 1 To c.count
LB.AddItem c.Item(X)
Next X

' Elimina da List2 i numeri contenuti in List3 (Tripli):
For j = 0 To (List3.ListCount - 1)
NC = List3.List(j)
For jj = 0 To (List2.ListCount - 1)
If List2.List(jj) = NC Then
List2.RemoveItem (jj)
End If
Next jj
Next j
End If
Set c = Nothing
End Sub
aaa
09/03/09 19:40
GrG
mmmm... si ma io ti avevo chiesto il codice del button che ti fa procedere se la pass è corretta...
aaa