Laden...

Forenbeiträge von dwoe Ingesamt 57 Beiträge

15.05.2012 - 21:15 Uhr

Hallo und danke,

@apt: es geht mir natürlich nicht nur um die Zahlen. Ich hatte ja geschrieben, dass es bewusst ein einfaches Beispiel ist. Der Task soll durch ein Event gestartet werden und dann eine heftige Berechnung im Hintergrund durchführen. Wenn es während dieser Berechnung erneut zum event kommt, muss der Task von vorne beginnen.

Ich habe mal etwas zusammen geschrieben, dass so aber leider nicht funktioniert:


        public static Task t = new Task(DoWork);
        public static CancellationTokenSource ct = new CancellationTokenSource();
        
        private static void DoWork()
        {
            for (var i = 1; i <= 10; i++)
            {
                if (ct.Token.IsCancellationRequested)
                {
                    break;
                }
                else
                {
                    Console.WriteLine(i);
                    Thread.Sleep(100);;
                }
            }
        }

        private void Form1_Click(object sender, EventArgs e)
        {
            if (t.Status==TaskStatus.Running)
            {
                ct.Cancel();
            }
            else
            {
                ct = new CancellationTokenSource();
                t = Task.Factory.StartNew(DoWork, ct.Token);   
            }
            
        }

Jemand Ideen? Danke,

Dirk

15.05.2012 - 16:27 Uhr

Hallo zusammen,

ich weiß, das Thema ist schon öfters angesprochen worde und ich habe auch schon einiges gelesen - aber es funktioniert immer noch nicht.

Um es zu vereinfachen, habe ich ein simples Beispiel:

Als Reaktion auf das MouseClick-Ereignis eines Forms, soll ein Thread oder Task gestartet werden, der einfach die Zahlen 1 bis 10 auf der Console ausgibt (mit jeweils einer Sekunde Verzögerung). Wenn zwischenzeitlich das Ereignis wieder ausgelöst wird, soll der Thread stoppen und wieder bei 1 anfangen zu zählen.

Ich arbeite mit .Net 4.0 - also sollte ich wohl Tasks nutzen - nur alle meine Versionen funktionieren nicht. Vielleicht kann mir jemand helfen mit einem kleinen Beispiel?

Vielen Dank,

Dirk

01.03.2012 - 18:54 Uhr

Also Toolkit wäre das Stichwort wonach ich suchen muss....?

01.03.2012 - 17:55 Uhr

... ansonsten sind deine aufgeführten Punkte in wenigen Minuten implemetiert.

... Ist das wirklich dein Ernst?

(Update-Funktionalität, Plugin-Funktionalität,...????)

01.03.2012 - 16:27 Uhr

Hallo,

wenn du sowas wie VS drum herum haben möchtest, dann nimm das doch:
>

😃 VS war nur als Beispiel für eine passende Oberfläche mit Docking gedacht - die ganze spezielle Funktionalität dahinter kann ich eigentlich nicht brauchen.

Mehr so die elementaren Funktionen - zum Beispiel: wie bringe ich dem Programm bei, dass jedes Fenster beim Schließen seine Position und Größe abspeichert und beim erneuten anlegen des Fensters einliest. Oder: wenn ein Fenster ein ListView-Steuerelement nutzt (wie der Windows-Explorer) - wie bringe ich dem dann bei dass Spaltenbreiten automatisch gespeichert werden (ohne es bei jedem Fenster neu zu machen).

Vielen Dank,

Dirk

01.03.2012 - 15:29 Uhr

Hallo und danke,

Hier findest du sowas:

>

wenn ich das richtig verstehe, handelt es sich hierbei ja "nur" um eine Komponente (zur Nutzung des Dockings). Gibt es einen Grund diese zu nutzen und nicht AvalonDock?

Ich denke für alle meine Fragestellungen gibt es die eine odere andere Komponente, die man einbauen könnte.

Was ich aber eigentlich suche ist der Rahmen darum. Quasi ein Grundgerüst für eine Anwendung, die all diese Features schon besitzt bzw. die entsprechenden Komponenten schon nutzt.

Ich könnte zwar jetzt eine Anwendung mittels AvalonDock neu beginnen - dann muss ich aber noch das Logging, die Benutzereinstellungen etc. selber implementieren. Ich hatte gehofft, all das gäbe es schon als fertiger Rahmen für neue Projekte...

Viele Grüße,

Dirk

01.03.2012 - 14:17 Uhr

Hallo zusammen,

ein neues Projekt soll eine MDI-Oberfläche erhalten - ähnlich der Oberfläche von Visual Studio (ist das überhaupt MDI oder nennt sich das anders?).

