Laden...
P
peterguy myCSharp.de - Member
Ingenieuer Kölner Raum Dabei seit 05.03.2009 23 Beiträge
Benutzerbeschreibung

Forenbeiträge von peterguy Ingesamt 23 Beiträge

18.03.2015 - 21:07 Uhr

Super, vielen Dank für den Link.
Habs mit deiner Methode ans laufen gebracht.

Peter

18.03.2015 - 14:14 Uhr

Hallo zusammen,

in meinem Programm lade ich einige Klassen als Plugins (Mittels System.Reflection.Assembly).

In meinem Programm kenne ich nur das Plugin Interface (hier: MyPluginClass) zu den Klassen.
Meine Liste mit den Objekten sieht so aus:

public List<MyPlugin> objs= new List<MyPlugin>();

Darin liegen dann z.B. Objekte vom typ


public class MyDerivedPlugin : MyPluginClass
{ ... }

Bei der Serialisierung schreibt das Programm natürlich auch nur die in dem Plugin interface definierte Informationen ins XML File.

Wie kann ich dem Serialisierer jetzt beibringen noch weitere Klassen-Variablen aus MyDerivedPlugin zu serialisieren?

An einer anderen Stelle habe ich mir noch mit


[XmlInclude(typeof(MyDerivedClass))]
public class MyBaseClass
{...}

helfen können. Bei einer dynamisch geladenen Assembly geht das aber nicht, da zur Programmierzeit die abgeleitete Klasse noch nicht bekannt ist.

Viele Grüße,
Peter

28.02.2015 - 23:55 Uhr

Danke für den Tipp.

Ich habe mir zwischenzeitlich so beholfen dass ich erst in Originalgröße in ein Bitmap zeichne und dann beliebig hoch skaliere. Hierdurch habe ich auch die Möglichkeit das Bitmap auf Pixel Ebene zu manipulieren.

Für das Verschieben der Objekte mit der Maus werde ich dann eine(unsichtbaren) Ebene mit GraphicsPath Objekten einrichten.

26.02.2015 - 22:01 Uhr

Sollzustand (Screenshot mit Paint bearbeitet):

26.02.2015 - 22:00 Uhr

Ist Zustand:

26.02.2015 - 22:00 Uhr

Hallo Community,

nach einer längeren Abstinenz habe ich mal wieder ein kleines C# Projekt an dem ich arbeite.
Und zwar soll das Ganze ein Editor für HMIs (GUIs) für eingebettete Systeme werden.

Das Zeichnen der GUI geschieht auf Basis des Tutorials hier:
[Tutorial] Gezeichnete Objekte mit der Maus verschieben

Klappt bisher soweit wunderbar, nur das Zoomen klappt noch nicht wie gewünscht. Im angehängten Screenshot ist der Ausgangszustand zu sehen.
In den nächsten beiden Beiträgen lad ich noch den Ist- und den Soll-Zustand hoch.
Wie kann ich beim Zoomen die Kantenglättung verhindern?

Hier der Code der das geglättete Ergebnis liefert:


 protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);

            _canvas.Width = _width * _zoomFactor;
            _canvas.Height = _height * _zoomFactor;
            e.Graphics.SmoothingMode = SmoothingMode.None;
            e.Graphics.InterpolationMode = InterpolationMode.NearestNeighbor;
            
            // Create canvas and set clipping          
            Region clip = new Region(_canvas);
            clip.Intersect(e.Graphics.Clip);
            e.Graphics.Clip = clip;
            e.Graphics.Clear(_bgColor);
            
            /* Replaced by "e.Graphics.PageScale = _zoomFactor;": */
            //Matrix mat = new Matrix();
            //mat.Scale(_zoomFactor, _zoomFactor, MatrixOrder.Append); //zoom to _zoomFactor
            //e.Graphics.Transform = mat;
            
            e.Graphics.PageScale = _zoomFactor;

            foreach (BaseWidgetMdl vm in _model.Widgets)
            {
                if (vm.drawer != null)
                {
                    vm.drawer.Draw(e.Graphics);
                }
            }
        }

15.12.2009 - 11:37 Uhr

Hallo MarsStein,

ok, dann werde ichs mal so probieren.

Noch eine Frage:
Wie übergebe ich am geschicktesten das Hauptform an die Umterklassen?
einfach ein "this" als Parameter im Methodenaufruf?

Gruß,
Peter

