Moin!
ich habe zwei Funktionen, die auf einen Dialog zugreifen der dann wiederum etwas zurückliefern soll.
In folgender Funktion funktioniert es:
Die aufrufende Funktion sieht wie folgt aus:
Nun zu dem Problem
Bei Search wird eine richtige FID (LONG) zurück gegeben. Bei Add wird im Debugger ein richtiger Long-Wert beim Return angezeigt.
In der aufrufenden Funktion kommt ein 0 an!
Was mich nur wundert, dass nach dem Return und End Function (39) in die erste Kommentarzeile (40) gesprungen (F10-Taster) wird.
Hat einer eine Idee? Vielleicht habe ich das im letzten Bild falsch im Kopf.
Gruß Jan
ich habe zwei Funktionen, die auf einen Dialog zugreifen der dann wiederum etwas zurückliefern soll.
In folgender Funktion funktioniert es:
VB.NET-Quellcode
- Public Function Search() As Long
- Dim FidOfAddr As Long = -1
- Dim f As New DLG_Adressen(_clientplugin, _EBLog, FidOfAdress:=FidOfAddr, WhatDo:=DLG_Adressen.TypeToDo.Search)
- With f
- Try
- Select Case .ShowDialog()
- Case DialogResult.OK ' Adresse wird übernommen
- FidOfAddr = .FidOfAdress ' auslesen der AdressenFID
- End Select
- Catch ex As Exception
- XMsgBox.Show(ex.ToString)
- End Try
- End With
- Return FidOfAddr
- End Function
Die aufrufende Funktion sieht wie folgt aus:
VB.NET-Quellcode
- Private Sub Bt_AddrSearch_Antrag_Click(sender As Object, e As EventArgs) Handles bt_AddrSearch_Antrag.Click
- Dim Addr As New EBL.MapEdit.FUNC_Adressen(_clientplugin)
- Dim tmpAddrFID As Long = Addr.Search()
- If Not tmpAddrFID = -1 Then
- _FidOfAdressEigentümer = tmpAddrFID ' Setzen der neuen Eigentümer FID
- SetAntragsteller()
- End If
- End Sub
Nun zu dem Problem
VB.NET-Quellcode
- Public Function Add() As Long
- Dim FidOfAddr As Long = -1
- Dim f As New DLG_Adressen(_clientplugin, _EBLog, FidOfAdress:=-1)
- With f
- Try
- Select Case .ShowDialog()
- Case DialogResult.OK ' Adresse wurde angelegt
- FidOfAddr = .FidOfAdress ' auslesen der AdressenFID
- End Select
- Catch ex As Exception
- XMsgBox.Show(ex.ToString)
- End Try
- End With
- Return FidOfAddr
- End Function
VB.NET-Quellcode
- Private Sub Bt_AddAddr_Antrag_Click(sender As Object, e As EventArgs) Handles bt_AddAddr_Antrag.Click
- Dim Addr As New EBL.MapEdit.FUNC_Adressen(_clientplugin)
- Dim tmpAddrFID As Long = Addr.Add()
- If Not tmpAddrFID = -1 Then
- _FidOfAdressEigentümer = tmpAddrFID ' Setzen der neuen Eigentümer FID
- SetAntragsteller()
- End If
- End Sub
Bei Search wird eine richtige FID (LONG) zurück gegeben. Bei Add wird im Debugger ein richtiger Long-Wert beim Return angezeigt.
In der aufrufenden Funktion kommt ein 0 an!
Was mich nur wundert, dass nach dem Return und End Function (39) in die erste Kommentarzeile (40) gesprungen (F10-Taster) wird.
Hat einer eine Idee? Vielleicht habe ich das im letzten Bild falsch im Kopf.
Gruß Jan