Was ich suche ist quasi ein Framework oder Rahmen (oder Grundgerüst) für eine solche Anwendung, der mir alle möglichen Arbeiten rund um den Aufbau der Anwendung schon mal abnimmt.

Das wären zum Beispiel:*Verwaltung von Fenstern *Docking von Fenstern (Stichwort: z.B. AvalonDock) *Speicherung von User-/Anwendungsdaten bzw. -einstellungen *Update-Funktionalität *Addin-/Plugin-Funktionalität *etc.

Schön wäre es, wenn man nur noch mit dem "Hinzufügen" eigener Formulare (und natürlich Klassen) mit der Entwicklung beginnen könnte.

Ist klar geworden, was ich suche? ... Gibt es so etwas oder habt Ihr Tipps wonach ich suchen muss?

Vielen Dank,

Dirk

23.02.2012 - 20:21 Uhr

Ich bin wirklich super dankbar für jeden noch so kleinen Tipp und ich weiss sehr wohl, dass ich als Anfänger ohne die tolle Hilfe der Leute hier im Forum völlig aufgeschmissen wäre.

Also nochmal: vielen Dank!

(nur: mir jedes mal zu sagen, dass meine Frage zu unspezifisch ist bringt keinen weiter - die anderen scheinen mein Problemm aber ja verstanden zu haben)

Viele Grüße,

Dirk

23.02.2012 - 20:02 Uhr

@Thomas_1:
Sorry, aber warum ignorierst Du meine Fragen nicht einfach, wenn's Dir zu blöd ist darauf zu antworten. Deine bisherigen Antworten haben zumindest mir (und wahrscheinlich auch sonst kaum jemanden) irgendwie weiter geholfen - dass 39GB/s nicht durch mein 56K-Modem passen, hätte ich glatt vorher gewusst.

Ich denke schon, mein Problem könnte so grob verstanden sein. Ich erwarte auch keine vorgekaute Lösung, sondern bin nur dankbar über grundsätzliche Tipps, wie man ein solches Problem angeht. Wenn jemand ein Codebeispiel kennt: noch besser.

Vielen Dank für Eure Hilfe,

Dirk

23.02.2012 - 16:30 Uhr

Ich denke das macht erst dann Sinn wenn du mehrere solche Textdateien hast.
D.h. während du Textdatei 2 einliest kannst du parallel schon Textdatei 1 verarbeiten.

Langfristig werde ich das ja haben: ich lese mehrere Dateien ein - verarbeite sie - und nutze diese Ergebnisse dann um sie mit einer 3. Datei zu verknüpfen etc....

Daraus wird sich ein ganzer Baum mit abzuarbeitenden Aufgaben ergeben - ein parallel "Abarbeiten" wird spätestens dann sinnvoll...

Vielen Dank,

Dirk

23.02.2012 - 14:01 Uhr

In der Praxis wirst du ja eh nie alle Elemente gleichzeitig eingelesen haben, sondern eher parallel schon mit der Verarbeitung beginnen.

Hat jemand für diese Vorgehen zufällig mal ein Beispiel zur Implementierung?

Die Anforderung für ein einfaches Beispiel ist ziemlich übersichtlich:*Einlesen von > 5.000.000 Zeilen aus einer Textdatei in die List<T> mit Wertepaaren *Verarbeiten der Daten: z.B. ein gleitender Durschnitt von immer 1000 Werten

Wie könnte man so etwas implementieren, dass die Berechnung des Schnitts schon beginnt, während noch eingelesen und geparsed wird?

Viele Dank,

Dirk

23.02.2012 - 11:20 Uhr

Was ich jetzt gerade gar nicht verstehe:

Wenn ich obiges Beispiel nutze um die List<T> mit Wertepaaren der Klasse/Struktur zu füllen, ist das Füllen mittels Struktur ja deutlich schneller (haben wir ja schon festgestellt).

Wenn ich das ganze aber mal bis zur System.OutOfMemoryException durchlaufen lasse ist bei der Structure bei 16.000.000 Elementen Schluss - bei Verwendung einer Klasse bei 33.000.000.

Woran liegt das denn? Wir hatten doch gesagt, die Klasse wäre bei kleinen Datenstrukturen speicherintensiver... oder liegt es an der unterschiedlichen Verwendung von Stack und Heap?

Danke,

Dirk

22.02.2012 - 15:52 Uhr

public class CollectionTest
{
	public class WertePaar
	{
		public System.DateTime Index;
		public long Wert;
	}

	public static void TestCollListof()
	{
		List<WertePaar> tmpColl = new List<WertePaar>();

		// Füllen
		for (i = 0; i <= 5000000; i++) {
			tmpColl.Add(new WertePaar {
				Index = new System.DateTime(i),
				Wert = i
			});
		}
	}
}

