Autore Topic: COME PARTIRE?  (Letto 5365 volte)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.269
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: COME PARTIRE?
« Risposta #15 il: 13 Ottobre 2013, 19:16:54 »
Sono partito dall'esempio DragNDrop 3.2.0. L'ho modificato, riducendo il codice all'essenziale ed aggiungendo una ScrollView. Nella ScrollView ho posto, poi, una PictureBox7.
Codice: gambas [Seleziona]

Public Sub PictureBox1_MouseDrag()

  If Mouse.Left Then
    Drag.Icon = Last.Picture
    Last.Drag(Last.Picture.Image)
  Endif

End


Public Sub TreeView1_Drop()

   PictureBox7.Picture = Drag.Data.Picture

End


Public Sub ScrollView3_Drop()
 
    PictureBox7.Picture = Drag.Data.Picture
  
End


Dunque, prendendo un'immagine, posta nel pannello laterale destro (è rimasto identico all'esempio originale), e, dopo averla trascinata, la rilascio all'interno della TreeView1, l'immagine viene mostrata nella nuova PictureBox7 (posta nella ScrollView).
Se, invece, la rilascio all'interno della ScrollView, non accade niente.
Attualmente, non so il perché.
« 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 kicco

  • Senatore Gambero
  • ******
  • Post: 1.702
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re: COME PARTIRE?
« Risposta #16 il: 13 Ottobre 2013, 19:21:52 »
Grazie Vuott
anch'io nelle mie modeste e confusionarie prove ho avuto lo stesso problema!

intanto provo il tuo codice! :)
 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.269
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: COME PARTIRE?
« Risposta #17 il: 13 Ottobre 2013, 19:26:27 »
Se, invece, la rilascio all'interno della ScrollView, non accade niente.
Attualmente, non so il perché.

Allora, kikko: svelato l'arcano !

La proprietà .Drop dell'oggetto, che deve sollevare l'evento _Drop(), deve essere posta a True !

Quindi il codice di sopra diventa (tenendo conto che la proprietà .Drop dell'oggetto TreeView1 dell'esempio originario DragNDrop 3.2.0 era nell'Ide già posta a True ):
Codice: gambas [Seleziona]

Public Sub Form_Open()

   ScrollView3.Drop = True

End


Public Sub PictureBox1_MouseDrag()  
      
     If Mouse.Left Then  
       Drag.Icon = Last.Picture  
       Last.Drag(Last.Picture.Image)  
     Endif  
      
End  
      
      
Public Sub TreeView1_Drop()  
      
      PictureBox7.Picture = Drag.Data.Picture  
      
End  
      
      
Public Sub ScrollView3_Drop()  
      
       PictureBox7.Picture = Drag.Data.Picture  
      
End  
« Ultima modifica: 13 Ottobre 2013, 23:21:57 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 kicco

  • Senatore Gambero
  • ******
  • Post: 1.702
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re: COME PARTIRE?
« Risposta #18 il: 13 Ottobre 2013, 21:09:35 »
 :ok:
 :)
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.702
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re: COME PARTIRE?
« Risposta #19 il: 13 Ottobre 2013, 21:27:23 »
Vuott
ma sai che non va, fa il drag ma non il drop, non capisco cosa sbaglio!
Non droppa sia nello ScrollView che nel TreeView :'(
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.269
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: COME PARTIRE?
« Risposta #20 il: 13 Ottobre 2013, 23:40:18 »
Non droppa sia nello ScrollView che nel TreeView


Innanzitutto, devo precisare che anche la proprietà .Drop dell'oggetto TreeView deve essere posta  ovviamente a .True.


Mah.... è strano che non funzioni...

Fai questa semplice prova:
* su un Form poni un oggetto VPanel, nel quale poni tre PictureBox. Nell'IDE - per fare prima - assegni a ciascuna di queste PictureBox il medesimo nome di Gruppo (ad esempio: pb). Quindi assegni ancora a ciascuna di esse una diversa immagine.
* sul Form poni anche un oggetto ScrollView, nel quale poni una sola PictureBox (che così avrà il nome PictureBox4).
* infine dai il seguente codice all'applicativo-prova:
Codice: gambas [Seleziona]

Public Sub Form_Open()

  ScrollView1.Drop = True

End


Public Sub pb_MouseDrag()
  
  If Mouse.Left Then  
   Drag.Icon = Last.Picture  
   Last.Drag(Last.Picture.Image)  
 Endif  
  
End

