Natürlich kann man sie für multithreading verwenden, man sollte dann aber nciht solche sachen machen wie irgendwelche member des singletons vom jeweiligen thread neu zu setzen, dass gibt doch nur chaos.
hm ich weiß ich nerv! Ich hab mal wieder voreilige Schlüsse gezogen, also in meiner Hauptaplikation geht es, in der Graphlib aber nicht!
Also jetzt mal ganz gediegen, Ich hab drei Projektmappen:
Graphlib (dll)
Referenzen:
TestShapes
TestShapes (dll)
Referenzen:
Graphlib
TestSim (exe)
Referenzen:
Graphlib
Testshapes
So in der Hauptaplikation geht es aber in Graphlib nicht!
Siehe dazu vielleicht auch nochmal Vererbungsstruktur meiner Shapes
hier
Kann mir einer sagen wieso? Vielleicht LordJaxom??
Wenn du dein PW mit der Cryptographie-Klasse verschlüsseln willst, dann solltest du dir erst mal überlegen welchen Verschlüsselungs Algorithmus du verwenden willst weil die Cryptographie-Klasse mehrere unterstüzt. Ich weiß das weil ich für meine Abschussprüfung eine Verschlüsselungs Programm in C# schreiben muss ich da auch die Cryptographie-Klasse nutze. Ich hab da mal eine Seite gefunden wo das ganze sehr gut beschrieben ist, wenn ich den Link noch finde dann schreib ich ihn hier.
EDIT: Ich weiß die Seite leider nicht mehr, aber das hier könnte dir vielleicht auch weiter helfen.
http://www.schlechte-doku-hasser.de/modules.php?op=modload&name=News&file=article&sid=85
Also falls jemand auch mal die selben Fragen hat wie ich, dann sollte er hier man nach schauen:
http://www.codeproject.com/csharp/mdiformstutorial.asp
Habe ich gerade gefunden....
byebye
Meinst Du den Inhalt der Work-Funktion???
public void Start()
{
bool doAction = true;
switch(_threadState)
{
case ThreadStates.Suspended:
{
doAction = false;
break;
}
case ThreadStates.Running:
{
doAction = false;
break;
}
case ThreadStates.Finished:
{
_th = new Thread(Work); // Den Inhalt der Work-Funktion????
doAction = true;
break;
}
}
if(doAction)
{
_th.Start();
_threadState = ThreadStates.Running;
}
}
Switch-case-Anweisungen mögen ja hässlich sein, sind aber das vorgesehene Konstrukt bei einer Mehrfachauswahl
class Class : IClonable
{
string str;
public Class(string input)
{
str = input;
}
public object Clone()
{
Class newClass = new Class(str);
return newClass;
}
}
Boah ... jetzt hab ich mir aber echt Mühe gegeben, um das zu demonstrieren ^^
Greetz
Hallo!
Ich bräuchte dringend einen Source-Code, oder eine Libary oder ähnliches, womit ich ICC-Profile bearbeiten/erstellen kann. Ich suche jetzt schon länger herum, doch leider habe ich bisher nichts brauchbares gefunden. Ich hoffe ihr könnt mir weiter helfen.
Gruß
Nightfall
Ich hab's jetzt ein wenig besser hinbekommen: indem ich die BackColor Eigenschaft der Textbox'en auf die Werte setze, die im DataGrid für die Markierung verwendet wird (SelectionBackColor), unterbleibt das hässliche Flackern bei MouseDown. Allerdings wird die Vordergrundfarbe der Textbox noch für die Dauer von MouseDown bis MouseUp hellgrau dargestellt. Das kann ich wohl nicht ohne weiteres verändern. Damit kann man aber fast leben...
Wenn aber jemand den easy Killertrick kennt: dann nur her damit!
Ohne Garantie, daß es funktionieren kann (bin eher in C++ zu Hause als in C#):
public int returnTestID()
{
if (InvokeRequired)
{
IAsyncResult res = BeginInvoke(new GetIndex(GetTestIndex));
return (int)EndInvoke(res);
}
else
return GetTestIndex();
}
Ich hab mir mal eben deine Seite angeschaut und gesehen, dass du dein Projekt nach C# konvertieren willst. Zu dem Zweck bietet die .Net-Bibliothek schon vorgefertigte Listen. Schau dir dazu mal "List<T>" im namespace System.Collections.Generic an.
(http://msdn2.microsoft.com/en-US/library/6sh2ey19.aspx)
Danke für den Tipp. Leider wurde ja die KeyDown Methode nicht angesprungen, aber du hast mich auf eine Idee gebracht.
Nun habe ich es nach viel Ausprobieren gelöst:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
// Text = msg.ToString() + " --- " + keyData.ToString();
if((keyData & Keys.Control) > 0)
if((keyData & Keys.Tab) == Keys.Tab)
{
bool bShift = (keyData & Keys.Shift) > 0;
SelectNextStringEditor(!bShift);
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
Ich habe einfach im Hauptformular den Tastendruck (Strg+Tab) abgefangen.
Danke nochmals für deine Mühe und vielleicht nützt dies ja auch anderen Usern...
Manuel schrieb:
Alternative Methode:
Einen Thread erstellen, der gestartet wird, bevor die MessageBox erstellt wird, ein paar Millisekunden wartet, das Fenster der MB sucht und dieses dann verschiebt.
So hast du die Position der Standard-MB verändert.
An sich finde ich es aber auch besser eine eigene MB zu schreiben. Ist ja nicht direkt schwierig - hält aber Platz für weitere Veränderungen offen
Greetz
Also wenn ich Dich richtig verstehen sucht Du z.B.: mit dem Thread
ueber die WinAPI-Funktion "FindWindow" (einverleibt per DllImport) etc. das HANDLE der MessagBox suchenum die im nachhinein und per Move-Irgendwas durch den Thread verschieben zu lassen?