...wenn ich bei diesem Beispiel die Klasse WertePaar durch eine Strukture ersetze, dauert es statt 0,91 nur noch 0,30 Sek für die 5.000.000.

Ich lasse die Tests nicht direkt nacheinander laufen, sondern kompiliere die neue Variante ganz neu.

Vielen Dank,

Dirk

22.02.2012 - 13:42 Uhr

Was heißt denn "Gefühl"? "3-mal so lange" sollte sich doch wohl messen lassen.

Welche "Collection" hast Du denn nun verwendet und wie füllst Du sie?

Also, für meine Test habe ich vorerst eine List<T> genutzt und mit 5.000.000 Wertepaaren gefüllt. Bei Verwendung einer Structure dauert das 0,30 Sek - bei Verwendung einer Klasse 0,95 Sek.

Die Frage wäre jetzt, ob sich diese Zeitdifferenz auch bei weiteren Operationen auf der List ergibt oder ob es nur am Anfang beim Anlegen der ganzen Objekte einmal dazu kommt und anschließend alles gleich schnell läuft.

Wenn es nur "einmal" am Anfang länger dauert könnte ich damit leben - da ich vermute, dass die folgenden Rechenoperationen maßgeblich Zeit kosten werden.

Welche Vorteile hätte ich denn von der Verwendung von Klassen statt Strukturen?

Vielen Dank,

Dirk

22.02.2012 - 10:51 Uhr

Nochmal eine prinzipielle Frage:

Wie sollte der Datentyp für das Wertepaar (Datum/Uhrzeit und Wert) aussehen? Ich habe das Gefühl, dass das Füllen der Collection 3-mal so lange dauert, wenn ich anstelle einer Structure eine Klasse definiere.

Gibt es Gründe für die Verwendung einer Klasse?

Viele Dank,

Dirk

21.02.2012 - 17:03 Uhr

Hallo zusammen und danke für die Antworten.

Da das Lesen der Datei wirklich nur ein kleiner Teilaspekt ist würde ich mein Frage gerne erweitern.

Welche Form der Collection sollte ich wohl verwenden um die Daten im Speicher zu halten und weiter zu verarbeiten?

Konkret geht es darum eine Zeitreihen (Wertepaar aus Datum/Uhrzeit und Wert) mit 5.000.000 Einträgen zu verwalten. Eine Anwendung wäre dann z.B. die Werte der Größe nach zu sortieren oder z.B. aus den Minuten-Werten Tages-Mittelwerte zu berechnen.

Sollte man für die Wertepaare eine Klasse oder eine Struktur wählen?

Welche Form der Collection sollte für die weitere Verarbeitung (siehe Beispiel) der Daten die schnellste sein?

Ich hoffe für die Fragestellung sind die "Anforderungen" genau genug spezifiziert...

Vielen Dank,

Dirk

17.02.2012 - 14:05 Uhr

Hallo zusammen,

ich stehe vor der Aufgabe sehr viele (>2000), sehr große (>80MB) Textdateien einlesen und verarbeiten zu müssen. Es handelt sich um Messergebnisse, die durchforstet werden müssen.

Die Dateien sind Textdateien - in jeder Zeile steht ein Zeitstempel mit Messwert, die ich zur weiteren Verarbeitung in eine Collection schaufeln möchte (in welche muss ich noch klären).

Zu den Fragen:
*Welche Einleseroutine ist die schnellste - auch in Hinblick auf das weitere Verarbeiten? Ich habe ReadAllLines und Streamreader getestet. *Wie durchforste ich das Eingelesene am effizientesten? Wenn ich ReadAllLines nutze kriege ich ja ein Array aus Strings, die ich mittels Substring zerlegen kann. Nur kommt mir das nicht sehr schnell vor. Gibt es andere und schnellere Möglichkeiten (ByteArray)?

Bei der Menge an Daten und Dateien kommt es schon auf ein paar Sekunden an.

Vielen Dank,

Dirk

07.11.2011 - 15:43 Uhr

Hallo zusammen,

mein aktuelles Projekt wird in Deutsch und Englisch entwickelt. Die englischsprachige Version soll auch ein englisches Setup bekommen. Ich habe also ein Setup-Projekt in VS angelegt und die Localization auf English (United States) gestellt.

Leider erhalte ich beim Erstellen die Meldungen:> Fehlermeldung:

WARNUNG: Es wurde keine Entsprechung für Kultur en-US für das Windows Installer 3.1-Element gefunden. Kultur de wird verwendet.
WARNUNG: Es wurde keine Entsprechung für Kultur en-US für das .NET Framework 3.5-Element gefunden. Kultur de wird verwendet.

