Machst du auch implizit. Strings werden besonders behandelt. Des ist nen Referenztyp der wie nen Wertetyp in fast allen Belängen behandelt wird. Dadurch dass er noch immutable(unveränderbar) ist, ist der Schein perfekt.
Mach dir für jedes Tab ein eigenes UserControl, so daß du in der Hauptklasse nur noch das TabControl sowie die einzelnen UserControls hast.
Die Ereignisroutinen sind dann jeweils in den einzelnen Klassen der UserControls.
Falls du Daten zwischen den Tabs austauschen mußt, so kannst du über die Hauptklasse entsprechende Methoden bzw. Events definieren.
Nach ANSI Standard sind
int main( )
// und
int main( int argc, char *argv[] )
zulässige Signaturen für main.
Greetz, Swordfish
[edit]Mensch, ich seh's erst jetzt, du bist im falscen Forum...[/edit]
Servus,
du kannst ArrayListen in eine ArrayList packen. Du kannst mit typeof() oder Object.GetType() den Typ des ausgelesenen Objekts herausfinden. Also die Trennungs ist da nicht so schwierig.
Ach ich habe den alten Thread wiedergefunden:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-145395-and-highlight-is-.html
Die erste Antwort von mir.
Das habe ich gemacht:
- Itemklasse erstellt, welche später ein Item an Informationen enthält. Das kann bei dir die Parameterklasse sein. d.H. dieses Item erhält eine Eigenschaft vom Typ Parameterklasse und eine weitere mit einer ArrayList usw. usf.
- Collectionklasse erstellt, welche alle Elemente vom Typ der Item Klasse halten kann mit verschiedenen Methoden gedöns..... ich denke mal das brauche ich nicht zu erklären oder?
- XML serialisiert.
Das wäre eine Lösung die du verwenden könntest.
mfg
Hellsgore
Ich habe endlich eine einen Weg gefunden um diesen häßlichen grauen Balken umzufärben.Ich verschiebe nachdem ich den letzten sichtbaren Header gezeichnet habe den Clipbereich nach rechts und zeichnen dann den Farbverlauf,außerdem habe ich OnHeaderSizeChanging und OnSizeChanged überschreiben damit bei diesen Ereignissen ein Refresh ausgeführt wird.Damit kriege ich zwar nicht den 3D-Rand weg,aber es ist besser als nichts.
http://www.codeguru.com/Csharp/.NET/net_general/toolsand3rdparty/article.php/c4651 schrieb:
[..] In terms of runtime performance NGen.exe will actually hurt performance instead of improve it. [..]
cjung schrieb:
Ich möchte einen .NEt kompiler schreiben
gut
cjung schrieb:
muss dazu über den aufbau einer .NET-exe informiert sein.
nein. codedom/il-assembler benutzen. dann kannst du dich um wichtigere dinge kümmern.
"ich könnte Dir raten leite ein Cotrol ab was ein neuer Button mit eben diesen Eigenschaften sein soll"
An das hab ich auch schon gedacht, so würde es wohl gehen.
Ich schau mir jetzt erstmal deine Codesnippets an, die man sicherlich (wenn nicht hier dann woanders :-)) verwenden kann !
Danke für deine Hilfe !
Jo danke der link hat mir echt weiter geholfen.
Habe jetzt folgenden Code:
public void datenPhysikalischSpeichern(ref parameter param)
{
try
{
XmlSerializer xmls1 = new XmlSerializer(typeof(parameter));
XmlSerializer xmls2 = new XmlSerializer(typeof(ArrayList));
XmlTextWriter xmlw1 = new XmlTextWriter(parameter.file, System.Text.Encoding.ASCII);
xmls1.Serialize(xmlw1, param);
xmls2.Serialize(xmlw1, rohdaten);
xmls2.Serialize(xmlw1, messwerte);
xmlw1.Close();
}
catch (System.Exception ex)
{
Console.WriteLine(ex.Message);
}
}
public void ladePhysikalischeDaten(ref parameter param)
{try
{
XmlSerializer xmls1 = new XmlSerializer(typeof(parameter));
XmlSerializer xmls2 = new XmlSerializer(typeof(ArrayList));
XmlTextReader xmlw1 = new XmlTextReader("C:\\file", System.Text.Decoder);
xmls1.Serialize(xmlw1, param);
xmls2.Serialize(xmlw1, rohdaten);
xmls2.Serialize(xmlw1, messwerte);
xmlw1.Close();
}
catch (System.Exception ex)
{
Console.WriteLine(ex.Message);
}
}
habe jetzt nur noch das Problem das ich mit der ladePysikalischeDaten() die Daten aus dem File lesen muss.
Habe aber die folgenden fehler:
Fehler 2 "System.Text.Decoder" ist "Typ" und im angegebenen Kontext nicht gültig. D:\Server neue strucktur\Speicherklasse\Speicherklasse\Program.cs 127 81 Speicherklasse
Fehler 3 Die beste Übereinstimmung für die überladene System.Xml.Serialization.XmlSerializer.Serialize(object, System.Xml.Serialization.XmlSerializationWriter)-Methode hat einige ungültige Argumente. D:\Server neue strucktur\Speicherklasse\Speicherklasse\Program.cs 128 17 Speicherklasse
Fehler 4 2-Argument: kann nicht von "Speicherklasse.parameter" in "System.Xml.Serialization.XmlSerializationWriter" konvertiert werden. D:\Server neue strucktur\Speicherklasse\Speicherklasse\Program.cs 128 40 Speicherklasse
Fehler 5 Die beste Übereinstimmung für die überladene System.Xml.Serialization.XmlSerializer.Serialize(object, System.Xml.Serialization.XmlSerializationWriter)-Methode hat einige ungültige Argumente. D:\Server neue strucktur\Speicherklasse\Speicherklasse\Program.cs 129 17 Speicherklasse
Fehler 6 2-Argument: kann nicht von "System.Collections.ArrayList" in "System.Xml.Serialization.XmlSerializationWriter" konvertiert werden. D:\Server neue strucktur\Speicherklasse\Speicherklasse\Program.cs 129 40 Speicherklasse
Fehler 7 Die beste Übereinstimmung für die überladene System.Xml.Serialization.XmlSerializer.Serialize(object, System.Xml.Serialization.XmlSerializationWriter)-Methode hat einige ungültige Argumente. D:\Server neue strucktur\Speicherklasse\Speicherklasse\Program.cs 130 17 Speicherklasse
Fehler 8 2-Argument: kann nicht von "System.Collections.ArrayList" in "System.Xml.Serialization.XmlSerializationWriter" konvertiert werden. D:\Server neue strucktur\Speicherklasse\Speicherklasse\Program.cs 130 40 Speicherklasse
Was ich noch sagen möchte ist das ich das erste mal mit XML arbeite.
Danke schonmal für die Hilfe
blind
Hallo zusammen.
Ich habe folgendes Problem. Ich schreibe an einer kleinen Chatanwendung, die über Remoting ihre Daten austauscht. Client und Server werden jeweils über eine configfatei configuriert.
RemotingConfiguration.Configure("ChatServer.exe.config");
Nun möchte ich aber, dass ich ggf. den Port auf dem mein Server lauscht von Hand anpassen kann. Die anderen Einstellungen sollen allerdings weiter von der Config bereitgestellt werden.
Gibt es eine andere Möglichkeit als den entsprechenden Eintrag in der Config zu überschreiben und die Config neu zu laden?
MfG
Daniel
Ok, danke.
Dann muss ich einfach jetzt ne Liste von Proxy Servern finden, die mir FTP Verbindungen erlauben. Bzw. eine Liste mit möglichen Anfragen.
du kennst nicht zufällig eine?
Die, die ich bisher gefunden habe, sind nur normale Listen mit IP und PORT der Proxys. Mal sehen.
Thx nochmal.
also musst Dir deine VBScript mal anschauen bei Dateiarbeit gibt es die Möglichkeit wenn es die Datei schon gibt das Dateihandle so zu erstellen das es wenn die Datei schon existiert diese einfach ueberschrieben wird!
Such das Codestueck wo das/die Handle geöffnet werden und erstelle die Handle mit entsprechenden Modus. Dann kommt auch keine Meldung mehr.
Wird wohl nur ein Kupferstich sein ist wohl nicht von Dir das Skript wie?
Naja musst es halt auf deine Bedürfnisse anpassen aber nöl hinterher nicht wegen Datenverlust! Es hat seine Gründe wenn der nutzer vor der Dateiarbeit auf sowas hingewiesen wird. Es sei den man ist sich bei den entsprechenden Verzeichnissen sicher!
[STAThread]
static void Main(string[] args)
{
//
// TODO: Fügen Sie hier Code hinzu, um die Anwendung zu starten
//
Auto auto1 = new Auto("Ford", "Mustang");
Auto auto2 = new Auto("IFA", "Trabi");
Autohaus autohaus = new Autohaus();
autohaus.Angebot.Add(auto1);
autohaus.Angebot.Add(auto2);
Auto [] cars = {auto1,auto2};
AutoMarken mengeautos = new AutoMarken(cars);
try
{
XmlSerializer xmls1 = new XmlSerializer(typeof(Autohaus));
XmlSerializer xmls2 = new XmlSerializer(typeof(AutoMarken));
XmlTextWriter xmlw1 = new XmlTextWriter("C:\\autos1.xml",System.Text.Encoding.ASCII);
xmls1.Serialize(xmlw1,autohaus);
XmlTextWriter xmlw2 = new XmlTextWriter("C:\\autos2.xml",System.Text.Encoding.ASCII);
xmls2.Serialize(xmlw2,mengeautos);
xmlw1.Close(); xmlw2.Close();
}
catch(System.Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
}
public class Auto
{
public Auto(string Marke, string Autoname)
{
this.Marke = Marke;
this.Autoname = Autoname;
}
public Auto()
{
Marke = "";
Autoname = "";
}
private string autoname;
private string marke;
[XmlElementAttribute(IsNullable = false)]
public string Marke
{
get
{
return marke;
}
set
{
this.marke = value;
}
}
public string Autoname
{
get
{
return autoname;
}
set
{
this.autoname = value;
}
}
}
public class Autos : CollectionBase
{
public Auto this[ int index ]
{
get
{
return( (Auto) List[index] );
}
set
{
List[index] = value;
}
}
public int Add( Auto value )
{
return( List.Add( value ) );
}
public int IndexOf( Auto value )
{
return(List.IndexOf( value ) );
}
public void Insert( int index, Auto value )
{
List.Insert( index, value );
}
public void Remove( Auto value )
{
List.Remove( value );
}
public bool Contains( Auto value )
{
// If value is not of type Int16, this will return false.
return( List.Contains( value ) );
}
protected override void OnInsert( int index, Object value )
{
if ( (value is Auto) != true )
throw new ArgumentException( "value must be of type Auto.", "value" );
}
protected override void OnRemove( int index, Object value )
{
if ( (value is Auto) != true )
throw new ArgumentException( "value must be of type Auto.", "value" );
}
protected override void OnSet( int index, Object oldValue, Object newValue )
{
if ( (newValue is Auto) != true )
throw new ArgumentException( "newValue must be of type Auto.", "newValue" );
}
protected override void OnValidate( Object value )
{
if ( (value is Auto) != true )
throw new ArgumentException( "value must be of type Auto." );
}
}
public class Autohaus
{
private Autos autos;
[XmlElementAttribute(IsNullable = false)]
public Autos Angebot
{
get
{
return autos;
}
set
{
this.autos = value;
}
}
public Autohaus()
{
autos = new Autos();
}
public Autohaus(Autos autos)
{
Angebot = autos;
}
}
public class AutoMarken
{
private Auto [] autos;
public AutoMarken(Auto [] autos)
{
this.autos = autos;
}
[XmlElementAttribute(IsNullable = false)]
public Auto [] Autos
{
get
{
return autos;
}
set
{
this.autos = null;
this.autos = new Auto [value.Length];
for(int i = 0;i< value.Length;i++)
{
this.autos[i] = value[i];
}
}
}
public AutoMarken()
{
autos = null;
}
}
Viel Spass