14.12.2009 - 23:53 Uhr

Vielen Dank für deine schnelle Antwort, MarsStein!

Was ist denn eleganter (bze. wird im Standardfall genommen), das Übergeben einer Hauptfenster Referenz oder das Aufteilen in mehrere Quellcodedateien?

Gruß,
Peter

14.12.2009 - 23:23 Uhr

Hallo Leute,

habe eine Frage, zu der ich leider kein direkt greifbares Problem Beschreiben kann.

Deswegen beschreibe ich erstmal, was ich bisher programmiert habe:
Ich habe ein "Hauptfenster" erstellt, in welchem ich unter zuhilfenahme von Weifen Luo's DockPanelSuite verschiedene MDI Fenster unterbringe.
Das klappt auch alles hervorragend.

Jedes Fenster hat nun gewisse Teilaufgaben meiner Anwendung zugewiesen bekommen, z.B. Stellt eine eine art ProjektExplorer über ein Treeview dar.

Mein Problem ist jetzt, daß sich zwischenzeitlich extrem viel Code in meinem "Hauptfenster" angesammelt hat.
Denn viele Aktionen innerhalb der MDI Fenster haben auch Einfluss auf das Hauptfenster.

Um ein Beispiel zu geben:

  • Ich kann zur Laufzeit in oben beschriebenen ProjektExplorer ein neues Form hinzufügen. Dabei wird zum Einen ein Eintrag in dem TreeView hinzugefügt, zum Anderen aber auch ein Event ausgelöst unn im Hauptfenster ausgewertet. Denn dort muss natürlich das neue Form erzeugt und angezeigt werden.

Da sehr viele Menüeinträge, MDI Fenster und Klassen von der Hauptfenster Klasse verwaltet und aufgerufen werden, ist der Code wie schon gesagt extrem unübersichtlich geworden.

Wie löst ihr solche größeren Anwendungen elegant? Normalerweise würde ich ja versuchen, möglichst viel in andere Klassen auszulagern, aber das geht in meinem Fall ja kaum, da ich immer den Kontext der Hauptfenster Klasse benötige...