Das Setup "spricht" nachher auch (zumindest auf meinem deutschen Rechner) Deutsch und nicht Englisch. Es soll aber auch auf meinem Rechner Englisch sprechen.

Was muss ich denn installieren, um auch ein englisches Setup zu erzeugen. Und wo kann ich das finden?

Vielen Dank,

Dirk

19.10.2011 - 16:28 Uhr

Hallo,

also wenn ich es richtig verstehe, ist bei dir in der Kultur "de-de" das Dezimaltrennzeichen ein Punkt und kein Komma? Fände ich ungewöhnlich, :::

Ja, genauso ist es. Grund sind alte numerische Fortran-Modelle, die nur mit Punkt als Dezimaltrennzeichen ordentlich arbeiten.

Ich suche halt nach einer Lösung, die quasi unabhängig von den Ländereinstellungen des Kunden funktioniert: Deutsch mit Punkt oder Komma, Englisch mit Punkt oder Komma, etc....

Danke,

Dirk

19.10.2011 - 16:08 Uhr

Hallo und Danke,

wenn du Kultur auch de-de ist, dann ist das der Grund dafür.

Du könntest das , durch den . ersetzen und dann mit der invarianten Kultur das parsen durchführen.

ja, das ist so: System de-DE mit Punkt als Dezimaltrennzeichen. Aber wieso ist das denn der Grund. Ich dachte mittels CulturInfo definiere ich eine Cultur, die dann maßgeblich für das Parsen ist? Und in de-DE ist doch eigetlich das Komma der Trenner (nur nicht auf meinem System).

Was genau ist InvariantCulture? Wird hier dann immer der Punkt verwendet? (das würde nicht gehen, da es auch noch eine alte VB6-Version der Software gibt. Und die hat immer Komma geschrieben - deren Dateien muss ich aber lesen können).

Vielen Dank,

Dirk

19.10.2011 - 15:48 Uhr

Hallo zusammen,

ich versuche einen String (immer mit Komma als Dezimaltrennzeichen) in Double zu konvertieren - unabhängig von den Ländereinstellungen auf dem System.


            CultureInfo culture = default(CultureInfo);
            culture = CultureInfo.CreateSpecificCulture("fr-FR");
            Console.WriteLine(double.Parse("9,81", culture));

liefert 9.81


            culture = CultureInfo.CreateSpecificCulture("de-DE");
            Console.WriteLine(double.Parse("9,81", culture));

liefert 981


            culture = CultureInfo.CreateSpecificCulture("en-US");
            Console.WriteLine(double.Parse("9,81", culture));

liefert 981 (ist ja klar).

Aber warum liefern Deutsch und Französisch nicht das selbe? Auf meinem Entwicklungssystem nutze ich Punkt als Dezimaltrennzeichen - für das Einlesen einer Datei soll aber immer Komma verwendet werden (und das soll auf Rechnern in aller Welt laufen).

Vielen Dank,

Dirk

18.10.2011 - 12:11 Uhr

Hallo zusammen,

mithilfe von Viual Studio habe ich meine Forms zweisprachig entwickelt: Eigenschaft Localizable = True. Dann das Form mit der Language Standard auf Deutsch zusammengebaut und dann Language auf English umgestellt und alles übersetzt.

Jetzt würde ich mir gerne zusätzlich noch Versionen kompilieren, die unabhängig von der Sprache des OS immer eine bestimmte Sprache meines Forms anzeigen. Also z.B. eine "feste" Version, die immer nur alles in Englisch darstellt - auch auf einem deutschen System.

Was müsste ich am Anfang in der Anwendung für einen Code einfügen, damit z.B. immer Englisch verwendet wird?

Vielen Dank,

Dirk

17.08.2011 - 18:45 Uhr

Hallo zusammen,

ich habe ein Problem mit Crystal Reports:

in Abhängigkeit der Anzahl der Datensätze kann die dritte Seite meines Reports über 1 oder 2 Seiten gehen.

Da beidseitig gedruckt werden soll, soll die folgende Seite IMMER auf der 5. Seite meines Gesamt-Reports gedruckt werden. Ich müsste also mal eine Seite einfügen und mal eben nicht...

Wie kann ich das realisieren?

Vielen Dank,

Dirk

30.05.2011 - 16:04 Uhr

Super, vielen Dank - das war's! 2 Stunden ausprobieren und dann eine einfache Antwort mit der Lösung.

Eine Frage hätte ih aber noch:

gibt es eine Möglichkeit das Ergebnis einer Abfrage in LINQ einfach in einen Dataset zu überführen. Ziel wäre die Darstellung in einer DataGridView oder der Export nach SQL-DB.

Vielen Dank,

Dirk

30.05.2011 - 15:20 Uhr

