Ir al contenido


Foto

Funcion de Visual basic a Delphi


  • Por favor identifícate para responder
4 respuestas en este tema

#1 look

look

    Advanced Member

  • Miembros
  • PipPipPip
  • 418 mensajes
  • LocationLa Ceiba-Atlantida-Honduras

Escrito 03 junio 2014 - 08:55

Hola amigos, tengo este codigo en visual basic, este utiliza una funcion de una dll, me gustaria traducir esto a delphi.
¿Me hechan una mano?



delphi
  1. Imports FUN_HNv2_1
  2.  
  3. Public Class FUN_HN
  4.  
  5.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  6.      
  7.     End Sub
  8.  
  9.     Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
  10.  
  11.     End Sub
  12.  
  13.     Private Sub Label3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label3.Click
  14.  
  15.     End Sub
  16.  
  17.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  18.         Dim objeto = New FUN_HNv2_1.FUN_HNv2_1
  19.  
  20.         Dim respuesta = objeto.enviar(T1.Text, M1.Text, R1.Text)
  21.  
  22.         MessageBox.Show(respuesta)
  23.     End Sub
  24. End Class


  • 0

#2 jdepaz

jdepaz

    Advanced Member

  • Miembros
  • PipPipPip
  • 264 mensajes
  • LocationMedellín Colombia

Escrito 03 junio 2014 - 09:24

Hola buen día,

Saludos a todos.

Bueno, si es una DLL a la cual se realizan llamados a funciones, entonces podrias comenzar en conocer cuales son esas funciones y así mismo sus parámetros y el valor de retorno.

Luego vendría la forma de llamar a las funciones desde Delphi, al cual creo que en la red hay muchos ejemplos.

Hasta pronto.
  • 0

#3 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 03 junio 2014 - 03:13

Hola jdepaz, eso no me parece Visual Basic. Eso en todo caso es Visual Basic .NET en alguna versión más reciente.
No son lo mismo.
Y de lo poco que recuerdo de .NET y viendo ese código no vislumbro en que momento se está haciendo uso de la dll que comentas.

El código, en delphi, vendría a ser algo como esto:


delphi
  1. procedure NombreMetodo(Sender: TObject; E: EventArgs);



El asunto es que no entiendo que tipo es realmente EventArgs que posee VB.NET. Lo otro que me llama la atención es lo que está al final de cada método: Handles xxx. Allí ya no se que hace eso en realidad.

Cuando vi :NET v1 no recuerdo que se coloca algo como al final de cada método.

Encuentro más rarezas de ese código, en el método Button1_Click hay código escrito. ¿Porqué los anteriores no tienen nada? Dicho código consiste en crear una instancia de la clase FUN_HNv2_1. Luego se dispara el mensaje Enviar() y se muestra en pantalla una respuesta. Pregunto: ¿Donde está la declaración del método Enviar?
Aparentemente se está definiendo una clase pero repasando la vista... lo que has expuesto la verdad es que no dice mucho. Faltan demasiadas cosas se me hace.

Así la tienes difícil que te podamos ayudar. Va a ser necesario conocer la dll como el código completo. A medias no funciona.

Saludos,
  • 0

#4 jdepaz

jdepaz

    Advanced Member

  • Miembros
  • PipPipPip
  • 264 mensajes
  • LocationMedellín Colombia

Escrito 04 junio 2014 - 07:37

Hola a todos,

Delphius dijo:

El asunto es que no entiendo que tipo es realmente EventArgs que posee VB.NET. Lo otro que me llama la atención es lo que está al final de cada método: Handles xxx. Allí ya no se que hace eso en realidad.


EventArgs hace parte o es el valor del "Evento"que lo invoca (load, click, etc) y con respecto al "Handles" viene siendo como un "amarre" por decirlo así de forma "artesanal" entre el método y el componente.

hasta luego.

  • 0

#5 cram

cram

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 832 mensajes
  • LocationMisiones, Argentina

Escrito 04 junio 2014 - 05:04



delphi
  1. Imports FUN_HNv2_1
  2. Public Class FUN_HN
  3.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  4.     End Sub
  5.  
  6.     Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
  7.     End Sub
  8.  
  9.     Private Sub Label3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label3.Click
  10.     End Sub
  11.  
  12.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  13.         Dim objeto = New FUN_HNv2_1.FUN_HNv2_1
  14.         Dim respuesta = objeto.enviar(T1.Text, M1.Text, R1.Text)
  15.         MessageBox.Show(respuesta)
  16.     End Sub
  17. End Class




delphi
  1. Uses FUN_HNv2_1;
  2. FUN_HN = Class(TWinControl) // TWinControl es la base para los controles que reciben eventos de teclado, ratón son representados visualmente, etc.
  3.   procedure Form1_Load(Sender: TObject);
  4. ...
  5.   end;


pero según lo que se ve los procedimientos son llamados por un evento explícito.



delphi
  1.   procedure Form1_Load(var Message: TMessage; TWMNCLButtonDown); message WM_NCLBUTTONDOWN;


Deberías ver cuales son los mensajes WM_ para cada evento que necesites.

Dim se utiliza para declara una variable. En este caso también se crea un objeto y se asigna a la variable, (en un mal intento de imitar a C). :s

Falta mucho para entender esto. Falta conocer cual es la unidad (o como se llame en VB) para entender que hace aproximadamente ese pedazo de código. :|

Por otra parte ByVal inidica que se pasa el parámetro por valor y no por referencia, en Pascal sería no escribir y lo contrario sería escribir val. As System.Object es un casting, que en Pascal se expresa con paréntesis (y creo que la versión .NET usa el As).

Te recomiendo consultar con alguien que entienda Visual Basic, más que alguien que entienda Pascal, ya que una vez que sepas que hace, podrás escribir el código que deseas.

Saludos.
  • 0




IP.Board spam blocked by CleanTalk.