Pagina 3 di 4 primaprima 1 2 3 4 ultimoultimo
Visualizzazione dei risultati da 21 a 30 su 32
  1. #21
    Utente di HTML.it L'avatar di fu510n
    Registrato dal
    Sep 2005
    Messaggi
    137
    Ti ho fatto un esempio da cui puoi partire... mostra una planimetria... click destro sulla planimetria "Aggiungi Postazione" ... puoi spostare gli estintori... click destro su un estintore "Rimuovi".

    http://digilander.libero.it/cmfusion...iEstintori.rar


    Spero ti sia di aiuto

    Ciaooo
    Fusion

    Currency Text Box (Updated: 16 Maggio 2008): http://digilander.libero.it/cmfusion/CurrencyTextBox.html

  2. #22
    Utente di HTML.it L'avatar di fu510n
    Registrato dal
    Sep 2005
    Messaggi
    137
    Dimenticavo... (scusate ma non mi fa modificare)

    Il codice è in Visual Basic Net. Spero ti sia ugualmente utile
    Fusion

    Currency Text Box (Updated: 16 Maggio 2008): http://digilander.libero.it/cmfusion/CurrencyTextBox.html

  3. #23
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    Grazie, gentilissimo!

    Non riesco a caricare il progetto.. mi dice:
    codice:
    ... 
    progetto importato C:\Microsoft.VisualBasic.targets non trovato. 
    Verificare che il percorso nella dichiarazione <Import> sia corretto 
    e che il file sia presente sul disco.
    cmq ho visto l'eseguibile e mi piace molto l'idea

  4. #24
    Utente di HTML.it L'avatar di fu510n
    Registrato dal
    Sep 2005
    Messaggi
    137
    Usi Visual Studio 2008? ^^ Ho tralasciato questo particolare....
    Fusion

    Currency Text Box (Updated: 16 Maggio 2008): http://digilander.libero.it/cmfusion/CurrencyTextBox.html

  5. #25
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    Originariamente inviato da chipdb
    Codice PHP:
    public partial class Postazione UserControl
    {
        public 
    Postazione(float xfloat y)
        {
            
    InitializeComponent();
            
    Left x;
            
    Top y;
            
    //Width = larghezza dell'immagine
            //Height = altezza dell'immagine
        
    }

        protected 
    override void OnPaint(PaintEventArgs e)
        {
            
    base.OnPaint(e);

            
    Graphics graphics e.Graphics;
            
    Image image System.Drawing.Bitmap.FromFile("img/estintori.gif");

            
    graphics.DrawImageUnscaled(image00);
        }

    perfetto! grazie

    però ho dovuto commentare InitialeComponent() perché mi dice che non esiste nel contesto corrente..

  6. #26
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    Originariamente inviato da fu510n
    Usi Visual Studio 2008? ^^ Ho tralasciato questo particolare....
    2005

  7. #27
    Utente di HTML.it L'avatar di fu510n
    Registrato dal
    Sep 2005
    Messaggi
    137
    Comunque sia, ho utilizzato un sistema semplicissimo.
    Ho inserito nel form ("Main") un Panel("Mappa") che come sfondo ha l'immagine della mappa.. (la planimetria).
    Due ContextMenu("MenuContestualeAggiungi", "MenuContestualeRimuovi") per la gestione dell'inserimento e la rimozione delle immagini dell'estintore.
    Poi ho gestito tutto da codice come segue (codice del form "Main"):

    codice:
        Dim Immagine As Bitmap
        Dim LastContextSender As PictureBox
    
        Private Sub DragMouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
            If e.Button = Windows.Forms.MouseButtons.Left Then
                DirectCast(sender, PictureBox).DoDragDrop(sender, DragDropEffects.Move)
            ElseIf e.Button = Windows.Forms.MouseButtons.Right Then
                LastContextSender = sender
            End If
        End Sub
    
        Private Sub Mappa_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Mappa.DragDrop
            Dim DraggingObject As PictureBox = e.Data.GetData(GetType(PictureBox))
            Console.WriteLine(DraggingObject.Name)
            DraggingObject.Location = Mappa.PointToClient(New Point(e.X - (DraggingObject.Size.Width / 2), e.Y - (DraggingObject.Height / 2)))
            DraggingObject = Nothing
            e.Effect = DragDropEffects.None
        End Sub
    
        Private Sub Mappa_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Mappa.DragEnter
            e.Effect = DragDropEffects.Move
        End Sub
    
        Private Sub AggiungiPostazioneToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AggiungiPostazioneToolStripMenuItem.Click
            Mappa.SuspendLayout()
            Dim Postazione As New PictureBox
            Postazione.Size = New Size(20, 20)
            Postazione.Location = Mappa.PointToClient(New Point(Me.MenuContestualeAggiungi.Left - Postazione.Size.Width / 2, Me.MenuContestualeAggiungi.Top - Postazione.Size.Height / 2))
            Postazione.BackgroundImage = Immagine
            Postazione.BorderStyle = BorderStyle.FixedSingle
            Postazione.ContextMenuStrip = MenuContestualeRimuovi
            AddHandler Postazione.MouseDown, AddressOf DragMouseDown
            Mappa.Controls.Add(Postazione)
            Mappa.ResumeLayout()
        End Sub
    
        Private Sub RimuoviToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RimuoviToolStripMenuItem.Click
            LastContextSender.Dispose()
        End Sub
    
        Private Sub Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Immagine = New Bitmap(Application.StartupPath & "\estintore.jpg")
        End Sub
    Fusion

    Currency Text Box (Updated: 16 Maggio 2008): http://digilander.libero.it/cmfusion/CurrencyTextBox.html

  8. #28
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    Non riesco a far funzionare il Drag&Drop.. probabilmente non ne ho capito il meccanismo

  9. #29
    Utente di HTML.it L'avatar di fu510n
    Registrato dal
    Sep 2005
    Messaggi
    137
    Di seguito trovi il codice della finestra principale in C#.

    Oggetti ... (Nome -> Tipo)

    frmMain -> Form
    Mappa -> Panel
    MenuContestualeAggiungi -> ContextMenuStrip
    AggiungiPostazioneToolStripMenuItem -> ToolStripMenuItem
    MenuContestualeRimuovi -> ContextMenuStrip
    RimuoviToolStripMenuItem -> ToolStripMenuItem


    codice:
    public partial class frmMain : Form
    { 
        public frmMain()
        {
            InitializeComponent();
        }
    
        Bitmap Immagine; 
        PictureBox LastContextSender; 
    
        private void DragMouseDown(object sender, System.Windows.Forms.MouseEventArgs e) 
        { 
            if (e.Button == Windows.Forms.MouseButtons.Left) { 
                ((PictureBox)sender).DoDragDrop(sender, DragDropEffects.Move); 
            } 
            else if (e.Button == Windows.Forms.MouseButtons.Right) { 
                LastContextSender = sender; 
            } 
        } 
    
        private void Mappa_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) 
        { 
            PictureBox DraggingObject = e.Data.GetData(typeof(PictureBox)); 
            Console.WriteLine(DraggingObject.Name); 
            DraggingObject.Location = Mappa.PointToClient(new Point(e.X - (DraggingObject.Size.Width / 2), e.Y - (DraggingObject.Height / 2))); 
            DraggingObject = null; 
            e.Effect = DragDropEffects.None; 
        } 
    
        private void Mappa_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) 
        { 
            e.Effect = DragDropEffects.Move; 
        } 
    
        private void AggiungiPostazioneToolStripMenuItem_Click(object sender, System.EventArgs e) 
        { 
            Mappa.SuspendLayout(); 
            PictureBox Postazione = new PictureBox(); 
            Postazione.Size = new Size(20, 20); 
            Postazione.Location = Mappa.PointToClient(new Point(this.MenuContestualeAggiungi.Left - Postazione.Size.Width / 2, this.MenuContestualeAggiungi.Top - Postazione.Size.Height / 2)); 
            Postazione.BackgroundImage = Immagine; 
            Postazione.BorderStyle = BorderStyle.FixedSingle; 
            Postazione.ContextMenuStrip = MenuContestualeRimuovi; 
            Postazione.MouseDown += DragMouseDown; 
            Mappa.Controls.Add(Postazione); 
            Mappa.ResumeLayout(); 
        } 
    
        private void RimuoviToolStripMenuItem_Click(object sender, System.EventArgs e) 
        { 
            LastContextSender.Dispose(); 
        } 
    
        private void Main_Load(object sender, System.EventArgs e) 
        { 
            Immagine = new Bitmap(Application.StartupPath + "\\estintore.jpg"); 
        } 
    }
    Il codice non è testato (ho installato solo il VB su VS2008)... però spero che così ti sia più chiaro.
    Fusion

    Currency Text Box (Updated: 16 Maggio 2008): http://digilander.libero.it/cmfusion/CurrencyTextBox.html

  10. #30
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    Originariamente inviato da fu510n
    Il codice non è testato (ho installato solo il VB su VS2008)... però spero che così ti sia più chiaro.
    ok funziona.. ho dovuto aggiungere solo un paio di cast e l'istruzione Mappa.AllowDrop=true;

    devo capire se mi conviene o meno creare una classe Postazione e mettere quanto più codice possibile lì dentro... considerando anche che le aree (e quindi le mappe) saranno più di una e tutti i dati (tra i quali le coordinate delle postazioni sulla mappa) dovranno essere letti e salvati da un database oracle.

    ah... sarebbe anche carino che al passaggio del mouse sopra una postazione vengano mostrate delle info relative a quella postazione.. questo come lo faccio? sempre con un contextmenu?

    Grazie 1000 ad entrambi

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 © 2026 vBulletin Solutions, Inc. All rights reserved.