Hallo zusammen,

ich kämpfe das erste Mal mit LINQ to XML und komme nicht weiter.

Ich habe eine XML-Datei, in der ein Namespace definiert wird und wo es dann unterhalb von root 6 weitere Elemente gibt. Innerhalb eines dieser Elemente gibt es dann tausende von Descendants.

Ich würde jetzt gerne eine Abfrage generieren, die mir all diese Descendants liefert, die einen bestimmten Namen haben. Das Problem ist nur: das befindet sich alles innerhalb des definierten Namespaces und irgendwie schaffe ich es nicht die Descendant zu filtern.

Hat jemand einen Tipp?

Vielen Dank,

Dirk

11.04.2011 - 17:04 Uhr

Vielen Dank,

mit dem temporär erzeugten Eintrag klappt es sehr gut - hat eben auch den Vorteil, dass ich die Combobox nicht komplett zum Bearbeiten freigeben muss.

Da ich in der Tabelle keine Beziehungen aufgebaut habe, stört mich der Nachteil mit der referenziellen Integrität auch nicht so.

Danke schön nochmals,

Dirk

11.04.2011 - 14:45 Uhr

Vielen Dank und sorry:

es handelt sich um ADO.Net und Windows-Forms. Ich hatte gedacht, es wäre auch ohne "manuelle Nacharbeit" möglich - einfach über die richtigen Einstllungen bei der Bindung.

Viele Grüße,

Dirk

11.04.2011 - 11:35 Uhr

Hallo,

hat wirklich niemand eine Idee bzw. einen Link, wo mir erklärt wird, wie ich ein Combobox an eine Datenbank binden kann und auch Null-Werte nutzen kann...

Oder ist meine Frage zu unverständlich?

Vielen Dank,

Dirk

06.04.2011 - 17:15 Uhr

verwendetes Datenbanksystem: Access

Hallo zusammen,

als Ergänzungspost zu meiner früheren Frage:

ich habe eine Combobox, die mir mittles SelectedValue und DisplayMember etc. Text aus einer Art Detail-Tabelle darstellt. In der Mastertabelle sind Integer (oder Null) gespeichert und in der Detailtabelle ist für Integer-ID dann ein Text gespeichert, der in der Combo dargestellt wird.

Was aber nicht klappt: wenn der User der angezeigten Text mittels Entf löscht, soll ein Null in die DB geschrieben werden.

Irgendwie muss es doch gehen - ich möchte aber keinen zusätzlichen "virtuellen" Eintrag in der Detail-Tabelle.

Hat jemand einen Tipp?

Vielen Dank,

Dirk

06.04.2011 - 15:19 Uhr

Vielen Dank - das klappt so schon mal.

Ein Frage aber noch: wie kann ich einen "leeren" Eintrag realisieren? Der User sollte den Inhalt der Combobox auch löschen können und in der DB sollte ein Null-Wert erzeugt werden. Ist das möglich - ohne einen zusätzlichen "leeren" Eintrag in der Referenztabelle (Sanierung)?

  1. Warum programmierst du in VB, bzw gibt es keine VB-Foren? 😉

  2. Wenn dies kein spezielles Projekt betrifft, wo Access vorrausgesetzt wird, sondern nur zum Einarbeiten in ADO.net, solltest du besser gleich SQL-Server-Express oder Compact o.ä. verwenden.

  3. Dir wird eher geholfen, wenn du die relevanten Codeschnipsel direkt einfügst und kein ganzes Projekt anhängst, denke ich.){gray}

  1. Ich sehe mich in erster Linie als .Net-Programmierer - außerdem vollziehe ich langsam den Wechseln von VB zu C#. MyCSharp ist aber eines der besten mir bekannten Foren... 😃

  2. Access ist leider Pflicht - da ein Fremdprogamm die gleiche Datenbank nutze muss und nur damit umgehen kann.

  3. Ich wusste schlichtweg nicht, was relevant ist. Daher habe ich mir den Mini-Extrakt gebastelt und komplett veröffentlicht.

Vielen Dank,

Dirk

06.04.2011 - 12:29 Uhr

verwendetes Datenbanksystem: Access

Hallo zusammen,

ich habe ein Problem mit der Datenbindung einer Combobox. Die Combobox soll den Inhalt einer Spalte einer Tabelle (Haltungen) darstellen. Es soll aber nicht der gespeicherte Integer-Wert dargestellt werden, sondern ein Text aus einer anderen Tabelle (Sanierung), der den Integer-Wert repräsentiert. Das klappt mittels Displaymember und Valuemember auch schon mal.

Leider klappt das Aktualisieren nicht. Wenn ich den Eintrag ändere, wird beim nächsten Starten der Anwendung wieder der erste Eintrag der Combobox gezeigt (und auch gespeichert). Woran liegt das?