Public Sub ScrollView1_Drop()
  
   PictureBox4.Picture = Drag.Data.Picture
  
End

Questo è sostanzialmente il codice essenziale per generare un completo evento Drag-Drop
« 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 kicco

  • Senatore Gambero
  • ******
  • Post: 1.702
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re: COME PARTIRE?
« Risposta #21 il: 14 Ottobre 2013, 11:50:35 »
 :)
Grazie Vuott,
adesso funziona, devo ora trovare il modo di mettere l'icona dove voglio sul PictureBox4 perchè adesso si droppa allineandosi secondo ciò che c'è nel campo Alignment nell'IDE
 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 960
    • Mostra profilo
Re: COME PARTIRE?
« Risposta #22 il: 15 Ottobre 2013, 17:46:13 »
Nel mio progettino che simula la roulette nell'evento drop del tavolo di gioco per posizionare le fiches sul numero scelto in posizione casuale ma senza uscire ho fatto così:

Codice: [Seleziona]
fiches[fiches.max].Reparent(Tavolodigioco)
fiches[fiches.max].x = Tavolodigioco.x + .x + CInt(Rnd(0, .width - fiches[fiches.max].width))
fiches[fiches.max].y = Tavolodigioco.y + .y + CInt(Rnd(0, .height - fiches[fiches.max].height))

Magari può esserti d'aiuto. :)
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 kicco

  • Senatore Gambero
  • ******
  • Post: 1.702
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re: COME PARTIRE?
« Risposta #23 il: 16 Ottobre 2013, 11:06:37 »
 :ciao:
grazie Top Fuel,
immagino però che le tue fiches finiscano su una griglia, mentre io devo di fatto, sovrapporre ad una cartina geografica delle immagini (icone?) che indichino la posizione delle tende scout.

Sto valutando se il componente gb.image possa aiutarmi perchè usando drawarea o pictureBox non ho cavato un ragno dal buco.

Ho anche cercato nelle applicazioni sia d'esempio che nell'area download, ma senza risultato.
D'altra parte mi sembra interessante capire come fare questo gioco perchè ne vedo molte applicazioni possibili oltre alla gestione del campo scout!
 :)
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline splugenbrau

  • Grande Gambero
  • ***
  • Post: 205
    • Mostra profilo
Re: COME PARTIRE?
« Risposta #24 il: 16 Ottobre 2013, 11:35:30 »
Ciao kicco, Top Fuel, vuott,
quando ho impiegato gli oggetti e metodi e proprietà riguardo
a DrawingArea, Picture e Image
sembrava non funzionare niente finchè non ho
settato la proprietà Cached=True.
..se può essere d'aiuto. Ciao.
« Ultima modifica: 16 Ottobre 2013, 12:09:07 da splugenbrau »

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.702
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re: COME PARTIRE?
« Risposta #25 il: 16 Ottobre 2013, 12:34:07 »
Ciao splugenbrau,
qui tutto è d'aiuto!
 :)
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: COME PARTIRE?
« Risposta #26 il: 16 Ottobre 2013, 13:18:55 »
a mio parere la cos amigliore è utilizzare un drawing area , io con questo componente ho realizzato di tutto,

se vuoi un esempio prova a vederti i sorgenti di chiama uno  http://www.tutto-opensource.org/chiamauno.html (sono per g2 ma credo che la conversione in g3 non presenti grossi problemi) magari trovi qualche dritta
« Ultima modifica: 16 Ottobre 2013, 13:20:42 da fsurfing »

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.702
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re: COME PARTIRE?
« Risposta #27 il: 16 Ottobre 2013, 18:08:07 »
 :)
Grazie fsurfing,
sto dando un'occhiata.
 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 960
    • Mostra profilo
Re: COME PARTIRE?
« Risposta #28 il: 16 Ottobre 2013, 22:32:14 »
:ciao:
grazie Top Fuel,
immagino però che le tue fiches finiscano su una griglia, mentre io devo di fatto, sovrapporre ad una cartina geografica delle immagini (icone?) che indichino la posizione delle tende scout.

No, finiscono su delle Label dentro in un Panel.
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 fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: COME PARTIRE?
« Risposta #29 il: 16 Ottobre 2013, 22:37:15 »
Citazione
Grazie fsurfing,
sto dando un'occhiata.
tieni presente che essendo un progetto per g2 , utilizza i metodi draw, in g3 poui anche utilizzare i metodi paint che ti permettono di utilizzare le trasparenze , quardati l' esempio  painting di gamas3 per utilizzare paint