In Bildern durch Koordinaten Abstände messen

Hallo,

Also ich habe mir jetzt die Augen wund gesucht. Ich habe zwar herausgefunden, wie man diese Toolbox anpassen kann, aber diese .resx Datei kriege ich nicht in mein .NET. Kannst du mir das vll. mal zeigen?

mfg
 
So, malwieder ein Doppelpost ;)

Also, es gibt Neuigkeiten. Habe jetzt nochmal ganz in Ruhe alles in VB.NET gewandelt und dann mal den Debugger genauer unter die Lupe genommen. Hier die Fehlermeldung im Ausgabe-Debugger:

Die letzten Zeilen sind interessant:
(Da soll wohl Form1 in dem Code vieldeutig sein, aber ich weiß nicht warum?)

Code:
------ Erstellen gestartet: Projekt: PaintLineDemo, Konfiguration: Debug Any CPU ------
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Vbc.exe /noconfig /imports:Microsoft.VisualBasic,System,System.Collections,System.Collections.Generic,System.Data,System.Drawing,System.Diagnostics,System.Windows.Forms /nowarn:42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 /rootnamespace:PaintLineDemo /doc:obj\Debug\PaintLineDemo.xml /define:"CONFIG=\"Debug\",DEBUG=-1,TRACE=-1,_MyType=\"WindowsForms\",PLATFORM=\"AnyCPU\"" /reference:..\..\..\..\PaintLineDemo\bin\Debug\PaintLineDemo.exe,C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll,C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Deployment.dll,C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll,C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll,C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll,C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll /main:PaintLineDemo.My.MyApplication /debug+ /debug:full /out:obj\Debug\PaintLineDemo.exe /resource:obj\Debug\PaintLineDemo.PaintLineDemo.Form1.resources /resource:obj\Debug\PaintLineDemo.Resources.resources /target:winexe Form1.vb Form1.Designer.vb "My Project\AssemblyInfo.vb" "My Project\Application.Designer.vb" "My Project\Resources.Designer.vb" "My Project\Settings.Designer.vb"
InternalMyTemplate.vb(16707566) : error BC30560: 'Form1' is ambiguous in the namespace 'PaintLineDemo'.
InternalMyTemplate.vb(16707572) : error BC30560: 'Form1' is ambiguous in the namespace 'PaintLineDemo'.
========== Build: 0 erfolgreich oder aktuell, Fehler bei 1, 0 übersprungen ==========

Hier nochmal mein aktueller Quellcode:

Code:
Imports System
Imports System.Drawing
Imports System.Collections
Imports System.ComponentModel
Imports System.Windows.Forms
Imports System.Data

Namespace PaintLineDemo
    ''' <summary>
    ''' Summary description for Form1.
    ''' </summary>
    Public Class Form1
        Inherits System.Windows.Forms.Form
        Private myCustomOwnerDrawnControl1 As MyCustomOwnerDrawnControl
        Private components As System.ComponentModel.IContainer

        Public Sub New()
            '
            ' Required for Windows Form Designer support
            '

            '
            ' TODO: Add any constructor code after InitializeComponent call
            '
            InitializeComponent()
        End Sub

        ''' <summary>
        ''' Clean up any resources being used.
        ''' </summary>
        Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
            If disposing Then
                If components IsNot Nothing Then
                    components.Dispose()
                End If
            End If
            MyBase.Dispose(disposing)
        End Sub

#Region "Windows Form Designer generated code"
        ''' <summary>
        ''' Required method for Designer support - do not modify
        ''' the contents of this method with the code editor.
        ''' </summary>
        Private Sub InitializeComponent()
            Me.components = New System.ComponentModel.Container
            Me.MyCustomOwnerDrawnControl2 = New PaintLineDemo.MyCustomOwnerDrawnControl(Me.components)
            Me.SuspendLayout()
            '
            'MyCustomOwnerDrawnControl2
            '
            Me.MyCustomOwnerDrawnControl2.Location = New System.Drawing.Point(-1, -2)
            Me.MyCustomOwnerDrawnControl2.Name = "MyCustomOwnerDrawnControl2"
            Me.MyCustomOwnerDrawnControl2.Size = New System.Drawing.Size(294, 245)
            Me.MyCustomOwnerDrawnControl2.TabIndex = 0
            Me.MyCustomOwnerDrawnControl2.Text = "MyCustomOwnerDrawnControl2"
            '
            'Form1
            '
            Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
            Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
            Me.ClientSize = New System.Drawing.Size(292, 266)
            Me.Controls.Add(Me.MyCustomOwnerDrawnControl2)
            Me.Name = "Form1"
            Me.Text = "David"
            Me.ResumeLayout(False)

        End Sub