Vielleicht kann ja mal jemand in beigefügtes Projekt schauen (ist zwar VB - sollte aber für jeden hier einfach nachvollziehbar sein).

Vielen Dank,

Dirk

25.03.2011 - 10:53 Uhr

Eigentlich weder muss noch will. Ich brauche auf irgend einem Weg eine Datenbankstruktur, die es mir ermöglicht die besagten XML-Dateien zu importieren.

Ich dachte: da die XSD-Dateien die Struktur ja quasi beschreiben, könnte man diese nutzen um eine DB-Struktur aufzubauen.

Was ich nachher programmieren muss/will: eine GUI aus der man eben diese XMLs dann auswählen und in (die vorhandene) DB importieren kann. Und dann natürlich eine GUI um auf dieser DB mit den Daten zu arbeiten...

Vielen Dank,

Dirk

25.03.2011 - 10:19 Uhr

verwendetes Datenbanksystem: MS-SQL-Server, Access

Hallo zusammen,

für den Austausch von Projektdaten wurde (nicht von mir) ein XML-Format eingeführt nebst dazugehöriger Schema-Dateien, die ja wohl den Aufbau der XML-Dateien beschreiben sollen.

Ziel ist es nun auf Basis dieser Schema-Dateien eine Datenbank in Access oder MS-SQL-Server zu entwickelen, die das Datenformat abdeckt und in die ich dann die passenden Projektdaten im XML-Format importieren kann.

Könntet Ihr mir einen Einstieg geben, wie ich am besten aus einer XSD Datei eine Datenbank generiere und wie ich den Import der XML-Daten realisieren kann - später auch den Export...

Ich habe schon viel gelesen (LINQ, XML, usw.) - nur der richtige Einstieg fehlt irgendwie noch.

Vielen Dank,

Dirk

29.10.2010 - 11:27 Uhr

Hallo zusammen,

zur Verwendung in einem eigenen Projekt suche ich eine freie Komponente zur Visualisierung von Diagrammen. Die Diagramme sollten nicht nur dargstellt werden können sondern auch zur Laufzeit interaktiv vom User bearbeitet werden können.

Gemeint sind keine Charts sondern Diagramme im Visio-Stil. Ein Beispiel wäre der Diagrammeditor von NClass.

Kennt jemand passende Komponenten, die frei sind und möglichst auch noch aktiv betrieben werden?

Vielen Dank,

Dirk

27.10.2010 - 21:52 Uhr

Hallo zusammen,

ich plane ein Tool zur Verwaltung und Verarbeitung von Zeitreihen (große Anzahl an Wertepaaren: Zeitstempel - Wert). Dabei sollte ein Objekt immer einen bestimmten Input (z.B. eine DB, eine Datei oder ein anderes Objekt vom Typ Zeitreihe), eine Verarbeitungsfunktion (z.B. alle Werte verdoppeln) und als Output wieder eine Zeitreihe besitzen.

So könnten mehrere dieser Objekte "hintereinander geschachtelt" werden und komplexere Berechnungen durchgeführt werden.

Ich möchte gerne das Projekt (endlich mal) durchgehend sauber in OOP durchziehen und bitte daher um ein wenig Hilfe:
*Ich könnte ein paar Tipps zum Objektentwurf gebrauchen. Vielleicht kann jemand ansatzweise in Pseudocode ein paar Tipps zum Entwurf beisteuern. *Zur konkreten Implementierung: mit welchen .Net Klassen sollte die konkrete Implementierung erfolgen (Collection, Dictionary, usw.). Wichtig ist, dass sehr große Mengen an Wertepaaren verwaltet werden können und der Zugriff extrem schnell erfolgen kann. *Kann mir jemand eine Software empfehlen zum grafischen Entwurf von Klassen? Oder sollte ich die direkt im Visual Studio erledigen?

Vielen Dank für die Hilfe,

Dirk

25.08.2010 - 16:43 Uhr

Vielen Dank,

das wars (zumindest, falls sich die Shortcuts nicht aufgrund z.B. einer Ländereinstellung zur Laufzeit ändern).

Viele Grüße,

Dirk

25.08.2010 - 16:40 Uhr

Hallo zusammen,

die Lokalisierung meines Projekts funktioniert so weit ganz gut. Entsprechend der Einstellungen des Rechners wird zur Laufzeit die passende Sprache angezeigt - und falls die nicht vorhanden wird eben die Standard-Sprache angezeigt.

Ich möchte dem Anwender aber zusätzlich auch die Möglichkeit geben, die Sprache manuell in einer Combo-Box auszuwählen. (Gerade in Osteuropa komme ich mit Deutsch u.U. weiter als mit Englisch als Standard).

