Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Matrici di combo
Forum - Visual Basic 6 - Matrici di combo

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
davide89 (Normal User)
Newbie


Messaggi: 5
Iscritto: 12/12/2006

Segnala al moderatore
Postato alle 8:32
Sabato, 20/01/2007
ciao a tutti, ho un problema, devo gestire l'evento lostfocus in 10 combo, queste combo sn delle matrici ovvero combo(0), combo(1) ecc...
Quando clicco su una combo e scelgo un oggetto dalla sua lista, vorrei che poi nelle altre combo non risultasse l'oggetto selezionato.
ES: nella combo(0) scelgo "Inter", vorrei poi che nella altre 9 combo "inter" non ci fosse più.
Grazie

PM Quote
Avatar
Maffo23 (Ex-Member)
Pro


Messaggi: 63
Iscritto: 14/12/2006

Segnala al moderatore
Postato alle 16:37
Sabato, 20/01/2007
ma vuoi eliminarlo?
se si,fai un ciclo FOR che va da 0 a N,se la combo è    
quella con "MILAN" non fare niente,altrimenti cancellalo!!
facile no!!

PM Quote
Avatar
zubizarreta (Normal User)
Rookie


Messaggi: 59
Iscritto: 21/01/2007

Segnala al moderatore
Postato alle 11:18
Domenica, 21/01/2007
io quel problema sono riuscito a risolverlo...ma nn riesco a risolverne un altro: se x esempio cambio la Text della Combo, ke aveva già un valore quel valore non riesco a metterlo nelle altra combo..(faccio il vostro esempio con le squadre di calcio: in una combo ho "milan" come text ..e negli elenki delle altre "milan", nn c'è..ma se io quel "milan" lo sostituisco con un altro valore..esempio "inter", devo far ritornare "milan" negli elenchi delle altre combo)..cm si fa?
e poi...c'è un comando delle combo ke fa si ke le parole degli elenke vengono automaticamente disposte in ordine alfabetico?

grazie

PM Quote
Avatar
zubizarreta (Normal User)
Rookie


Messaggi: 59
Iscritto: 21/01/2007

Segnala al moderatore
Postato alle 11:19
Domenica, 21/01/2007
oops..scusate era il mio primo messaggio e nn mi sn presentato..cmq piacere ho 17 anni e vengo da milano.

PM Quote
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 14:32
Lunedì, 22/01/2007
crei un primo vettore di stringhe con tutti i dati poi a ciascuna combo a ogni cambiamento associ un evento di riscrittura dei dati che equivale a quelli del vettore ideale meno quelli selezionati delle combo.
semplice no?

PM Quote
Avatar
zubizarreta (Normal User)
Rookie


Messaggi: 59
Iscritto: 21/01/2007

Segnala al moderatore
Postato alle 16:43
Lunedì, 22/01/2007
no...nn è così semplice...
non è ke puoi spiegare meglio  x favore?
grazie

Ultima modifica effettuata da zubizarreta il 22/01/2007 alle 16:47
PM Quote
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 19:06
Lunedì, 22/01/2007
ok mi spiego.
poniamo caso che abbiamo sei combo e 10 opzioni(A,B,C,D,E,F,G,H,I,L).
avremmo un vettore di stringhe chiamato non so, valore(1 to 10) che contiene in 1 A in 2 B ecc

di default diamo alla prima combo A (quindi a combo(1) va valore(1)) alla seconda combo B ecc

poi cosa andrà nella tendina?
andranno tutti i valori di valore(1 to 10) meno quelli già utilizzati più quello proprio nella combo

riassumendo
in combo(1) ci sarà A+(GHIL)
in combo(2) ci sarà B+(GHIL)
in combo(3) ci sarà C+(GHIL)
in combo(4) ci sarà D+(GHIL)
in combo(5) ci sarà E+(GHIL)
in combo(6) ci sarà F+(GHIL)

quando cambio un valore in una combo cosa accadrà?

dovro richiamare una procedura di ricalcolo delle tendine che sarannno sempre tutti i valori di valore(1 to 10) meno quelli già utilizzati più quello proprio nella combo.

se non capisci ancora posta che provo a fare un abbozzo di codice.

PM Quote
Avatar
zubizarreta (Normal User)
Rookie


Messaggi: 59
Iscritto: 21/01/2007

Segnala al moderatore
Postato alle 19:22
Lunedì, 22/01/2007
sta volta piu o meno ho capito, ed era qll ke mi hanno suggerito anke oggi a scuola...sl ke nn so proprio come farlo...se magari mi puoi scrivere qlch riga di codice (please): io t dico qst:
ogni volta ke cambio una combo il prgramma mi entra nell'evento combo_click (index as integer)..e qui fa qst:
1-con un ciclo mi copia dal file principale (qll ke ha tutte le squadre all'inizio) tutte le squadre ke risultano diverse da quella ke ho messo nella combo ( e ste squadre me le copia in un altro file)..;
2-poi mi riporta le squadre rimaste nel file principale(aaa=file princ.);
3-(ke penso kon il tuo metodo dovrò togliere) mi va a cancellare da ogni lista di combo (solo quelle con text vuota, [xke se no mi succede un kasino)) la squadra ke nn ha scritto all'inizio sul file....;dico solo qll kon text vuote xke io elimino quella squadra tramite la posizione nella lista, ed è posibile ke "prelevando dalla lista una squadra" (ke poi si toglie dlle liste delle altre) puo cambiare la posizione delle squadre nella lista e quindi una squadra già inserita me la cancella ...


tt kiaro?..se nn hai capito kiedi pure ....grazie..

Ultima modifica effettuata da zubizarreta il 22/01/2007 alle 19:30
PM Quote
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 15:59
Martedì, 23/01/2007
è commentato. copia e incolla in vb per vedere meglio

Codice sorgente - presumibilmente VB.NET

  1. Option Explicit
  2. Dim Valore(1 To 21) As String 'valore sono i valori totali
  3. Dim Cmb(1 To 10) As String 'indica che valore c'è nella combo
  4. Dim X As Integer: Dim Y As Integer: Dim Z As Integer 'tre variabili
  5.  
  6.  
  7.  
  8. Private Sub Form_Load() 'alla partenza
  9.  
  10. For Y = 1 To 10
  11. Combo(Y).Clear 'svuota le combo
  12. Next Y
  13.  
  14. For X = 1 To 21
  15. Valore(X) = Chr(64 + X) 'riempile con..(qua ho messo le lettere dell'alfabeto)
  16. Next X
  17. For Y = 1 To 10
  18. Cmb(Y) = Valore(Y) 'cosa c'è nella combo? va in cmb(Y)
  19. Combo(Y).Text = Cmb(Y) 'Vedi il valore in facciata
  20. Next Y
  21. Call tendina 'vai allevento delle tendine
  22. End Sub
  23.  
  24.  
  25. Private Sub Combo_click(Index As Integer) 'al variare delle combo
  26. Z = Index 'metti in z che combo non devo toccare(altrimenti salta lo scroll)
  27. For X = 1 To 21
  28. If Combo(Index).Text = Valore(X) Then
  29. Cmb(Index) = Valore(X) ' identifica in cosa è camiata la combo
  30. End If
  31. Next X
  32. Call tendina
  33. End Sub
  34.  
  35.  
  36. Private Sub tendina()
  37. For Y = 1 To 10
  38. If Not Y = Z Then 'tranne la combo da non toccare (quella con y = z)
  39. Combo(Y).Clear 'pulisci tutte le tendine
  40. End If
  41. Next Y
  42. For X = 1 To 21 'per tutti i valori totali
  43. For Y = 1 To 10 'se in una combo appare il valore(x)
  44. If Cmb(Y) = Valore(X) Then
  45. If Not Y = Z Then 'e quella combo posso toccarla
  46. Combo(Y).AddItem Valore(X) 'aggiungi solo a quella combo quel valore
  47. Combo(Y).Text = Cmb(Y) 'e rifagli la facciata
  48. End If
  49. GoTo NxtX 'poi passa alla x successiva
  50. End If
  51. Next Y ' se invece poi arrivare a questo punto quindi
  52. For Y = 1 To 10 'non c'è nessuna combo con questo valore
  53. If Not Y = Z Then 'se non è la combo da non toccare
  54. Combo(Y).AddItem Valore(X) 'allora aggiungi il valore
  55. End If
  56. Next Y
  57. NxtX:
  58. Next X
  59. End Sub


Ultima modifica effettuata da P4p3r0g4 il 23/01/2007 alle 16:00
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo