Gambas-it

Gambas3 => Programmazione => Topic aperto da: Top Fuel - 18 Ottobre 2012, 23:59:07

Titolo: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 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.
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: vuott - 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.
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 19 Ottobre 2012, 18:15:39
Puoi indicarmi qual'è?
Ho visto nelle wiki un esempio sul MouseMove, ma non è quello che serve a me.
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: vuott - 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
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 20 Ottobre 2012, 14:48:03
Ah già, non avevo pensato agli esempi di Gambas. :hard:
Oramai sono quasi forum-dipendente. :D
Grazie.
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 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. ;)
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 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. :-\
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Picavbg - 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:
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 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.
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: vuott - 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
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 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
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: vuott - 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 ?
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 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:
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: vuott - 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 !
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 31 Ottobre 2012, 19:05:47
Sono tutti e 2 array di picturebox. L'errore me lo da sulla seconda riga.
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Picavbg - 01 Novembre 2012, 19:00:51
mi resterebbe in giro un array, il primo, pressoché inutilizzato con uno spreco di memoria e risorse.
Forse non ho capito. Tu hai una serie di pictureBox contetenti le immagini delle fiches di dotazione, ma dovresti averne anche una certa quantità per ciascun tipo di fiches. Guisto?
Poi dovresti avere creato sul tavolo delle PictureBox corrispondenti i tipi di fiches da puntare di volta in volta. Perciò, se tu hai creato gli oggetti PictureBox sul tavolo con la loro bellissima immagine , ma con la proprietà Visible=False, l'unica cosa che resterebbe da fare in ciascuna puntata, sarebbe, a mio avviso, quella di modificare lo status di detta proprieta in Visible=True ed il n° delle fiches in dotazione e di quelle oggetto della puntata corrente.
Però, ripeto, non ho chiara la gestione analizzata per il n° delle fiches di dotaziione e di ciascuna puntata, quindi mi viene difficile ragionare insieme a te la soluzione possibile da praticare. se ancora non hai risolto e se vuoi farmi capire come ha organizzato le quantuità di fiches per ciascun tipo, potrei collaborarti meglio.
 :ciao:
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 01 Novembre 2012, 21:50:51
Sarà meglio che metto in allegato il progetto altrimenti non ci capiamo più. ;D ;D
L'interfaccia è quasi completa, manca solo l'help che farò per ultimo, mentre a livello di codice manca ancora un pò di roba, ma prima di continuare voglio risolvere questo problema.
Prova ad usarlo e capirai.
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: vuott - 02 Novembre 2012, 17:02:18
E' stata colpa di una mia imprecisione nel mio precedente suggerimento.  :-X

Bisogna assegnare i valori richiesti al metodo .Copy.

Prova così:
Codice: gambas [Seleziona]

Public Sub Tavolo_Drop()

  fichestmp.Add(drag.Source)

  fiches = fichestmp.Copy(0, fichestmp.Count)

 ...etc...etc....
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Picavbg - 03 Novembre 2012, 17:30:53
Sarà meglio che metto in allegato il progetto altrimenti non ci capiamo più. ;D ;D
L'interfaccia è quasi completa, manca solo l'help che farò per ultimo, mentre a livello di codice manca ancora un pò di roba, ma prima di continuare voglio risolvere questo problema.
Prova ad usarlo e capirai.

Purtroppo non sono in condizioni di provare più niente. Di due ambienti operativi con dentro Gambas, ora me ne ritrovo zero. In fatti dopo avere abbandonato Sabayon, fedora ha deciso di non avviarsi più, perciò sono letteralmente nei guai, anche con i miei conti di cassa familiare. Nel frattempo il mio nuovo ambiente Mageia non ha nei propri repositori il pacchetto precompilato di Gambas, quindi dovrò partire dai sorgenti, ma la procedura é per me tutta da studiare.  :'( Ho reso l'idea?
Mi farò risentire, se ce ne sarà ancora biosogno, a conclusione delle mie attuali disavventure da febbre da cavallo  :-\
 :(
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 03 Novembre 2012, 17:49:12
Queste sono cose da winciof, non da Linux. Sicuro che la ceskhonite non abbia contaminato il tuo pc? :D :D
Comunque grazie dell'interessamento, appena riesci a sistemare il tutto dammi un parere sul progetto. :)
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Picavbg - 03 Novembre 2012, 17:55:07
Queste sono cose da winciof, non da Linux. Sicuro che la ceskhonite non abbia contaminato il tuo pc? :D :D
Comunque grazie dell'interessamento, appena riesci a sistemare il tutto dammi un parere sul progetto. :)
Chiedilo a vuott. É stato il mio medico virtuale per diverso tempo. Poi ha visto che io, non il mio pc, ero diventato incurabile e, per la disperazione, ha cambiato avatar.  :rotfl:
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 03 Novembre 2012, 18:27:23
Prova così:
Codice: gambas [Seleziona]

Public Sub Tavolo_Drop()

  fichestmp.Add(drag.Source)

  fiches = fichestmp.Copy(0, fichestmp.Count)


Niente da fare, non cambia nulla. :hatecomputer: :hatecomputer: :hatecomputer: :hard: :hard: :hard:
Anche facendo così, il riferimento all'originale rimane, che viene quindi spostato.
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: vuott - 04 Novembre 2012, 00:21:23
Niente da fare, non cambia nulla.
Anche facendo così, il riferimento all'originale rimane, che viene quindi spostato.

...ma mi dai conferma che almeno l'errore Type mismatch: così non viene sollevato ?
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 04 Novembre 2012, 01:20:58
Quello non c'è più, ma il problema rimane. Ho idea che dovrò inventarmi qualcosa d'altro. :-\
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: vuott - 04 Novembre 2012, 01:35:27
Quello non c'è più, ma il problema rimane. Ho idea che dovrò inventarmi qualcosa d'altro. :-\
Poiché avviene uno spostamento fisico dell'oggetto in questione, proporrei di rigenerare l'oggetto (nel nostro caso: la fiche) nel posto e con le medesime caratteristiche di quello spostato con il mouse.
Una cosa di 'sto genere:
Codice: gambas [Seleziona]

Public Sub Fiches_MouseDown()  ' Quando si clicca sull'immagine di una fiche...

'...viene generata in sostanza una nuova fiche...
   Dim picB As New PictureBox(Me) As "Fiches"

'...avente le caratteristiche di quella sulla quale si è cliccato:
   With picB
      .X = Last.X
      .Y = Last.Y
      .W = Last.W
      .H = Last.H
      .Picture = Last.Picture
      .Tag = Last.Tag
   End With

End


In questo caso, inoltre, non serve creare una copia dell'array. Quindi avremo:
Codice: gambas [Seleziona]

Public Sub Tavolo_Drop()

  fichestmp.Add(drag.Source)

  With Last
 
   fichestmp[fichestmp.max].x = Panel1.x + .x + (.width - fichestmp[fichestmp.max].width) \ 2
   fichestmp[fichestmp.max].y = Panel1.y + .y + (.height - fichestmp[fichestmp.max].height) \ 2

  ...etc...etc....


ma addirittura, se non serve ad altro, potresti eliminare l'array stesso:
Codice: gambas [Seleziona]

Public Sub Tavolo_Drop()

   With Last

     Drag.Source.X = Panel1.x + .x + (.width - Drag.Source.width) \ 2
     Drag.Source.Y = Panel1.y + .y + (.height - Drag.Source.height) \ 2

....etc...etc.....etc...
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 04 Novembre 2012, 13:55:03
E' un'idea... :ok:
Ci proverò. :coder:
Comunque l'array mi serve.
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: vuott - 04 Novembre 2012, 21:24:20
Ci proverò. :coder:

Il problema s'è risolto ?

A me funziona.
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 04 Novembre 2012, 22:41:30
Se Dio vuole FUNZIONAA!!! :2birre: :2birre: :2birre: :yeah: :yeah: :yeah:
Ora posso continuare. :coder:
Dove abiti che hai una birra pagata? ;)
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: vuott - 05 Novembre 2012, 01:40:57
Se Dio vuole FUNZIONAA!!! :2birre: :2birre: :2birre: :yeah: :yeah: :yeah:
Ora posso continuare. :coder:
Dove abiti che hai una birra pagata? ;)

Ecco un altro pazzo completo che si affida ad un asino come me !  :hard:
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: md9327 - 05 Novembre 2012, 10:39:35
Vedo che comunque riesci a farti dei "proseliti"...  ;D
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: vuott - 05 Novembre 2012, 10:45:44
Vedo che comunque riesci a farti dei "proseliti"...  ;D

Ho la stoffa del prete :devil: , pur non avendone la tonaca ! ;D
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 05 Novembre 2012, 13:07:40
Ho dovuto fare però una piccola modifica: rimpicciolire le fisches depositate sul tavolo in modo da lasciare un pò di spazio libero per poter depositare altre fiches sulle label del tavolo, perchè le picturebox non accettano il drop neppure settando a true la proprietà. Vi risulta?
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: vuott - 05 Novembre 2012, 13:20:26
....per poter depositare altre fiches sulle label del tavolo, perchè le picturebox non accettano il drop neppure settando a true la proprietà.

Come ti aiuterebbe l'evento Drop ?
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Picavbg - 05 Novembre 2012, 20:23:05
@Top Fuel:
Mi fa piacere che abbia risolto. Io invece sono rimasto in mezzo ad un mare senza alito di vento "gambas" e rischio, se non riprende la sua brezza salvatrice, di restarvi, come ancorato, per sempre.
 :(
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: fsurfing - 05 Novembre 2012, 21:10:21
Citazione
Io invece sono rimasto in mezzo ad un mare senza alito di vento "gambas" e rischio, se non riprende la sua brezza salvatrice, di restarvi, come ancorato, per sempre.
che cosa brutta!
che cosè che ti turba?
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 05 Novembre 2012, 21:24:57
....per poter depositare altre fiches sulle label del tavolo, perchè le picturebox non accettano il drop neppure settando a true la proprietà.

Come ti aiuterebbe l'evento Drop ?

Nel caso si voglia depositare più di una fiches sullo stesso numero.
Per ora ho risolto così, ma è una soluzione che non mi convince al 100%.
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 05 Novembre 2012, 21:26:36
@Top Fuel:
Mi fa piacere che abbia risolto. Io invece sono rimasto in mezzo ad un mare senza alito di vento "gambas" e rischio, se non riprende la sua brezza salvatrice, di restarvi, come ancorato, per sempre.
 :(

Su, abbi fede. Pensa se usavi windows, altro che bonaccia, eri in mezzo ad un fortunale! :D
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Picavbg - 05 Novembre 2012, 23:01:22
Citazione
Io invece sono rimasto in mezzo ad un mare senza alito di vento "gambas" e rischio, se non riprende la sua brezza salvatrice, di restarvi, come ancorato, per sempre.
che cosa brutta!
che cosè che ti turba?
questo (http://www.gambas-it.org/smf/index.php?topic=2394.new;topicseen#new)
 :(
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: vuott - 06 Novembre 2012, 02:23:11
Nel caso si voglia depositare più di una fiches sullo stesso numero.
Per ora ho risolto così, ma è una soluzione che non mi convince al 100%.
Cioè vorresti che, qualora vengano poste sullo stesso numero più fiches, siano visibili tutte quante.
...mi viene in mente che dovresti modificare le coordinate di ciascuna fiche rispetto a quelle precedenti.
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 06 Novembre 2012, 17:19:03
Cioè vorresti che, qualora vengano poste sullo stesso numero più fiches, siano visibili tutte quante.
...mi viene in mente che dovresti modificare le coordinate di ciascuna fiche rispetto a quelle precedenti.

Anche questa è una cosa che mi piacerebbe fare, cioè le fiches tonde che restano sopra quelle quadrate più grandi, ma mi sa che è una cosa troppo complicata, per ora va bene così.
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: vuott - 06 Novembre 2012, 23:56:15
... ma mi sa che è una cosa troppo complicata....

...complicato cambiare le coordinate X e Y di un oggetto ?!

Potrei suggerirti, magari, di introdurre le fiches all'interno del riquadro del numero, scelto dal giocatore, in una posizione casuale. Quindi, volendo vedere le varie fiches lì depositate, si potrebbero spostare - ovviamente all'interno del loro riquadro - sempre in modo casuale, cliccando sopra ciascuna di esse.

Faccio un esempio banale. Poniamo in un form un ampio Panel ed un Button, poi:
Codice: gambas [Seleziona]

Private c As Byte


Public Sub Button1_Click()      
      
  Dim tl As TextLabel
  Dim a, x, y As Byte

    a = Rnd(30, 50)

  x = Rnd(Panel1.X, Panel1.W - a)
  y = Rnd(Panel1.Y, Panel1.H - a)

   With tl = New TextLabel(Frame1) As "tl"
        .X = x
        .Y = y
        .W = a
        .H = a
        .Text = c
        .Border = Border.Sunken
        .Background = Color.RGB(a + x, x + y, y + a)
    End With

    Inc c

End


Public Sub tl_MouseDown()
  
    With Last
      .X = Rnd(Panel1.X, Panel1.W - Last.W)
      .Y = Rnd(Panel1.Y, Panel1.H - Last.H)
    End With

End


Dopo aver creato alcune TextLabel colorate, cliccando varie volte sul Button, se clicchiamo su una TextLabel, la vedremo spostarsi altrove all'interno del Panel.
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 07 Novembre 2012, 00:44:34
Non è quello il problema. Quello che vorrei fare è che le fiches piccole appaiano SOPRA quella grandi.
Anche la tua soluzione non è male, proverò ad usarla per vedere che effetto fa.
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: vuott - 07 Novembre 2012, 00:53:47
Non è quello il problema. Quello che vorrei fare è che le fiches piccole appaiano SOPRA quella grandi.

Capisco, suppongo si debba modificare l'ordine gerarchico delle fiches.... ma devi considerare anche il caso in cui nello stesso riquadro di un numero vengano poste due fiches della medesima dimensione.

In questo caso devi poter spostare la fiche che sta sopra per vedere quella sottostante; e così può risultare utile il mio precedente suggerimento.

......oppure potresti, più semplicemente, spostarle trascinandole con il mouse nuovamente con un Drag&Drop.

Entrambi i miei precedenti suggerimenti prevedono un intervento manuale con il mouse sulle fiches per ottenere il loro spostamento; mentre tu - sembra - preferisci un riordino automatico delle fiches ponendo in fondo quelle più grandi. Si potrebbe in questo caso operare sulla falsariga del banale esempio che segue. Poniamo sul form l'una sull'altra in pila 4 TextLabel aventi diverse dimensioni orizzontali e magari diversi colori:
Codice: gambas [Seleziona]

Public Sub Form_Open()

  Dim cl As Control
  Dim j As Byte


With FMain

' Verifichiamo la dimensione orizzontale di ciascuna "TextLabel" con le altre:
  For Each cl In .Children
    For j = 0 To .Children.Count - 1
' Se la dimesione orizzontale della "TextLabel" in questione
' è maggiore dell'altra considerata per la verifica...
      If cl.W > .Children[j].W Then
'...viene posta in posizione di livello visivo inferiore:
' ossia nella pila delle 4 "TextLabel" viene posta al di sotto:
        cl.Lower
      Endif
    Next
  Next
  
End With

End

Le TextLabel saranno riordinate in pila sulla base della loro dimensione orizzontale: quelle più grandi in fondo alla pila e quelle più piccole gradatamente in cima.
Nel tuo caso specifico, però, bisognerà comunque prevedere un leggero spostamento delle coordinate delle fiches aventi medesime dimensioni, poichè - seppur poste al di sopra di quelle più grandi - si disturberebbero ovviamente fra loro.
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 07 Novembre 2012, 16:52:15
Ho provato ad implementare il posizionamento casuale: bello, mi piace, va bene così. :ok:
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 17 Aprile 2014, 16:21:15
Riprendo questa discussione per un piccolo esercizio personale sul drag&drop dei colori.
Prendendo spunto da una funzione che aveva il S.O. che usavo prima di Debian (OS/2 Warp 4), che aveva la possibilità di cambiare i colori di ogni finestra facendo il drag&drop dei colori da una tavolozza, ho scritto questo programmino dove ci sono 4 Picturebox colorate editabili dove cliccando con il tasto sinistro e trascinando si può cambiare il colore di sfondo del form o, a scelta con i 2 radiobutton, cambiare il colore di testo o sfondo della Label. Riguardo i nomi, vabbé... ;D
C'è un solo problema che non riesco a risolvere: in OS/2, l'icona di trascinamento diventava un secchiello di vernice con la vernice che usciva di lato del colore selezionato. Ho provato a rifare la stessa cosa con una Picture di supporto e istruzioni grafiche, ma il colore non cambia. Ho provato varie cose ma niente da fare.
Che ne pensate del programmino?
Idee per risolvere il problema?
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: vuott - 17 Aprile 2014, 20:01:09
Idee per risolvere il problema?
In vero, non so come potresti colorare con le funzioni della Classe Paint escusivamente la parte dell'immagine rappresentante la vernice che esce fuori dal secchio..  :-\

Ad ogni modo io proporrei la ricostruzione di quella vernice attraverso la funzione Paint.Polygon()... 'na faticaccia m'hai fatto fare !  :violent:
Aggiungerei che potresti sintetizzare un po' il codice eliminando anche la PictureBox chiamata Iconasecchio.
Ecco, come io riscriverei la funzione Colori_MouseDrag() del tuo progetto:
Codice: gambas [Seleziona]
Public Sub Colori_MouseDrag() 'draghiamo un colore

   tmp = Image.Load("Secchiello.png")

   With Last   ' il riquadro da dove parte il drag
     coloredrag = .Background   'il colore da usare
   
     With Paint
       .Begin(tmp)
       .Brush = Paint.Color(coloredrag)
       .Polygon([8, 6, 13, 11, 14, 10, 38, 18, 17])   '...il poligono può essere migliorato  :-)
       .Fill     ' colora la "vernice che esce", ossia il poligono prima definito
       .End
     End With
   
     If Mouse.Left Then   ' il secchiello è l'icona del drag&drop
       Drag.Icon = tmp.Picture
       .Drag(tmp.Picture.Image)
     Endif

   End With

End


   :-X
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Gianluigi - 17 Aprile 2014, 21:09:23
Riprendo questa discussione per un piccolo esercizio personale sul drag&drop dei colori.
Prendendo spunto da una funzione che aveva il S.O. che usavo prima di Debian (OS/2 Warp 4), che aveva la possibilità di cambiare i colori di ogni finestra facendo il drag&drop dei colori da una tavolozza, ho scritto questo programmino dove ci sono 4 Picturebox colorate editabili dove cliccando con il tasto sinistro e trascinando si può cambiare il colore di sfondo del form o, a scelta con i 2 radiobutton, cambiare il colore di testo o sfondo della Label. Riguardo i nomi, vabbé... ;D
C'è un solo problema che non riesco a risolvere: in OS/2, l'icona di trascinamento diventava un secchiello di vernice con la vernice che usciva di lato del colore selezionato. Ho provato a rifare la stessa cosa con una Picture di supporto e istruzioni grafiche, ma il colore non cambia. Ho provato varie cose ma niente da fare.
Che ne pensate del programmino?
Idee per risolvere il problema?

Il programma mi piace e mi ha insegnato qualcosa in più, grazie. :D
E poi è spiritoso cosa che a me (ma non solo a me ;)) piace moltissimo

Giustamente vuott (per me numero 1 :ok:) mi ha preceduto con gli effetti speciali.

Del resto la classe non è acqua...

Io più modestamente volevo proporre questa semplice aggiunta al tuo codice prima di passare tmp a  paint.begin.

tmp.Colorize(coloredrag)

in effetti colora la parte opaca, se ti va, potresti sfruttarla facendo delle bombolette sprai al posto del solito secchiello.
 :ciao:

PS: Ti ho creato una bomboletta che allego spero ti piaccia
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 17 Aprile 2014, 22:42:58
In vero, non so come potresti colorare con le funzioni della Classe Paint escusivamente la parte dell'immagine rappresentante la vernice che esce fuori dal secchio..  :-\

Mi pare strano che con Gambas non si possa colorare un'area circoscritta.   ???
Lo facevo con il Basic del Commodore 16 che avevo 25 anni fà... :-\
In ogni caso grazie a tutti e 2 per i suggerimenti, la bomboletta è sicuramente disegnata meglio del mio secchiello (non che ci voglia granché a disegnare meglio di me... :D) ma Colorize colora il secchiello; a me serviva la vernice... ;D
Ci lavorerò su per una versione migliorata. :)
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: vuott - 17 Aprile 2014, 23:32:35
Mi pare strano che con Gambas non si possa colorare un'area circoscritta.   ???
...ma come delimiti, definisci quell'area circoscritta ? Io ho dovuto delimitarla con la funzione .Polygon()


...la bomboletta è sicuramente disegnata meglio del mio secchiello ...ma Colorize colora il secchiello; a me serviva la vernice...
Ci lavorerò su per una versione migliorata.
Poiché l'immagine proposta da Gianluigi prevede, come spruzzo, alcune linee, potresti utilizzare la funzione di Paint che disegna le linee....  ;D
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Gianluigi - 18 Aprile 2014, 11:52:31
Mi pare strano che con Gambas non si possa colorare un'area circoscritta.   ???
,,,

Più o meno lo ottieni come ti ho detto io, se vuoi il secchiello, guarda un po questo per ispirarti.  ;)

 :ciao:
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Gianluigi - 18 Aprile 2014, 15:22:04
Nuove ispirazioni  ;D
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Gianluigi - 18 Aprile 2014, 16:18:23
Fermatemi  :o

Allego boboletta che spruzza stelle colorate (basta sempre passare tmp.Colorize(coloredrag))

 :ciao:
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: vuott - 18 Aprile 2014, 18:21:31
Allego bomboletta che spruzza stelle colorate (basta sempre passare tmp.Colorize(coloredrag))


Però, come ti ha già fatto notare Top Fuel:
ma Colorize colora il secchiello; a me serviva la vernice...
La funzione .Colorize() va a colorare anche la bottiglietta e non soltanto le... stelline.   :-\
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Gianluigi - 18 Aprile 2014, 18:31:12
Però, come ti ha già fatto notare Top Fuel:
La funzione .Colorize() va a colorare anche la bottiglietta e non soltanto le... stelline.   :-\

E allora beccatevi gli effetti speciali!!! (Sempre colorize) ;D



Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: vuott - 18 Aprile 2014, 18:46:35
...effetti speciali!!! (Sempre colorize) ;D


mmm.... devo dire che questa soluzione è più interessante !  (http://levipere.com/wp-content/plugins/smilies-themer/Axendr/asd.gif)
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Gianluigi - 18 Aprile 2014, 20:02:53

mmm.... devo dire che questa soluzione è più interessante !  (http://levipere.com/wp-content/plugins/smilies-themer/Axendr/asd.gif)

Alla fin fine non bisogna applicare un riempimento se non si vuole che questo (il riempimento) si colori.
Devo trovare qualche escamotage per i colori. Ho paura però che non ce ne siano.  :-\
Se uno deve colorare il secchiello o qualunque altra cosa, e non vuole che il colore cambi, mi sa che è obbligato a seguire le tue istruzioni.  :ok:

 :ciao:
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: vuott - 18 Aprile 2014, 20:56:41
Se uno deve colorare il secchiello o qualunque altra cosa, e non vuole che il colore cambi, mi sa che è obbligato a seguire le tue istruzioni. 
La mia soluzione, abbastanza fastidiosa e complessa con il metodo .Polygon(), consente che il colore cambi. Ciò ovviamente continuando nell'ambito della Classe Paint .
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Gianluigi - 18 Aprile 2014, 22:02:20
La mia soluzione, abbastanza fastidiosa e complessa con il metodo .Polygon(), consente che il colore cambi. Ciò ovviamente continuando nell'ambito della Classe Paint .

Concordo il sistema da me adottato è molto più semplice e se non si pretende di avere colori al di fuori di quelli che devono cambiare(esempio il secchiello colorato di Top Fuel) è più semplice e permette disegni più “armoniosi”.

Buonanotte

 :ciao:
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 19 Aprile 2014, 15:27:23
Mi piace Secchio4.png, è piccola come voglio io. ;)
Modifiche del programma in vista.
Nel frattempo sto lavorando su un'altra cosina simpatica, stavolta scientifica. ;)
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Gianluigi - 20 Aprile 2014, 14:30:35
La mia soluzione, abbastanza fastidiosa e complessa ... Ciò ovviamente continuando nell'ambito della Classe Paint .

 :o

quale altro ambito  ???
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: vuott - 20 Aprile 2014, 23:27:41
quale altro ambito   ???
Intendevo dire restando ad operare con la classe Paint.
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 24 Aprile 2014, 13:32:05
Versione riveduta e corretta del programma tramite i suggerimenti che mi avete dato. Ora si può scegliere il tipo di icona tra quelle che ha creato Gianluigi. :)
Va meglio così? :)
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Gianluigi - 24 Aprile 2014, 15:50:15
Versione riveduta e corretta del programma tramite i suggerimenti che mi avete dato. Ora si può scegliere il tipo di icona tra quelle che ha creato Gianluigi. :)
Va meglio così? :)