Hoffe mein Problem halbwegs verständlich ausgedrückt zu haben. X(

Gruß,
Peter

01.12.2009 - 01:07 Uhr

Danke für die weiteren Nachfragen und Anregungen!

Habe es am Wochenende geschafft, die SQL Express Datenbank einzurichten, und aus meiner C#-Anwendung über LogParser 2.2 mit den Daten aus meiner GPS-Logdatei zu befüllen.
Das ganze ging ziemlich leicht von der Hand und läuft sehr zuverlässig.
Geschwindigkeit ist aber nocht nicht so der Brüller, wobei ich hier den LogParser als Bremser im Verdacht habe. Das Einspeisen von ca. 15.000 Datensätzen aus einer GPS-Logdatei in meine DB dauert ca. 4 sec.

Da ich aktuell noch ohne Echtzeitansprüche auskommen, sind die 4 sec jedoch erstmal nicht so tragisch. In Verbindung mit Logdateien findet in meiner Anwendung immer nur eine Offline-Auswertung der Daten statt, und da kann man auch mal ein paar Sekunden warten.
Anders sieht es bei meiner für später geplanten Erweiterung zur Analyse von Daten zur Laufzeit aus. Hier werden die Daten dann nicht in einer Log-DAtei gespeichert, sondern direkt von meinem Programm eingelesen, visualisiert und in die DB gespeist. Deswegen gefällt mir der Vorschlag von Jack30Lena sehr gut, die anzuzeigenden Daten vor dem Einspeisen in die DB abzufangen. Spart gut und gerne mal 50% der Bandbreite!
Zusammen mit einer Bündelung der Daten auf nur ein paar DB-Zugriffe pro Sekunde lässt sich die Performance sicherlich noch weiter optimieren.
Bin guter Dinge!

Grüße,
Peter

27.11.2009 - 22:11 Uhr

Bei den Daten handelt es sich um Einträge mit mehreren Parametern. Bei GPS Daten besteht ein Eintrag z.B. Aus :
Zeitstempel,Position X, Position Y, Geschwindigkeit und Richtung

...

Wenn ich rechne, daß die Erfassungsrate meines Loggers bei ca. 20Hz liegt
Ich weiss ja jetzt nicht, ob du von normalen GPS Empfängern sprichst, oder ob du da was ultra hochauflösendes hast... Bei normalen GPS Empfängern hast du bestenfalls eine bestmögliche Ortsauflösung von +/- 10m (sehr optimistischer Wert). Wenn du also mit 20 Hz misst, solltest du dich in einer 1/20 Sekunde also schon um mindestens die halbe Strecke, also 5 m bewegen, damit eine so hoch frequente Messung überhaupt gerechtfertigt ist. Und 5 m in 1/20 Sekunde bedeutet 100 m/s, bzw. 360 km/h...

Also wenn du nicht gerad Flugzeuge oder Gewehrkugeln verfolgst, würde ich mir ernsthaft nochmal die 20 Hz überdenken.

Es handelt sich bei dem eingesetzten GPS tatsächlich um ein hochgenaues DGPS System. Eingesetzt wirds im Motorsportbereich, Geschwindigkeiten von 360km/h sind also nicht ganz ausgeschlossen 🙂

Das mit dem GPS war aber auch nur ein Beispiel, es werden noch weitere Sensoren geloggt, diese zum Teil sogar mit höherer Erfassungsrate bzw. Datenrate.

Nochmal ne Frage zum Thema Datenbanken. Ich werde jetzt, wie bereits geschrieben, mit einer SQL Express DB anfangen. Wenn ich später auf eine geeignete embedded Datenbank wechslen möchte, worauf sollte ich dann jetzt schon achten?
Geht das überhaupt ohne grundlegende Anpassungen?

Gruß,
Peter

26.11.2009 - 22:24 Uhr

Hallo,

Vielen Dank nochmal für die Antworten.

Werde jetzt SQL Server Express 2008 ausprobieren um mal ein Gefühl für Datenbanken zu bekommen.
Kennt jemand zufällig ein gutes Tutorial, daß auch für Datenbank-Noobs geeignet ist?

Gruß
Peter

26.11.2009 - 10:17 Uhr

Hallo zusammen!

Hallo Peter

Für meine Anwendung ist Geschwindigkeit aber oberste Maxime!
Um wie viele Abfragen pro Sekunde geht's dir denn? Wie viele Datensätze enthalten die Tabellen bei 1 GB Datenbank?
Nur damit wir wissen von welcher Größenordnung von Geschwindigkeit wir sprechen.

Grüße
Flo

Bei den Daten handelt es sich um Einträge mit mehreren Parametern. Bei GPS Daten besteht ein Eintrag z.B. Aus :
Zeitstempel,Position X, Position Y, Geschwindigkeit und Richtung

Denke daß jeder Eintrag etwa 5-10 Parameter enthält.

Schwer zu sagen, wieviele Datensätze in der Datenbank enthalten sein werden. Das variert stark mit der Anzahl geloggter Sensoren und mit der Loggingdauer
Wenn ich rechne, daß die Erfassungsrate meines Loggers bei ca. 20Hz liegt, und wahrscheinlich ca. 3 Std. geloggt wird, dann sind das ca. 200.000 Datensätze pro angeschlossenem Sensor. Für mitgeloggte Netzwerke ist die Anzahl tendentiell eher deutlich höher (10Mio Datensätze).
Also in meinem Beispiel kann man in der Summe mit ca. 20Mio Datensätze rechnen.

Noch schwerer abzuschätzen ist die Anzahl der Zugriffe pro Sekunde. Es gibt zwei typische Anwendungsszenarien:

  1. Analyse der Logdateien (Offline-Modus): Zugriffe unregelmäßig, aber wenn dann werden vermutlich sehr viele Daten auf einmal gelesen
  2. Analyse von Daten in Echtzeit (Online-Modus, zukünftige Erweiterung): Daten werden zyklisch (vermutlich auch wieder 20Hz) eingelesen, in die Datenbank eingespeist und dann in der Applikation dargestellt. Hier würde dann auch mit 20Hz schreibend auf die DB zugegriffen, lesend etwas weniger (max. 10Hz). Das würde bedeuten, 30 Zugriffe pro Sekunde bei denen jeweils 50-100 Datensätze transferiert werden.

@BerndFfm:
0,04 Sekunden bei meinen 30 Zugriffen/Sekunde würde Vollauslastung bedeuten. 🙁
Auch wenn unsere Beispiele nicht direkt vergleichbar sind ist das genau die Befürchtung, die ich habe.

Viele Grüße,
Peter

26.11.2009 - 00:01 Uhr

Hallo,

vielen Dank schonmal für die Antworten!

Hallo Peter,

nimm SQL Compact.

Siehe
>
Kapitel 9 und 10.

Grüße Bernd

Hinter dem Link habe ich u.a. folgende Informationen gefunden:

Für Anwendungen mit nur einem User ist der SQL Server Compact **ausreichend **schnell und sicher.

Das Wort ausreichend macht mich hier ein wenig stutzig. Hört sich nach "ganz ok, aber auch kein Burner" an. Für meine Anwendung ist Geschwindigkeit aber oberste Maxime!

Der Satz hier:

XML

Bei sehr kleinen Datenmengen kann es ausreichend sein die Daten im XML-Format zu speichern. Man kann XML-Daten mit einem Befehl in ein Dataset speichern und wieder laden (Na gut, das sind dann 2 Befehle).

Gefällt mir in soweit ganz gut, als daß man wohl mit Datasets und XML ohne klassische Datenbank im Hintergrund arbeiten kann. Hört sich vom ersten Eindruck her ziemlich effizient und performant an. Habt ihr da vielleicht Erfahrungswerte zu?

@Florian Reischl:
Der LogParser hilft mir zwar bei der Auswahl einer Datenbank nicht direkt weiter, aber der Hinweis ist trotzdem sehr hilfreich! Hätte mir wahrscheinlich einen Parser selbstgestrickt, was wieder viel Zeit & Tränen gekostet hätte. 🙂

@Jack30lena:

da du hier vermutlich dein eigenes format haben möchtest und dich so sachen wie db-feldlänge nciht interessieren, ist das auch eher deine aufgabe und nicht die der datenbank
.
.
.
du solltest dich hier eher für einen weg entscheiden, den du persönlich gehen möchtest. wenn du dich mit sql und dessen syntax auseinandersetzen willst, dann wäre am ehesten sqllite interessant.

wenn du eher evtl die ODBC schiene gehen möchtest, dann nimm lieber access.

Ich starte quasi bei Null, d.h. habe keinerlei Präferenzen und auch keinerlei Erfahrungen mit Datenbanken. Verstehe deswegen leider deinen Komentar mit der DB-Feldlänge und den Zusammenhang zur XML Datei nicht.
SQL und ODB sind mir als Begriffe zwar geläufig, aber durch fehlende Erfahrung kann ich auch hier leider nicht sagen, welche "Schiene" die bessere für mich wäre.

Könnte man folgenden Weg gehen:
Logdatei(ASCII) --> LogParser --> Dataset <--> Applikation (lesend/schreibend)
Das Ganze mit der Option, den Inhalt des Dataset als XML zu speichern bzw. von dort zu importieren

Schwieriges Thema, aber man will sich ja auch nicht am Anfang für das falsche Konzept entscheiden und dann ewig damit rumärgern müssen!

Gruß,
Peter

25.11.2009 - 18:11 Uhr

verwendetes Datenbanksystem: noch keins

Hallo,

ich entwickle grade ein Programm in C# Visual Studio 2008 zur Auswertung von Logdateien.
In den Logdateien sind Informationen wie z.B. GPS-Daten, Messwerte von Sensoren und Netzwerkbotschaften enthalten.

Ich würde die Logdateien gerne in meinem Programm interpretieren und zwecks Weiterverarbeitung in einer Datenbank speichern.

Hier mal eine Auflistung der Eigenschaften, welche die Datenbank meines Erachtens nach mitbringen sollte:

  • Eingebettet in die Anwendung, d.H. keine separater DB-Server
  • hohe Geschwindigkeit auch bei großen Datenmengen (bis 1GB im worst-case Fall)
  • Export der Daten als XML Datei
  • Darstellung der Daten in ListBox oder als Graph.

Welche Datenbank wäre nach eurer Meinung am besten für meine Zwecke geeignet?
Irgentwelche Eigenschaften, auf die ich evtl. noch verstärkt achten sollte?

Gruß,
Peter

22.11.2009 - 23:33 Uhr

Hallo,

Bild laden, im Form verschieben und zoomen funktioniert jetzt bestens!
Selbst eine 175 Megabyte große .tiff Datei wird in akzptabler Zeit geladen und ruckelt nur leicht beim Verschieben. freu
Zeichnen klappt grundsätzlich auch schon, ich muss jetzt nur sehen wie ich die GPS Daten importiere / konvertiere, aber das ist ja ein anderes Problem =)