#End Region

        ''' <summary>
        ''' The main entry point for the application.
        ''' </summary>
        <STAThread()> _
        Private Shared Sub Main()
            Application.Run(New Form1())
        End Sub
        Friend WithEvents MyCustomOwnerDrawnControl2 As MyCustomOwnerDrawnControl
    End Class
End Namespace

mfg
 
Mach es doch mal anders. Übertrag das was Du im Reflector stehen hast händisch in VB. So hast auch einen größeren Lerneffekt. Btw. ist das Beispielprojekt in .NET 1.1. Auf Arbeit habe im Moment leider nichts anderes zur Verfügung. :(

Ausserdem sehe ich nur ein Form. Das Control fehlt.
 
hi,

sry, keine Ahnung. Ich habe den Code ja von Hand reinkopiert. Aber ich blick da nich mehr durch.

Ich habe jetz einfach mal alle Form1 auf Form2 geändert, inkl. Namen der Form. Und jetzt macht er nicht mehr diesen Fehler in der Ausgabe, nur funktionieren tuts trotzdem nicht. Jetzt habe ich in dem Code überall Fehler:

Application.myapp
Code:
<?xml version="1.0" encoding="utf-8"?>
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <MySubMain>true</MySubMain>
  <MainForm>Form2</MainForm>
  <SingleInstance>false</SingleInstance>
  <ShutdownMode>0</ShutdownMode>
  <EnableVisualStyles>true</EnableVisualStyles>
  <AuthenticationMode>0</AuthenticationMode>
  <ApplicationType>0</ApplicationType>
  <SaveMySettingsOnExit>true</SaveMySettingsOnExit>
</MyApplicationData>

Zu jeder Zeile kommt da die Meldung:
"Die Schemainformationen für das Element "..." konnten nicht gefunden werden."

Was soll denn das schon wieder?

mfg
 
Nungut, ich werde Dir das heute Mittag mal in VB.NET 1.1 überstzen. Im Moment habe ich noch was zu erledigen...
Wenn Du es dann im VS 2005 öffnest, wird Dir das VS es dann in VB.NET 2.0 konvertieren. :)
 
Hi,

OK, vielen Dank. Ich habe inzwischen mal etwas programmiert:

So mache ich das, nur da das VB6.0 ist und nicht so Multimedia tauglich wie .NET versuche ich es trotzdem mal mit Visual Studio.

Nur jeder wird zugeben, dass VB6.0 irgendwie in diesem Fall einfacher ist, oder etwa nicht?

mfg

Edit: Da die Datei 7kB zu groß ist ^^ musste ich den Code weglassen, der kommt jetzt hier nach:
Code:
Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Line1.X1 = X + 120
Line1.Y1 = Y + 120
Line1.Visible = True
End Sub

Private Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Line1.X2 = X + 120
Line1.Y2 = Y + 120
End Sub

Private Sub Image1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Line1.Visible = False
End Sub
 

Anhänge

  • LinienZeichnen.zip
    104,7 KB · Aufrufe: 23
Sorry, ich hatte leider keine Zeit dafür finden können. Werde heute auch sicher nicht mehr dazu kommen. :(

Du kannst Dir das Projekt, wie in den einem geposteten Stickie beschrieben, mit der Eclipse IDE in VB.NET konvertieren.

Oder Du schappst Dir das Disassembler Plugin für den Reflecor. Das solltest sicher hinbekommen. :)
Reflector.FileDisassembler - DenisBauer.com
 
Zuletzt bearbeitet:
och mann, danke für deine hilfe, aber ich komm da mit gar nix mehr kla. Das funktioniert alles nicht. Immer irgendwelche komischen Fehler, die keiner kennt. Und ich dachte das gibts nur bei Delphi. Warum ist immer alles falsch bei .NET. Das gibts doch nicht. Ich warte erstmal, bis du das Programm in VB fertig hast, dann kann ich mich da mal in Ruhe reinarbeiten. Das hat auch noch einen Tag Zeit. Heute muss ich noch ein VB6.0 Programm testen gehn, und danach ist VS an der Reihe.

Warum gibt es nicht in VB.NET auch so ein Tool Line wie in VB6.0. Das war doch wirklich einfach und gut. Warum muss man das denn jetzt selber programmieren? :rolleyes:

mfg
 
War doch nicht so einfach wie ich erst dachte. :-( Das geht anscheinend nur bei C# problemlos. :confused:

Mal eine kleine Anleitung für den Reflector:
  • Plugin downloaden und in den Reflector-Programmordner kopieren. -> Reflector öffnen
  • Menu -> View -> Add ins... -> Add... -> Plugin auswählen
  • File -> Open... -> PaintLineDemo.exe auswählen
  • Toolbar->VisualBasic auswählen
  • PaintLineDemo Node im TreeView auswählen
  • Menu->Tools -> File Disassembler -> Project Type: Windows Application auswählen -> Auf Generate klicken
  • Projekt öffnen
  • In der AssemblyInfo.vb Imports System.Reflection hinzufügen.
  • In der OnPaint Methode folgende Zeile
Code:
If ((Me.m_point <> Point.Empty) AndAlso (Not Me.m_pen Is Nothing)) Then
gegen
Code:
If ((Not Me.m_point.Equals(Point.Empty) AndAlso (Not Me.m_pen Is Nothing))) Then
austauschen
  • Main Methode Public machen.
  • In den Project Propertys das Startup Object: Sub Main auswählen.

Fertig. :)
 

Anhänge

  • PaintLineDemo_Source.zip
    41,9 KB · Aufrufe: 21
Zuletzt bearbeitet:
Zurück