Bravo Top Fuel è proprio forte.  :ok:
E che forza che è Gambas, pensa a creare un'applicazione dimostrativa uguale con un linguaggio, diciamo così, più blasonato. Conta quante righe di codice occorrerebbero per ottenere lo stesso risultato!

PS: Ma poi il nuovo cancello suona bene o no?  :rotfl:
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 24 Aprile 2014, 18:58:05
PS: Ma poi il nuovo cancello suona bene o no?  :rotfl:

Lo sai che hai firmato la tua condanna a morte? :skull: :angel:
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Gianluigi - 25 Aprile 2014, 15:05:37

Lo sai che hai firmato la tua condanna a morte? :skull: :angel:

Non ci posso credere che vuott, malgrado la “pierinata”, ti (ci) abbia messo una pietra sopra...  :o  al limite una chiave di violino.  ;D
Ricordati che è devoto a San Midi e le persone devote oltre che a cantar lodi devono operare il perdono, pena le fiamme eterne. :evil:
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: vuott - 25 Aprile 2014, 17:08:22

... ti (ci) abbia messo una pietra sopra...  ...
...ma a cosa ?  :-\
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Top Fuel - 25 Aprile 2014, 18:33:40
Faac... ;D
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Gianluigi - 25 Aprile 2014, 19:48:37
...ma a cosa ?  :-\
E già chissà cosa volevo dire? Penso sia colpa del cambio di stagione  :rolleyes:


Faac... ;D
Ora basta fare il Pierino altrimenti verrai condannato a scrivere... codice utile!  >:(
Titolo: Re: Il drag&drop, questo (per me) sconosciuto
Inserito da: Gianluigi - 26 Aprile 2014, 13:56:55

Faac... ;D
... e io non potrò più aiutarti!  :'(