Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di erosmax
    Registrato dal
    Jan 2003
    Messaggi
    119

    [VB6] Disegnare cerchi su picture ed unire ad altra

    Salve.Avrei bisogno di un aiuto.
    Se disegno dei cerchi su di una Picturebox, quando la vado a salvare, questi non appaiono.
    Avrei bisogno di unire la Picturebox con i cerchi, ad un'altra con un immagine e che, la picture con il disegno guida (Picture2), eliminasse il disegno guida ma lasciasse i cerchi che andranno uniti all'immagine originale (Picture1), una volta ingranditi..
    Ho provato a farlo ma, come detto, non mi unisce i cerchi mostrati a video e non riesco a togliere l'immagine (se utilizzo Picture2.Picture = Nothing, questa si cancella, ma poi ho errori nel riportare l'immagine grande (in quanto questa è 0).
    ecco una parte del codice:
    codice:
    Private Sub Label1_Click()
    If Label1.Caption = "OK" Then
        Picture2.Cls
        For i = 0 To 55
            buco(i).Visible = True
            buco(100 + i).Visible = True
        Next i
        Label1.Caption = "RESET"
        Frame1.Enabled = False
        'Cancello l'immagine
       ' Picture2.Picture = Nothing
    colore1 = buco(0).FillColor
    Picture2.FillStyle = 0
        'Disegno i cerchi
        For k = 0 To 55
        selez(k).Visible = False
        selez(k + 100).Visible = False
                  colore1 = buco(k).FillColor
                  colore2 = buco(k + 100).FillColor
                  If colore1 <> 16777215 Then buco(k).Visible = False: Picture2.Circle (buco(k).Left, buco(k).Top), 120, vbBlack: Picture2.FillColor = colore1: Picture2.FillStyle = 0
                  
                  If colore2 <> 16777215 Then buco(k + 100).Visible = False: Picture2.Circle (buco(k + 100).Left, buco(k + 100).Top), 120, vbBlack:  Picture2.FillColor = colore2: Picture2.FillStyle = 0
            buco(k).Visible = False
            buco(k + 100).Visible = False
        Next k
        Line1.Visible = False
        Line2.Visible = False
        'riporto immagine grande
         Picture1.AutoRedraw = True
      
        Picture1.PaintPicture Picture2.Picture, _        
        Picture1.ScaleLeft,Picture1.ScaleTop, _
        Picture1.ScaleWidth, Picture1.ScaleHeight, _
        Picture2.ScaleLeft, Picture2.ScaleTop, _
        Picture2.ScaleWidth, Picture2.ScaleHeight
        Picture1.Picture = Picture1.Image
        
        'Unisco immagini
        Picture1.PaintPicture Picture2.Picture, 0, 0
        SavePicture Picture1, App.Path & "\SchemaOK.bmp"
    Else
        For i = 0 To 55
            buco(i).FillColor = vbWhite
            buco(100 + i).FillColor = vbWhite
            selez(i).Enabled = True
            selez(100 + i).Enabled = True
        Next i
        For i = 0 To 13
                 colore(i).Visible = True
                 colore(i).Enabled = True
                 colore(i).FontBold = False
        Next i
        Frame1.Enabled = True
        Label1.Caption = "OK"
    End If
    Non ho nulla da dire...e lo stò dicendo!
    - Scarica i miei Software FREE

  2. #2
    Utente di HTML.it L'avatar di erosmax
    Registrato dal
    Jan 2003
    Messaggi
    119

    un passo avanti

    ...allora mi sono accordo di qualche erroruccio tipo (Ora ho messo i disegni nell Sub Picture2_Paint, spostando in alto il comando della colorazione):

    codice:
    If colore1 <> 16777215 Then rip=0:buco(k).Visible = False: colore=colore1:Call Picture2_Paint
    
    
    Private Sub Picture2_Paint()
        Dim x As Integer
        Dim y As Integer
        x = Form1.buco(kappa+rip).Left
        y = Form1.buco(kappa+rip).Top
       Picture2.FillColor = colore    
       Picture2.Circle (x, y), 120, vbBlack
        Picture2.FillStyle = 0
    End Sub

    ...ma soprattutto ho capito perché non mi visualizzava i cerchi

    codice:
    Picture1.Picture = Picture2.Image
    ....però lavora e mi salva sull'immagine piccola (a me serve quella più grande).
    Se converto l'immagine piccola (riprtandola in grande), perdo la qualità dell'immagine.
    Avrei bisogno, ora, di ingrandire la Picture2, senza l'immagine di fondo (solo i cerchietti)... per poi unirla alla Picture1

    Spero che qualcuno risponda.
    Grazie.
    Non ho nulla da dire...e lo stò dicendo!
    - Scarica i miei Software FREE

  3. #3
    Utente di HTML.it L'avatar di escocat
    Registrato dal
    Feb 2012
    Messaggi
    308
    Ma che sono i selez()? Non riesco a testare il codice....

  4. #4
    Utente di HTML.it L'avatar di erosmax
    Registrato dal
    Jan 2003
    Messaggi
    119
    I selez(n) sono delle image.
    Mi servono per captare il click sul cerchietto da evidenziare.
    in totale sono 55 e, per facilizzare i controlli sono selez(n) e selez(n+100).
    Inserisco una immagine demo del vecchio software. Come potete vedere, ho selezionato il cerchio dell'anello e mi si illuminano (ora è fisso per far vedere i punti di interesse) le opzioni che ho per scegliere l'opposto.
    Come detto, funziona tutto ma, purtroppo, mi salva solamente l'immagine piccola (quella nel riquadro) che è 613x357, mentre l'originale è 1475x988.
    A me servirebbe cancellare il disegno sotto e lasciare SOLO i cerchi, che poi andranno ingranditi e sommati all'immagine originale (Form1).
    Ciao.
    Non ho nulla da dire...e lo stò dicendo!
    - Scarica i miei Software FREE

  5. #5
    Utente di HTML.it L'avatar di escocat
    Registrato dal
    Feb 2012
    Messaggi
    308
    mmmmmm.... se ci avessi capito una mazza sarei stato lieto di aiutarti... certe volte mi sento un QI uguale a quello di una zanzara.

  6. #6
    Utente di HTML.it L'avatar di erosmax
    Registrato dal
    Jan 2003
    Messaggi
    119
    ...non preoccuparti, sicuramente sono stato io a non essermi spiegato bene!
    e, comunque, grazie per l'interessamento.
    Il mio problema risiede nella parte:
    codice:
    'riporto immagine grande
         Picture1.AutoRedraw = True
      
        Picture1.PaintPicture Picture2.Picture, _        
        Picture1.ScaleLeft,Picture1.ScaleTop, _
        Picture1.ScaleWidth, Picture1.ScaleHeight, _
        Picture2.ScaleLeft, Picture2.ScaleTop, _
        Picture2.ScaleWidth, Picture2.ScaleHeight
        Picture1.Picture = Picture1.Image
        
        'Unisco immagini
        'Picture1.PaintPicture Picture2.Picture, 0, 0
        SavePicture Picture1, App.Path & "\SchemaOK.bmp"
    Else
    se metto:
    codice:
    Picture1.Picture = Picture2.Image
    mi salva l'immagine Picture2 (quella che appare a video) con i cerchietti colorati...mentre a me serve stampare l'immagine originale (Picture1) con al suo interno i cerchietti presenti nell'immagine Picture2 ma ingranditi come la Picture1
    ...lo vedi che mi spiego a cavolo?
    Per salvale l'immagine originale lascio:
    codice:
    Picture1.Picture = Picture1.Image
    non accade nulla e le modifiche apportate alla Picture2 (i cerchietti) non si uniscono con questa

    Mi sono accorto che, se inserisco dei disegni (i cerchietti colorati nel mio caso) prima del
    codice:
    Picture1.Picture = Picture1.Image
    ... questi vengono salvati sulla Picture1.
    Il problema è che, dovrei prima ingrandirli (e si trovano in Picture2), poi eliminare lo sfondo della Picture2 (altrimenti sgrana tutto) eppoi inserirli nella Picture1.

    Se vuoi provare a fare un esempio, puoi:
    1) crearti 2 Picture: Una Grande (Picture1) e un'altra piccola (Picture2).
    2) Scalare l'immagine della Picture1 sulla Picture2
    3) Disegnare dei cerchi sparsi sulla Picture2
    4) Cancellare lo sfondo della Picture2
    5) Ingrandire la Picture2 (con solo i cerchi) alle dimensioni della Picture1
    6) Fondere le 2 immagini
    7) Salvare

    ...ecco, è questo che a me serve e che non riesco a fare (punto 4,5,6).

    Ciao e buone vacanze.
    Non ho nulla da dire...e lo stò dicendo!
    - Scarica i miei Software FREE

  7. #7
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da escocat
    mmmmmm.... se ci avessi capito una mazza sarei stato lieto di aiutarti... certe volte mi sento un QI uguale a quello di una zanzara.
    Mi consolo. Anch'io non ho capito un granchè (mi capita spesso...).
    In più quando leggo :

    Picture1, Picture2, Line1, Line2, colore1, colore2, selez, buco, ...

    vado ancor più in confusione.

  8. #8
    Utente di HTML.it L'avatar di erosmax
    Registrato dal
    Jan 2003
    Messaggi
    119
    Buahhh! anche tu Gibra!!!
    L'ho detto e mi dispiace, ma dovrei postare tutto il programma.
    Ma non è importate il codice iniziale (che era meglio che non inserivo), ma quello che ho detto nell'ultimo post.
    Quindi la parte del
    codice:
    'riporto immagine grande
         Picture1.AutoRedraw = True
      
        Picture1.PaintPicture Picture2.Picture, _        
        Picture1.ScaleLeft,Picture1.ScaleTop, _
        Picture1.ScaleWidth, Picture1.ScaleHeight, _
        Picture2.ScaleLeft, Picture2.ScaleTop, _
        Picture2.ScaleWidth, Picture2.ScaleHeight
        Picture1.Picture = Picture1.Image
        
        'Unisco immagini
        'Picture1.PaintPicture Picture2.Picture, 0, 0
        SavePicture Picture1, App.Path & "\SchemaOK.bmp"

    ... e quello che mi serve che faccia:


    1) Ho 2 Picture: Una Grande (Picture1) e un'altra piccola (Picture2). -> OK
    2) Scalo l'immagine della Picture1 sulla Picture2 -> OK
    3) Far apparire dei cerchi sulla Picture2 -> OK
    4) Cancellare lo sfondo della Picture2 -> OK
    5) Ingrandire la Picture2 (con solo i cerchi) alle dimensioni della Picture1 -> Non riesco
    6) Fondere le 2 immagini, Picture1 e Picture2 -> Non mi fonde nulla su Picture1
    7) Salvare -> OK


    Spero di essere stato un pochino più chiaro!
    Cioap
    Non ho nulla da dire...e lo stò dicendo!
    - Scarica i miei Software FREE

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.