du könntest duch auch ganz einfach Vorhandene, kostenlose Komponenten für die Kartendarstellung nutzen, und in diesen Karten einfach deine GPS-Daten anzeigen lassen:

hm, ja sowas hatte ich ursprünglich im Sinn. Allerdings kann man dort wahrscheinlich nicht eigene (exakt referenzierte) Luftaufnahmen reinladen, oder? Die Genauigkeit, wie Google Earth sie beispielsweise bietet ist leider nicht ausreichend!

Gruß,
Peter

21.11.2009 - 19:38 Uhr

Vielen Dank für die sehr hilfreichen Antworten, vor allem an Birne!

Wie in den Artikeln vorgeschlagen werde zwei übereinander liegende PictureBoxes nehmen, die obere davon transparent. In die untere zeichne ich die Karte, in die obere die Tracks. Später gibts dann noch evtl. eine dritte Box um zusätzliche Informationen einzublenden.

Beide Boxes sollen mit der Maus immer zusammen verschoben und gezoomt werde, um keine Abweichungen zu erhalten.
Da hätte ich gleich wieder ne Frage:
Ich vermute, dr beste Ansatz wäre hier, die Maus Event in der Form abzufangen, die Bewegung auszuwerten und die geänderten Offsets bzw. ZoomFaktoren an beide PictureBoxes weiterzuleiten, oder? Die Parameter würde ich dann dann dort im OnPaint entsprechend mit einfließen lassen. Kann man das so machen oder gibts bessere Wege?

