Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    vb6 - capire se un textbox e' una matrice

    rieccomi con i miei problemi
    in una mia applicazione che ha il solo scopo di farmi prendere confidenza con il
    linguaggio ho pensato di usare una funzione che mi azzeri in un sol colpo il valore
    di tutte le celle che hanno un determinato tag;
    posto un po di codice sperando che possa chiarire meglio:

    Public Sub fld_Clear(ByVal §form As Form, _
    ByVal §tag As String)
    ' scorre tutti tag indicati
    For §j = 1 To Len(§tag)
    ' scorre tutti icampi della maschera
    For Each £Ctl In §form.Controls
    ' scarta se il tag e' diverso dai chiamati
    If Left(£Ctl.Tag,1) = Mid$(§tag, §j, 1) Then
    §form.£Ctl.Value = ""
    End If
    Next £Ctl
    Next §j
    End Sub

    e la cosa sembra funzionare, almeno fin quando non incontro un campo matrice
    per il quale dovrei invece usare la forma

    §form.£ctl(i).value=""

    ed ecco il problema: come faccio a capire che il campo e' una matrice
    ho pensato di utilizzare la proprieta' INDEX sperando che nel caso in cui
    il campo non sia una matrice mi ritornasse un valore tale da farmelo capire,
    invece mi da' errore.
    Domanda: devo interecettare l' errore e quindi capire, o esiste qualche altra
    proprieta' del campo che posso interrogare?

    grazie anticipate

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    1) il codice va sempre indicato usando il tag CODE (Leggi il Regolamento, please)
    oltretutto il tuo è pieno doi caratteri "sporcizia"

    2)basta usare semplicemente Ctl (al posto di form.Ctl) quindi non ti serve sapere se è un array di controlli o meno


  3. #3
    grazie gibra
    veloce e competente come sempre
    - a proposito del code, cos'è; nel regolamento non ho trovato traccia, a meno
    che, cosa certa, non abbia letto nel posto sbagliato
    - per quanto riguarda il codice, ti ripeto che ho cominciato da poco e imparo
    con molta fatica, grazie anche a chi come te ha la pazienza di darmi una mano
    e' chiaro quindi che il mio codice non sia dei migliori; cmq il tuo suggerimento
    funziona perfettamente (e non poteva essere diversamente)

    ti chiedo troppo se vuoi riscrivermi il codice in maniera corretta?

    grazie ancora

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da Luberto Mario
    grazie gibra
    veloce e competente come sempre
    - a proposito del code, cos'è; nel regolamento non ho trovato traccia, a meno
    che, cosa certa, non abbia letto nel posto sbagliato
    Infatti.
    Il Regolamento di questo forum lo trovi come in cima alle discussioni (la seconda).
    http://forum.html.it/forum/showthrea...hreadid=973888
    Paragrafo 6
    il tag CODE si usa semplicemente selezionando il codice inserito (con l'indentazione corretta) e poi premere il pulsantino CODE che sta tra i comandi nella finestra dell'editor del messaggio.

    Originariamente inviato da Luberto Mario
    - per quanto riguarda il codice, ti ripeto che ho cominciato da poco e imparo
    con molta fatica, grazie anche a chi come te ha la pazienza di darmi una mano
    e' chiaro quindi che il mio codice non sia dei migliori;
    Per inciso, non ho criticato il tuo codice anche perchè chi chiede aiuto lo fa perchè non sa risolvere un problema da solo.

    Originariamente inviato da Luberto Mario
    cmq il tuo suggerimento
    funziona perfettamente (e non poteva essere diversamente)
    Anch'io non sono infallibile. Anzi!...

    Originariamente inviato da Luberto Mario
    ti chiedo troppo se vuoi riscrivermi il codice in maniera corretta?
    Non so cosa devi fare esattamente.
    Sì, lo so che l'hai spiegato ed ho capito il tuo intento.
    Quello che mi lascia perplesso è il fatto che tu scrivi di voler azzerare la proprietà Value di ogni controllo.
    Ora, tenendo presente che:
    1. questa proprietà è esposta solo di alcuni controlli (pochi) come OptionButton, CheckBox,
    2. a quanto mi è dato sapere la proprietà Value può essere solo True o False
    non capisco come il tuo codice possa funzionare impostandola ad una stringa vuota

    §form.£ctl(i).value=""

    non sembra avere molto senso. Oltretutto dovrebbe segnalarti un errore (a meno che tu non abbia inserito un On Error Resume Next).

    Ma tu scrivi che funziona....


  5. #5
    gibra
    in effetti hai ragione, come sempre; funziona se tolgo il value
    il mio scopo e' quello di pulire i campi di una maschera selezionandoli
    a gruppi in base al loro campo tag

    con lo stesso principo ho fatto altre due routine che servono a
    visualizzare/nascondere e abilitare/disabilitare gruppi di campi invece di
    stare ad elencarli uno ad uno nel codice

    al mio prossimo problema
    grazie

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da Luberto Mario
    gibra
    in effetti hai ragione, come sempre; funziona se tolgo il value
    il mio scopo e' quello di pulire i campi di una maschera selezionandoli
    a gruppi in base al loro campo tag
    Appunto.
    Se vuoi reimpostare i valori di tutti i tipi di controllo devi usare il costrutto IF/THEN/ELSE/ENDIF in cui per ogni tipo in cui testerai il tipo di controllo con TypeOf,
    così da agire sulla proprietà adeguata in base al controllo esaminato.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.