Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    9

    VB6 - Comando Undo per picturebox!

    Ciao a tutti!

    Ho un problemino e cercherò di essere il più chiaro possibile!

    Ho una picturebox in un form!In questa picturebox disegno dei cerchi tremite un bottone con il comando:

    Picture1.Circle (x, y), 500, vbRed

    dove x ed y sono rispettivamente le coordinate in cui si trova il mouse al momento del click sulla picture box!

    Ecco il mio problema!
    Io dovrei annullare l'ultima azione fatta sulla picturebox con il tipico comando Undo (Per intenderci la freccina indietro o quello che corrisponde al comando da tastiera "Ctrl+z")

    Avete qualche idea o suggerimento da darmi?!
    Ringrazio tutti in anticipo!
    Ciao
    Manuel

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    191
    Ho trovato un esempio su planet source code...È un po' complesso, ma guarda se riesci a capire...

    Secondo me però potresti fare così: tu ogni volta che disegni un cerchio, ti vai a memorizzare le coordinate x1,y1 e x2,y2 in un array...Poi cancellando le coordinate dall'array, cancelli anche il cerchio...

  3. #3
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da Zlatan8.
    Ho trovato un esempio su planet source code...È un po' complesso, ma guarda se riesci a capire...
    Magari se segnalavi il link del progetto... :quote:
    Sarebbe stato utile. O no?

    Originariamente inviato da Zlatan8.
    Secondo me però potresti fare così: tu ogni volta che disegni un cerchio, ti vai a memorizzare le coordinate x1,y1 e x2,y2 in un array...Poi cancellando le coordinate dall'array, cancelli anche il cerchio...
    Dubito molto che così possa funzionare. Metti il caso che precedentemente 'sotto' al cerchio esistessero altri disegni? Cancelleresti anche una parte di essi.

    No, secondo me se lospanu vuole implementare l'Undo deve fare essattamente come fanno tutti gli altri programmi, ovvero mantenere <n> copie in base al numero di livelli di undo intende rendere disponibili.
    Non è così difficile, basta creare un array di oggetti STDPicture in memoria, appena terminata la modifica (evento Mouse_Up del PictureBox) memorizza l'immagine nel primo oggetto STDPicture libero.
    Poi, quando l'utente richiede l'Undo, si copia l'immagine dall'oggetto STDPicture precedente e la si incolla nel PictureBox.


  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    191
    Oops, scusate, andavo un po' di fretta e me lo sono dimenticato...
    LINK

    Comuqnue, perchè secondo te non va?..Disegna solo cerchi lui...Hmm...

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da Zlatan8.
    Comuqnue, perchè secondo te non va?..Disegna solo cerchi lui...Hmm...
    Non vedo che differenza faccia, non importa cosa disegna ma dove.
    Cosa ti fa credere che i disegni dei cerchi non andranno mai a sovrapporsi?


  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    191
    Non capisco cosa stai dicendo...
    Lui disegna o cerchi e memorizza tutto nell'array...Poi cliccando su un button, che sarebbe l'undo, va a cancellare le coordiante dell'ultimo cerchio nell'array e così si cancella l'ultimo cerchio...

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    191
    Uhm, ho capito il tuo metdo gibra...Si credo sia meglio del mio...Volevo dirlo, ma non sapevo come spiegarlo...

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da Zlatan8.
    Uhm, ho capito il tuo metdo gibra...Si credo sia meglio del mio...Volevo dirlo, ma non sapevo come spiegarlo...
    Non è questione di meglio , ma non è proprio possibile fare come pensi tu.
    Avere le coordinate negli array non significa alcunché e non cambia la sostanza del problema.

    Se fai una prova in pratica te ne accorgi in un attimo.

    Circle è un metodo grafico e fa esattamente quello che facciamo noi quando disegnamo su un foglio di carta.

    Ora, prendi carta e matita e comincia a disegnare alcuni cerchi che si sovrappongono. Ma se fossero triangoli o rettangolo sarebbe la stessa cosa.
    Poi prova a cancellarle l'ultimo con una gomma.
    Vedrai che non riuscirai a farlo senza cancellare anche parti di in un altro cerchio che sono sovrapposte a quello che stai cancellando.


  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    191
    Sisi, hai perfettamente ragione...Ho provato a fare delle prove, e mi sono accorto che il mio metodo non funziona...Ne ero convinto, ma non è così...

    Se hai tempo, potresti darmi un accenno di come posso cancellare un cerchio che ho disegnato in una picturebox?(nella picture ho ammettiamo 20 cerchi, come faccio a cancellaqrne uno a caso?)...

  10. #10
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da Zlatan8.
    Sisi, hai perfettamente ragione...Ho provato a fare delle prove, e mi sono accorto che il mio metodo non funziona...Ne ero convinto, ma non è così...
    Capita anche a me. In teoria si pensa che una cosa funzioni bene, poi provando in pratica ci si accorge che non sempre è così.

    Originariamente inviato da Zlatan8.
    Se hai tempo, potresti darmi un accenno di come posso cancellare un cerchio che ho disegnato in una picturebox?(nella picture ho ammettiamo 20 cerchi, come faccio a cancellaqrne uno a caso?)...
    Scusa, ma qui non ti capisco.
    Ho già indicato nel mio primo post un possibile metodo di implementazione.
    perchè non provi ad applicare quello?


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.