Gruß,
Peter

20.11.2009 - 12:48 Uhr

Hallo,

ich habe hier mehrere Logdateien mit GPS Daten.
Diese würde ich gerne in in einem Windows Form anzeigen.

Das ganze soll so ablaufen, daß ich erst eine Lufaufnahme in das Fenster lade und dann darüber die GPS Daten (gefahrene Strecke) zeichne.

Luftbild + Track sollten innerhalb der Form verschieb- und Zoombar sein.

Habe bereits erste Versuche mit der PictureBox angestellt. D.h. man kan ein Bild reinladen und ein wenig zoomen.
Allerdings is das ganze nicht wirklich befriedigend und ich weiß auch nicht, wie jetzt die gefahrene Strecke über das Bild zeichen kann.
Gibt es hier vielleicht schon fertige Lösungen oder könnt ihr mir Tips geben, wie man weiter vorgehen sollte?

Im Prinzip sollte das Endergebnis vergleichbar mit der Ansicht in z.B. Google Earth sein. Dort kann man mit Hilfe von .kml Dateien ebenfalls seine GPS Daten über der Karte darstellen.

Hoffe anichts vergessen zu haben und auch im richtigen Forum gelandet zu sein 😃

Gruß,
Peter

09.03.2009 - 01:07 Uhr

Ein (C++) OOP Buch habe ich bereits unterm Kopfkissen und zur Hälfte durch. Zusätzlich habe ich mir ein umfangreiches C# Tutorial heruntergeladen und komplett gelesen.
Jetzt gehts ans Austesten, damit die Sachen auch hängenbleiben.

Habe mein Programm schon soweit, daß meine angeschlossenen USB Geräte in einer TreeView angezeigt werden und Fehler-/Systemmeldungen in einem separaten Fenster ausgegeben werden.

Ich finde, daß man sich durch OOP wesentlich mehr auf die eigentliche Problemstellung konzentrieren kann, und sich nicht mehr so viele Gedanken um die Implementierung machen muss. Gefällt mir gut.

Und dank C# gibt es endlich keine (bzw. kaum) Pointer mehr 😉

08.03.2009 - 17:30 Uhr

Ok, danke für die Hinweise. So wie es aussieht sollte ich wirklich erstmal fundiertere Erfahrungen mit OOP / C# sammeln.

Ich werde jetzt einfach einmal loslegen, ohne mir vorher Gedanken über die Architektur zu machen.
Ist wahrscheinlich der beste Weg, erstmal schön in alle Fehler reinlaufen und dann daraus lernen... Das hat in der Vergangenheit auch immer gut funktioniert 😉

08.03.2009 - 01:14 Uhr

Danke, herbivore und FZelle, für eure Unterstützung.

Ich habe mir jetzt alle geposteten Ratschläge und Links näher angeschaut und bin bereits einen guten Schritt weitergekommen.

