Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Come si "moltiplica" un oggetto in Visual basic 6?

    --------------------------------------------------------------------------------

    Ho bisogno di far apprire all'interno di un area un tot di "oggetti" ( ad esempio tot cerchi molto piccoli). Quello che non so è quanti saranno a seconda dei casi.
    Per cui mi chiedo: E' possibile moltiplicare un oggetto Shape?
    Se ad esempio dovessi far apparire 100 Shape, tutti uguali tra loro, ma ognuno in coordinate diverse, dopo averne creato uno, (es. Shape(1)), è possibile moltiplicarlo fino ad arrivare a Shape(100)?
    Tnx tnx.

  2. #2
    Non ti conviene semplicemente disegnare sull'area del form usando i normali metodi di disegno (in questo caso Me.Circle)?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Ciao supergonzales,
    dato che Shape possiede la proprietà Index, per clonare puoi usare Load. Nel seguente modo ad esempio ad ogni Click clono un oggetto uguale al precedente posizionandolo sotto, a mò di colonna:
    codice:
    Private Sub Command1_Click()
        ' Ad ogni clic crea un controllo Shape:
            Load Shp(Shp.UBound + 1)
            ' sposta il nuovo Shape sotto il precedente:
            Shp(Shp.UBound).Move Shp((Shp.UBound - 1)).Left, Shp((Shp.UBound - 1)).Top + (Shp((Shp.UBound - 1)).Height)
            ' Lo rendo visibile:
            Shp((Shp.UBound)).Visible = True
    End Sub
    Ah quasi dimenticavo, il primo controllo va disegnato sulla Frm.
    LM

  4. #4
    Provo a spiegarmi....
    Deve essere il soft a crearli.
    Immaginate ad esempio una text area...... e un pulsante
    scrivo sulla text area un numero N .... clicco il pulsante....
    .....e su una zona del form appaiono N shape circolari.
    Ora non sto a spiegrvi tutto il soft.
    Le shape dovranno essere i punti di foratura di un circuito stampato.
    Siccome potrebbe essere necessario visualizzare da 1 a 1000 shape in posizioni diverse deve essere il soft che le crea a seconda della situazione.
    tnx tnx.
    Provo a vedere se funzica il reply di LMondi....
    Se ci sono altre soluzioni... sono bene accette..
    Tnx tnx

  5. #5
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    supergonzales,
    serve un ciclo For. Però fai attenzione non sò se riesci a creare 1000 shape (usando una matrice di controlli, come indicato, forse sì, mentre non è possibile disegnare 1000 shape su una Form). Al riguardo devi consultare la guida.
    Il seguente è il codice già postato con l'integrazione che ti ho detto.
    Intendiamoci, non considera le coordinate ove dislocare le shape (la cosa si complica parecchio).

    codice:
    Option Explicit
    Dim jj As Integer
    Private Sub Command1_Click()
        
       Dim j As Integer
       jj = 1
        
        For j = 1 To (Val(Text1.Text) - 1)
            ' Controlla il n° di oggetti clonati:
            If jj = (Val(Text1.Text)) Then Exit Sub
            ' Inserisce il n° di controlli Shape indicato in Text1:
            Load Shp(Shp.UBound + 1)
            ' sposta il nuovo Shape sotto il precedente:
            Shp(Shp.UBound).Move Shp((Shp.UBound - 1)).Left, Shp((Shp.UBound - 1)).Top + (Shp((Shp.UBound - 1)).Height)
            ' Lo rendo visibile:
            Shp((Shp.UBound)).Visible = True
            jj = jj + 1
        Next j
    End Sub
    LM

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma scusa ... a che servono 1000 shapes ? Se devi disegnare perche' non utilizzi le API GDI ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Ma scusa ... a che servono 1000 shapes ? Se devi disegnare perche' non utilizzi le API GDI ?
    .... forse xchè non so cosa siano...

    L'esempio fatto da me sopra era solo fine a se stesso per capire, appunto come potessi "moltiplicare" una shape.
    In effetti sul mio form non c'è una text area e un bottone come sopra descritto.
    Il soft che sto tentando di creare dovrebbe gestire dei motori passo passo (su LPT) per spostare un trapanino sopra un piano.
    Il programma legge un file creato da un soft (Eagle); detto file è una serie di coordinate X,Y dei vari fori da praticare su un circuito stampato.
    Mi piaceva in qualche modo riuscire a raffigurare i vari punti di foratura, e quindi dove si sposterà il trapanino; magari utilizzando un colore diverso per ogni misura di punta (4-5 punte).
    Suppongo una media dai 100 a 400 fori da visualizzare; molto difficilmente saranno sopra i 600-700.
    Avevo indicato 1000 per far capire che non è il caso di crearseli "a mano" uno a uno.
    Ho provato solo per avere un idea il codice postato da LMondi (tnx tnx tnx again) e funzica.
    Credo che da qui posso partire per riuscire a fare qualcosina.
    Sicuramente avrò ancora bisogno del Vostro prezioso aiuto.
    Non sono molto pratico riguardo Visual Basic ma mi piacerebbe riuscire a realizzare il progetto autonomamente.... per cui credo ci risentiremo presto

  8. #8
    Originariamente inviato da supergonzales
    .... forse xchè non so cosa siano...

    L'esempio fatto da me sopra era solo fine a se stesso per capire, appunto come potessi "moltiplicare" una shape.
    In effetti sul mio form non c'è una text area e un bottone come sopra descritto.
    Il soft che sto tentando di creare dovrebbe gestire dei motori passo passo (su LPT) per spostare un trapanino sopra un piano.
    Il programma legge un file creato da un soft (Eagle); detto file è una serie di coordinate X,Y dei vari fori da praticare su un circuito stampato.
    Mi piaceva in qualche modo riuscire a raffigurare i vari punti di foratura, e quindi dove si sposterà il trapanino; magari utilizzando un colore diverso per ogni misura di punta (4-5 punte).
    Suppongo una media dai 100 a 400 fori da visualizzare; molto difficilmente saranno sopra i 600-700.
    Avevo indicato 1000 per far capire che non è il caso di crearseli "a mano" uno a uno.
    Ho provato solo per avere un idea il codice postato da LMondi (tnx tnx tnx again) e funzica.
    Credo che da qui posso partire per riuscire a fare qualcosina.
    Sicuramente avrò ancora bisogno del Vostro prezioso aiuto.
    Non sono molto pratico riguardo Visual Basic ma mi piacerebbe riuscire a realizzare il progetto autonomamente.... per cui credo ci risentiremo presto
    Scusa, ma allora quale shapes !

    Usa delle semplicissime Circle, come ti e' gia' stato suggerito !
    IceCube_HT (VB6 fan Club)

  9. #9
    I controlli Shape sono uno spreco inutile di risorse, che ti rallenterebbero inutilmente l'applicazione (visto il numero di controlli che useresti) senza alcun vantaggio. Ribadisco:
    Originariamente inviato da MItaly
    Non ti conviene semplicemente disegnare sull'area del form usando i normali metodi di disegno (in questo caso Me.Circle)?
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    Dovete scusarmi ma come avrete capito Visual Basic 6 non è il mio forte.
    Non ti conviene semplicemente disegnare sull'area del form usando i normali metodi di disegno (in questo caso Me.Circle)?
    Cosa si intende per normali metodi di disegno?
    Io ho usato il controllo Shape semplicemente perchè nella barra degli strumenti non vedo altro (oltre a Line) per poter disegnare qualcosa.
    Invece riguardo Me.Circle ?
    Scusate ancora "l'ignoranza" ..... ma se son qui a far domande è perchè appunto sono ignorante in materia....
    Tnx tnx

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.