Autore Topic: Il drag&drop, questo (per me) sconosciuto  (Letto 3291 volte)

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 960
    • Mostra profilo
Il drag&drop, questo (per me) sconosciuto
« il: 18 Ottobre 2012, 23:59:07 »
E' più o meno come la ceskhonite, vorrei saperne di più. :)
Pian piano sto portando avanti l'applicazione della Roulette, non mi manca molto per finirla ma il banco di sabbia su cui mi sto arenando è proprio il drag&drop.
Ho creato le icone delle fiches (picturebox) ed il tavolo con tutti i numeri per le puntate (label), quello che mi serve è che nel momento in cui clicco sull'icona e la trascino verso il tavolo venga visualizzata una copia (file PNG) che poi posso mollare sul tavolo e resti visualizzata al suo posto.
Pensavo di riunire tutte le fiches depositate in un array dinamico di picturebox.
Conoscete degli articoli e/o/u programmi che possano spiegarmi bene come funziona la storia? Ho cercato in giro anche io ma dal buco ho cavato poco o nulla.
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.305
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Il drag&drop, questo (per me) sconosciuto
« Risposta #1 il: 19 Ottobre 2012, 00:02:22 »
... il banco di sabbia su cui mi sto arenando è proprio il drag&drop.
.....
Conoscete degli articoli e/o/u programmi che possano spiegarmi bene come funziona la storia? Ho cercato in giro anche io ma dal buco ho cavato poco o nulla.

Negli esempi di Gambas c'è proprio un programma/esempio specifico relativo al dragNdrop.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 960
    • Mostra profilo
Re: Il drag&drop, questo (per me) sconosciuto
« Risposta #2 il: 19 Ottobre 2012, 18:15:39 »
Puoi indicarmi qual'è?
Ho visto nelle wiki un esempio sul MouseMove, ma non è quello che serve a me.
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.305
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Il drag&drop, questo (per me) sconosciuto
« Risposta #3 il: 20 Ottobre 2012, 00:43:29 »
Puoi indicarmi qual'è?
Ho visto nelle wiki un esempio sul MouseMove, ma non è quello che serve a me.

Non nella WIKI. Lanci Gambas, nella colonna di sinistra c'è Nuovo progetto... - Apri Progetto - Progetti Recenti - Esempi - etc..

Vai su Esempi: il programma lo trovi nel gruppo: Basic.


Per la wiki:
http://www.gambas-it.org/wiki/index.php?title=Guide_della_comunit%C3%A0#Drag_-_Drop
« Ultima modifica: 22 Luglio 2014, 16:11:55 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 960
    • Mostra profilo
Re: Il drag&drop, questo (per me) sconosciuto
« Risposta #4 il: 20 Ottobre 2012, 14:48:03 »
Ah già, non avevo pensato agli esempi di Gambas. :hard:
Oramai sono quasi forum-dipendente. :D
Grazie.
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 960
    • Mostra profilo
Re: Il drag&drop, questo (per me) sconosciuto
« Risposta #5 il: 24 Ottobre 2012, 15:13:16 »
X Picavbg: ecco come ho risolto.
Semplicemente adattando il codice trovato negli esempi di Gambas:
Codice: [Seleziona]
Public Sub Fiches_MouseDrag()
   With Last
      If Mouse.left Then
         If Capitale.value >= CInt(.tag) Then
            Drag.icon = .picture
            .drag(.picture.image)
         Else
            Message.Info("Non hai abbastanza soldi.\nAumenta il capitale")
            Return
         Endif
      Endif   
   End With
End
Tutto qui. E funziona benissimo. ;)
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 960
    • Mostra profilo
