Mit C# habe ich mir ein einfaches .Net-Objekt gebaut, das ein Form mit einem Button enthält.
<br>
using System;<br>
using System.Windows;<br>
using System.Windows.Forms;<br>
namespace NetObj<br>
{<br>
public class TestForm : Form<br>
{<br>
public Button button1;<br>
<br>
public TestForm()<br>
{ <br>
initComponents();<br>
}<br>
<br>
public void initComponents()<br>
{<br>
button1 = new Button();<br>
Controls.Add(button1);<br>
}<br>
<br>
public void ShowForm()<br>
{<br>
TestForm myForm = new TestForm();<br>
myForm.Show();<br>
}<br>
<br>
}<br>
}<br>
<br>
Dieses .Net-Objekt soll nun von einem Delphi-Client als COM-Objekt angesprochen werden. <br>
Solange das Formular leer ist, funktioniert das Ganze auch einwandfrei. Sobald jedoch mit der Codezeile 'Controls.Add(button1)' dem Formular einen Button hinzufügen will, bekomme ich beim Aufruf des COM-Objekt eine OLE-Exception mit der Meldung "Arithmetisches Ergenis übersteigt 32bits". Was muß ich verändern, bzw. was mache ich falsch?
<br>
using System;<br>
using System.Windows;<br>
using System.Windows.Forms;<br>
namespace NetObj<br>
{<br>
public class TestForm : Form<br>
{<br>
public Button button1;<br>
<br>
public TestForm()<br>
{ <br>
initComponents();<br>
}<br>
<br>
public void initComponents()<br>
{<br>
button1 = new Button();<br>
Controls.Add(button1);<br>
}<br>
<br>
public void ShowForm()<br>
{<br>
TestForm myForm = new TestForm();<br>
myForm.Show();<br>
}<br>
<br>
}<br>
}<br>
<br>
Dieses .Net-Objekt soll nun von einem Delphi-Client als COM-Objekt angesprochen werden. <br>
Solange das Formular leer ist, funktioniert das Ganze auch einwandfrei. Sobald jedoch mit der Codezeile 'Controls.Add(button1)' dem Formular einen Button hinzufügen will, bekomme ich beim Aufruf des COM-Objekt eine OLE-Exception mit der Meldung "Arithmetisches Ergenis übersteigt 32bits". Was muß ich verändern, bzw. was mache ich falsch?
Comment