Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Buongiorno a tutti. Da due giorni sto impazzendo a cercare di scrivere in Vb.Net lo snippet di una libreria Open Source per effettuare Polygon clipping.
La libreria è allegata.
Si tratta di una semplice form con un Panel1.
Il codice in c# riportato da Angus (l'autore) è il seguente:
PrivateSub Panel1_Paint(sender As System.Object, e As System.Windows.Forms.PaintEventArgs)Handles Panel1.Paint
e.Graphics.DrawPolygon(Pens.AliceBlue, subj)
e.Graphics.DrawPolygon(Pens.AliceBlue, clip)
Me.Invalidate()
EndSub
EndClass
L'autore mi ha riferito che presumbilmente l'errore è da ricercare nel data type delle liste che devono essere INT64. Nel codice ho già tentato la conversione ma un errore InvalidOperationException sin dalle prime righe si manifesta nonappena avvio il debug.
Ho provato a seguire il tuo consiglio (in realtà alcuni tentativi in tal senso erano già stati esperiti) ma senza risultati. In particolare la traduzione da C# a VB.net delle prime istruzioni conduce a:
Codice sorgente - presumibilmente VB.NET
Imports ClipperLib
Imports Polygon = List(Of IntPoint)
Imports Polygons = List(Of List(Of IntPoint))
Publicclass Form1
...
Endclass
Già solo tali istruzioni per VB.net conducono a 3 errori e 2 avvisi relativamente a:
Tipo 'Intpoint' non definito (x 2)
Tipo 'List' non definito (x1)
Qulache idea?
Ultima modifica effettuata da maikarki il 07/06/2012 alle 11:56
Presumibilmente gli errori ti vengono segnalati a causa del fatto che nel file VB non hai indicato quali spazi dei nomi stai utilizzando, per risolvere tale problema o li dichiari o scrivi i tipi nella forma completa.
List diventa System.Collection.Generics.List(Of ...)
{"Errore durante la creazione del form. Per informazioni dettagliate vedere Exception.InnerException. Errore: Index non compreso nell'intervallo. Richiesto valore non negativo e minore della dimensione dell'insieme.\r\nNome parametro: index"}
Impossibile caricare il designer. Controllare il codice sorgente per eventuali errori sintattici e controllare che siano disponibili tutti i references.
ICSharpCode.FormsDesigner.FormsDesignerLoadException: Could not find InitializeComponent method in any part of the open class.
in ICSharpCode.FormsDesigner.AbstractDesignerGenerator.GetSourceFiles(OpenedFile& designerCodeFile)
in ICSharpCode.FormsDesigner.FormsDesignerViewContent.LoadInternal(OpenedFile file, Stream stream)
in ICSharpCode.SharpDevelop.Gui.AbstractViewContentHandlingLoadErrors.Load(OpenedFile file, Stream stream)
ed avviene già solo con le prime dichiarazioni come segue:
Codice sorgente - presumibilmente VB.NET
Imports ClipperLib
Imports System.Drawing.Point
Imports System.Collections.Generic
PublicClass Form1
Public Polygon =New List(Of System.Drawing.Point)
Public Polygons =New List(Of List(Of System.Drawing.Point))
Public subj =(Polygons(2))
Public clip =(Polygons(1))
Public solution =(Polygons)
EndClass
Avendo Visual Basic express 2010 oppure Sharp Develop, scaricando la dll che ho postato nel forum ed aggiungendola come riferimento in un attimo ricrei il "fenomeno"