Re: Il drag&drop, questo (per me) sconosciuto
« Risposta #6 il: 30 Ottobre 2012, 01:21:48 »
Dopo il drag, arriva il drop.
Codice: [Seleziona]
Public Sub Tavolo_Drop()
fiches.Add(drag.source)
With Last
.
.
'altre istruzioni
.
.
End
Fondamentalmente funziona, ma il problema è nella prima istruzione.
Le picturebox, una volta droppate sulle label che compongono il tavolo (comodissimi i gruppi :ok:), entrano a far parte di un array di picturebox, il guaio è che a me serve una copia della picturebox, invece viene usato l'originale che sparisce dalla posizione originale per finire sul tavolo.
Ho provato varie cose ma questa è l'unica che non mi da errore. :-\
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Il drag&drop, questo (per me) sconosciuto
« Risposta #7 il: 31 Ottobre 2012, 00:01:55 »
Le picturebox, una volta droppate sulle label che compongono il tavolo (comodissimi i gruppi :ok:), entrano a far parte di un array di picturebox, il guaio è che a me serve una copia della picturebox, invece viene usato l'originale che sparisce dalla posizione originale per finire sul tavolo.
Ho provato varie cose ma questa è l'unica che non mi da errore. :-\
Mi viene da suggerire un'idea di tipo istantaneo: potresti provare a creare due array di PictureBox. Uno é quello originale che hai già creato, mentre l'altro potrebbe essere la copia del primo, da utilizzare per farlo comparire sul tavolo, senza così perdere la posizione di quello originale. Naturalmente è da provare sul campo.
Pensi che possa aiutarti a risolvere il problema che hai menzionato?
 :ciao:
:ciao:

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 960
    • Mostra profilo
Re: Il drag&drop, questo (per me) sconosciuto
« Risposta #8 il: 31 Ottobre 2012, 01:21:57 »
L'array non mi serve per le picturebox originali, quelle sono già dentro in un gruppo e questo è sufficiente. Mi serve per le copie, è su quelle che devo lavorare, le originali devono essere di "sola lettura". Il problema è che non riesco a duplicarle, mi lavora sulle originali.
Ho provato pure ad usare un oggetto temporaneo:
Codice: [Seleziona]
Dim tmp As Object
tmp = New PictureBox(drag.source)
fiches.Add(tmp)
Ma mi da errore, si aspetta una picturebox e invece gli do un contenitore. Boh...
Spero di essermi spiegato.
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.305
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Il drag&drop, questo (per me) sconosciuto
« Risposta #9 il: 31 Ottobre 2012, 01:31:17 »
Nel tuo precedente messaggio hai detto che hai un array contenente PictureBox,
Le picturebox.... entrano a far parte di un array di picturebox,
ecco perché Picavbg ti aveva proposto una copia, da farsi in sostanza con il metodo ".Copy" così:
Codice: gambas [Seleziona]

  copiaArray = array.Copy
« Ultima modifica: 31 Ottobre 2012, 01:33:59 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 960
    • Mostra profilo
Re: Il drag&drop, questo (per me) sconosciuto
« Risposta #10 il: 31 Ottobre 2012, 11:10:32 »
Si potrebbe fare, ma mi resterebbe in giro un array, il primo, pressoché inutilizzato con uno spreco di memoria e risorse.
Vabbé che al giorno d'oggi nei nostri computer abbiamo memoria a palate, ma io provengo dai tempi del DOS in cui si doveva battagliare con il dgroup e i suoi 64 kb di spazio, quindi mi è rimasta l'abitudine di utilizzare meno byte possibili. :D
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.305
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Il drag&drop, questo (per me) sconosciuto
« Risposta #11 il: 31 Ottobre 2012, 13:57:29 »
...utilizzare meno byte possibili.

Sì, capisco e condivido in pieno.

Però, poiché tu hai preso spunto dall'esempio che ti avevo segnalato, non c'è lì la modalità per risolvere il tuo problema ?
« Ultima modifica: 31 Ottobre 2012, 16:43:48 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 960
    • Mostra profilo
Re: Il drag&drop, questo (per me) sconosciuto
« Risposta #12 il: 31 Ottobre 2012, 15:27:40 »
Niente da fare:
Codice: [Seleziona]
fichestmp.Add(drag.Source)
fiches = fichestmp.Copy
Type mismatch: vuole una picturebox, gli do invece una funzione. Uff... :hatecomputer:
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.305
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Il drag&drop, questo (per me) sconosciuto
« Risposta #13 il: 31 Ottobre 2012, 17:41:25 »
Niente da fare:
Codice: [Seleziona]
fichestmp.Add(drag.Source)
fiches = fichestmp.Copy
Type mismatch: vuole una picturebox, gli do invece una funzione. Uff... :hatecomputer:
...ma allora non contiene PictureBox !
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 960
    • Mostra profilo
Re: Il drag&drop, questo (per me) sconosciuto
« Risposta #14 il: 31 Ottobre 2012, 19:05:47 »
Sono tutti e 2 array di picturebox. L'errore me lo da sulla seconda riga.
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.