Wie kann ich überprüfen, auf welche Sprachen meine Exe zugreifen kann. Ich würde die Liste der Sprachen in der ComboBox gerne dynamisch füllen, da ich ja nachträglich noch Sprach-Dlls hinzufügen kann, ohne die Anwendung neu zu installieren (und zu compilieren).

Vielen Dank für die Hilfe,

Dirk

24.08.2010 - 17:09 Uhr

Hallo zusammen,

also irgendiwie hänge ich gerade.

Ich habe eine Anwendung mit MDI-Parent und diversen MDI-Childs. Gerne nutzen würde ich jetzt Cut/Copy/Paste mittels Menü und Shortcut.

Wenn ich jetzt beim Menüpunkt "Kopieren" einen ShortcutKey "Strg-C" definiere, lande ich in der Ereignisroutine für diesen Menüpunkt - das "Strg-C" wird aber nicht an die Childs weitergeleitet. Ich müsste also in der Ereignisroutine alles abarbeiten (aktives Control suchen, Kopiervorgang in Abhängigkeit des Controls usw.) Da ich viele verschiedene Controls nutze (auch fremde) eher sehr umständlich.

Alternativ lösche ich den Eintrag bei ShortcutKey und trage nur etwas bei ShortcutKeyDisplayString an. Dann klappt das "weiterreichen" des Tastendrucks - dafür passiert nichts, wenn ich das Menü anklicke. Dann müsste ich hier wieder für jedes Control was entwickeln...

Hat jemand den ultimativen Tip, wie ich in MDI-Anwendungen am besten mit Shortcuts umgehen kann?

Vielen Dank,

Dirk

12.08.2010 - 08:59 Uhr

Hallo FZelle,

nochmal vielen Dank für deine Antwort.

Jetzt klappt's aber leider komme ich scheinbar auch mit HTML nicht weiter: gerade die Tags Hoch-/Tiefstellen oder Schriftgröße scheint der Reportviewer 10 zu ignorieren. Und gerade das brauche ich für Formeln bzw. physikalische Einheiten.

Angeblich kann der Reportviewer ja auch RTF - nur ich finde nirgends ein Beispiel wie dies zu aktivieren wäre. Falls jemand weiß, was ich in eine Textbox schreiben muss, damit der RTF-Text formatiert wird, bitte ich um einen Hinweis.

Achja, und ist es möglich den ReportViewer 10 unter VS 2008 zu nutzen?

Vielen Dank für Eure Hilfe,

Dirk

11.08.2010 - 21:00 Uhr

Hallo FZelle,

schon mal vielen Dank für Deine Antwort - 2 kleine Fragen hätte ich noch:

Ich habe das ganze jetzt mal mit Visual Studio 2010 und somit mit dem Reportviewer 10 versucht. Leider schaffe ich es einfach nicht, dass der Inhalt einer Textbox in einem lokalen Bericht (rdlc) als RTF interpretiert wird. Was muss ich denn wo eintragen, damit ein Text einfach formatiert dargestellt wird. (z.B. so: yes - you can). Eine Lösung per html wäre mir auch recht.

Kann ich prinzipiell den ReportViewer 10 auch in Visual Studio 2008 nutzen. (Möchte ungerne mein Projekt komplett rüber transformieren).

Viele Grüße,

Dirk

11.08.2010 - 18:07 Uhr

Hallo zusammen,

alle paar Stunden ein neues Problem 😦

Nachdem ich im Formular mein Problem mit der Formatierung von Richtextboxen gelöst habe - jetzt eine neue Frage:

wie kann ich in RDLC-Reports ein Textfeld formtieren. Ziel ist lediglich das Hoch- bzw. Tiefstellen einzelner Zeichen um z.B. eine Einheit vernünftig darzustellen.

Hat dafür jemand einen Tipp?

Vielen Dank,

Dirk

11.08.2010 - 13:39 Uhr

Hallo Lion,

super vielen Dank - eine Tabelle oder eine Liste ist die Lösung.

Klasse, dass mir hier immer so schnell geholfen wird.

Vielen Dank nochmal,

Dirk

10.08.2010 - 16:39 Uhr

Hallo zusammen,

