Objectinstanz die im ganzen Form sichtbar sein soll !

15/12/2008 - 13:12 von Karl Twele | Report spam
Hallo,

ich hab ein Form mit einem Button, zwei TextBoxen und ein COM Tool.
Durch Click auf den Button möchte ich mit Hilfe des COM Tools Werte aus
2 digitalen Tastern lesen. Das geht zwar und sieht so aus :

...
using OrbitCOM;

namespace KroneGEO
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
OrbitServer Orbit = new OrbitServer();
OrbitNetworks Nets;
OrbitNetwork Net0;
OrbitModules Net0Modules;
OrbitModule Modul0;
OrbitModule Modul1;
double Wert0;
double Wert1;
Orbit.Connect();
if (Orbit.Connected == true)
{
Nets = Orbit.Networks;
Net0 = Nets[0];
Net0Modules = Net0.Modules;
Net0Modules.Add("100AA37P01", "Module 0");
Net0Modules.Add("100C835P01", "Module 1");
Modul0 = Net0Modules[0];
Modul1 = Net0Modules[1];
Wert0 = Modul0.ReadCurrent();
Wert1 = Modul1.ReadCurrent();
this.textBox1.Text = Convert.ToString(Wert0);
this.textBox2.Text = Convert.ToString(Wert1);
}
else
{
this.textBox1.Text = "Kein Taster !";
this.textBox2.Text = "Kein Kontakt";
}
Orbit.Disconnect();
}
}
}

Nun möchte ich aber nicht immer wieder, bei jedem Click die
Instanzierung und Deklaration der Variablen machen und vor allem kein
Orbit.Connect();. Das dauert sehr lange. Wo schreibe ich das jetzt in
mein Form, um dann nur noch im Button1_Click, das etwa so schreiben zu
können :

Wert0 = Modul0.ReadCurrent();
Wert1 = Modul1.ReadCurrent();
this.textBox1.Text = Convert.ToString(Wert0);
this.textBox2.Text = Convert.ToString(Wert1);

und wo schreib ich das Orbit.Disconnect() hin, wenn ich das beim
Verlassen des Forms abschalten will.

Eine Frage hab ich noch, mit welchem Befehl verlàsst man ein Programm
und löscht es aus dem Speicher, programmgesteuert.

Gruß KT
 

Lesen sie die antworten

#1 Thomas Griepentrog
15/12/2008 - 16:29 | Warnen spam
Hallo Karl,


ich würde das so machen:
namespace KroneGEO
{
private OrbitServer Orbit;
private OrbitNetwortks Nets;
private OrbitNetworks Net0;
private OrbitModules Net0Modules;
private OrbitModule Modul0;
private OrbitModule Modul1;

public Form1()
{
InitializeComponent();
Orbit.Connect();
if (Orbit.Connected == true)
{
Nets = Orbit.Networks;
Net0 = Nets[0];
Net0Modules = Net0.Modules;
Net0Modules.Add("100AA37P01", "Module 0");
Net0Modules.Add("100C835P01", "Module 1");
Modul0 = Net0Modules[0];
Modul1 = Net0Modules[1];
button1.enabled = true;
}
else
{
this.textBox1.Text = "Kein Taster !";
this.textBox2.Text = "Kein Kontakt";
}

}

private void button1_Click(object sender, EventArgs e)
{
double Wert0;
double Wert1;
Wert0 = Modul0.ReadCurrent();
Wert1 = Modul1.ReadCurrent();
this.textBox1.Text = Convert.ToString(Wert0);
this.textBox2.Text = Convert.ToString(Wert1);

}
}

private Form1Close...
{
Orbit.Disconnect();
}

}


Eine Frage hab ich noch, mit welchem Befehl verlàsst man ein Programm und
löscht es aus dem Speicher, programmgesteuert.



Wie meinst du das mit "verlàsst das Programm programmgesteuert"?

Gruß KT




Thomas

Ähnliche fragen