|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: May 2003
Messaggi: 1113
|
[VB] Moduli e Funzioni
raga ho creato un modulo nel mio progetto VisualBasic 6, ho però un problema ovvero se all'interno di una funzione che si trova nel modulo voglio effettuare un'operazione su una stringa con la funzione Mid, questa non funziona ed il VB mi restituisce questo errore:
"Invalid Procedure Call or Argument" questa è la mia procedure: Codice:
Public Function f_modflex(esadecimale$, valore, bit) Dim binario1 As String Dim binario2 As String Dim iLunghezza As Integer Dim iTemp As Integer binario2 = "0010" binario1 = "00000000" iLunghezza = Len(binario2) If iLunghezza < 8 Then iTemp = 9 - iLunghezza Mid(binario1, iTemp, iLunghezza) = binario2 Else binario1 = binario2 End If End Function Premetto che questa funzione è richiamata dalla mia FormPrincipale...help
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Non ricordo bene vb pero Mid è una funzione. Nel tuo codice stai cercando di esguagliare una chiamata di funzione ad una variabile
![]() ciao ![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: May 2003
Messaggi: 1113
|
praticamente la
Mid(binario1, iTemp, Lughezza) = binario2 va a sostituire in Binario1, all'altezza iTemp i caratteri che si trovano in Binario2, che è lungo ad esempio 3 Es. Binario1="00000000" Binario2="11" la nuova binario1 potrà essere ad esempio: Binario1="00110000" ho sostituito ad alcuni caratteri di binario1 quelli di binario2, nella form principale tutto mi funziona, ma appena la metto in un modulo va tutta rotoli.....help
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Inanzitutto impara a mettere i parametri come dio comanda e non come ti viene più voleco la scrittura del codice...
Per esempio: Public Function f_modflex(byval esadecimale as string, byval valore as integer, byval bit as integer) Poi vedi tu quale cambiare, il byval vuol dire che passi il valore alla funzione e questo (anche se cambia) non viene cambiamo all'uscita, il byref invece se dentro alla funzione lo cambi, all'uscita lo avrai cambiato... Anche la funzione ha un suo tipo, as integer, as string, nn so vedi tu altrimenti lui si prende tutti variant e impiega tempo prezioso a fare le tue operazioni!! Incomincia a fare così, io nn vedo sinceramente errori nella funzione, prova a vedere che la funzioni mid prenda dei valori giusti e nn vada a prendere numeri che nn centrano, altrimenti ti da quell'errore li!! Poi nn ho be capito come mai usi una function e nn ti torna indietro nessun valore... Bho, se magari mi spieghi bene quello che deve fare, possiamo costruirla assieme ![]()
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: May 2003
Messaggi: 1113
|
ok questo l'ho risolto....ho notato che se mettevo una determinata procedura nello stesso modulo andava tutto a quel paese....quindi mi è bastato lasciare qulla procedura nella form principale!
grazie per l'aiuto! :-)
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:20.