irgendwie klappt das bei mir mit den Reports noch nicht ganz. Vielleicht könnt Ihr mir ja helfen. Was ich gemacht habe:
1.im Designer ein DataSet mit einer Tabelle mit 2 Spalten angelegt 1.einen Report (rdlc) angelegt und die beiden Spalten aus dem DataSet da drauf gezogen (der Designer erzeugt dann immer =Sum(Fields!ID.Value) - das habe ich in =(Fields!ID.Value) geändert.

  1. dem ReportViewer als Reportquelle den eben angelegten Report angegeben
  2. im Quellcode dann einen neuen DataSet angelegt und mittels .Table.Rows.Add(...,...) mehrmals ein paar Zeilen eingefügt
  3. mit ReportViewer.LocalReport.Datasource.Add(...) dem Report das eben erzeugte Dataset als Quelle übergeben

Nach dem Erzeugen zeigt mein Report nur eine Zeile des Datasets an (und zwar die letzte).

Woran kann das liegen? Jemand eine Idee.

Vielen Dank für die Hilfe,

Dirk

10.08.2010 - 15:39 Uhr

Hallo nochmal,

vielen Dank für die Antworten.

Es lag daran, dass das neue Steuerelement offensichtlich ein \rtf1 verlangt - mit:

RichTextBox1.Rtf = "{\rtf1 Fr\sub\fs20  T,Bem}"

klappt es jetzt.

Doch, liest du unsere Antworten denn auch?

Doch natürlich - meine Frage "gibt es so was nicht?" bezog sich auf den Wunsch ein Steuerelement zu finden, das bereits zur Entwurfszeit den formatierten Text darstellt, so dass man dann das Form-Design z.B. an die Größe anpassen kann.

Nochmal vielen Dank,

Dirk

10.08.2010 - 15:09 Uhr

Unter VB6 ging zum Beispiel folgendens


RichTextBox1.Text = "{Fr\sub\fs20  T,Bem}"

irgendwie geht das jetzt m.M. nach nicht mehr.

Schön wäre natürlich auch ein Control, was ich schon zur Laufzeit füllen könnte und was mir das dann auch schon formatiert anzeigt...gibt es so was nicht?

Danke für die Hilfe,

Dirk

10.08.2010 - 09:28 Uhr

Hallo zusammen,

meine Anwendung ermöglicht hydraulische Berechnungen. Leider habe ich es dabei teilweise mit recht kryptischen Einheiten zu tun.

Ich suche nun ein Steuerelement, welches Beschriftungen erlaubt (ähnlich dem Label), die ich aber zumindest teilweise noch formatieren kann (hoch-/tiefstellen). Vielleicht gibt es ja sogar etwas, was komplette Formeln darstellen kann.

Unter VB6 habe ich das RichTextBox-Control verwendet, dass mittels Steuerbefehlen formatiert werden konnte - aber irgendwie funktioniert das jetzt nicht mehr so?

Hat jemand eine Idee?

Vielen Dank,

Dirk

10.08.2010 - 09:20 Uhr

Vielen Dank, ich werde das dann heute mal versuchen hin zu bekommen.

Dirk

09.08.2010 - 14:40 Uhr

Sehr gut - vielen Dank.

Das Stichwort hat ausgereicht um es zu schaffen - selbst das "Durchreichen" von Parmetern an SubReports funktioniert.

Eine Frage noch : kann ich per Parameter auch steuern, ob z.B. ein eingebettetes Bild angezeigt wird oder nicht? (in meinem Fall der Hinweis auf eine Evaluierungsversion).

Vielen Dank,

Dirk

09.08.2010 - 10:05 Uhr

Hallo zusammen,

ich möchte das Ergebnis einer Berechnung meines Programms gerne in schön formatierter Form auf dem Bildschirm ausgeben (drucken, als PDF exportieren usw.).

Nutzen würde ich dafür gerne das ReportViewer-Steuerlement und und einen rdlc-Report.

Gibt es eine Möglichkeit die Reports so zu mißbrauchen, dass ich mir den Report im Designer schön zusammenklicke und dann zur Laufzeit gewisse Felder einfach manuell mit Werten fülle (also ohne Datenbank oder Dataset etc.).

Vielen Dank für die Hilfe,

Dirk

05.08.2010 - 12:01 Uhr

Nochmals vielen Dank - über die Anschaffung der Komponente denken wir mal nach - trotzdem hätte ich noch ein paar Fragen zum Weg über den SQL-Server.

Mir ist immer noch nicht ganz klar was ich in welcher Reihenfolge installieren muss.

Ich habe jetzt auf einem Testrechner VisualStudio 2008 installiert - mitinstalliert wird SQL Server Express 2005.

Leider habe ich beim Anlegen eines neuen Projekts nicht die Möglichkeit Business Intelligence Projekte zu wählen.

Dann habe ich versucht das Toolkit für SQL Server 2005 Express zu installieren. Ich wähle Business Intelligence aus - aber es kommt die Meldung, dass entsprechende Komponenten schon vorhanden sind???

Was genau meinst Du mit "große Version vom SQL Server Express"?

Vielen Dank,

Dirk