Ich kann jetzt in einem Child-Fenster ein Event auslösen, das von dem Parent-Fenster aboniert ist. Das Parent-Fenster schreibt die gewünschte Error-Message dann in das entsprechende ErrorMessage-Child-Fenster.

Jetzt habe ich in einem der Links aber viel über das **Model-View-Controller (MVC) **Konzept gelesen und würde meine Anwendung gerne so Aufbauen.

Macht es da überhaupt sinn, von einem Child-Fenster auf ein anderes Child-Fenster zuzugreifen? Wenn ich das MVC Konzept richtig verstanden habe, ist es ja Aufgabe vom Controller, Fehler erkennen und an das entsprechende View (= ErrorMessage-Fenster) zu senden. Denn die Views an sich besitzen keine Intelligenz. Von daher war mein eigentliches Problem ja gar keines 😉

Bezüglich MVC hätte ich auch noch eine Frage: Ist es möglich/üblich, mehrere Controller oder Models zu verwenden? Konkret: Sollte ich für jedes VIEW einen eigenen Controller implementieren oder schriebt man einen Controller für die gesammte Applikation?

Viele Grüße,
Peter

P.S. wie in dem Link von FZelle beschrieben habe ich versucht mir SCSF zu installieren. Hierfür wird jedoch ein Guidance Automation Packet benötigt, welches ich leider nicht installieren kann, da auf meinem Rechner angeblich keit Visual Studio installiert ist... Liegt das Problem darin, daß ich nur die Express-Edition verwende?

06.03.2009 - 09:25 Uhr

Hallo,

danke für die Antworten. Ich werde mir die Links am WE genauer ansehen. Auf den ersten Blick sieht das schon mal interessant aus.

Ich war mir nicht sicher, wo die Frage geposted werden sollte, es zwar im weitesten Sinne mit Forms zu tun hat, meine Probleme aber eher im Verständnis für Basistechnologien von C# fehlt...

Mein konkretes Problem ist, daß ich nicht genau weiß. auf welche art ich Daten von anderen Fenstern an das ErrorMessage-Fenster senden soll. Es gibt da ja unzählige Möglichkeiten, von denen mir wahrscheinlich erst 2 bekannt sind.

Was ist denn hier die Standard-Vorgehensweise? Baut man sich dafür eine Assembly? Oder reicht es aus, eine Referenz auf das ErrorMessage-Window Objekt an die entsprechenden Stellen zu übergeben?

Noch ein unwissende Frage: was ist die :rfm: Doku und wo finde ich diese?

Grüße,
Peter

06.03.2009 - 00:14 Uhr

Hallo,

ich beschäftige mich seit gut einem Monat mit der Softwareentwicklung in C#.
Ich komme eigentlich eher von der Embedded Ecke und möchte für mein nächstes Projekt (USB-Messgerät f. CAN) eine Anwendung in C# schreiben.

Die GUI des C# Programms habe ich bereits grob entworfen. Es können verschieden WindowsForms innerhalb einer Parent WindowsForm geöffnet werden (Stichwort MDI) und dank des sehr genialen Open Source Projektes DockPanelSuite (http://sourceforge.net/projects/dockpanelsuite/) können die Fenster im VS-Stil angedockt werden.

Ebenso ist es mir gelungen, mit meinen USB-Geräten (bzw. mit der DLL) Kontakt aufzunehmen, was dank managed/unmanaged Code gar nicht so einfach war.

Was mir jetzt zum weitermachen leider fehlt ist das grundsätzliche Verständnis von Software Design in C#. Gibt es gute Beispiele oder Muster, wie man C#-Anwendungen entwickelt?
Am hilfreichsten wäre für mich im Moment ein Beispielprojekt, daß mehrerer MDI Fenster beinhaltet, Daten zwischen den Fenstern (und der Hauptapplikation) austauscht und gut dokumentiert ist.
Ganz konkret stehe ich z.B. grade vor dem Problem, daß ich ein "ErrorMessages" Fenster entworfen habe, und dieses jetzt von den anderen Fenstern aus mit TextNachrichten versorgen möchte (z.B. "Error: No Hardware found"). Stehe da echt auf dem Schlauch.

Bin froh über Links, Tutorials, Beispielprojekte oder kurze Erläuterungen. Ich bin auch bereit, mir die Dinge selbst anzueignen, nur weiß ich im Moment nicht, wonach suchen 😉

Viele Grüße,
Peter