Laden...
P
pro myCSharp.de - Member
Entwickler Schweiz Dabei seit 01.11.2006 216 Beiträge
Benutzerbeschreibung

Forenbeiträge von pro Ingesamt 216 Beiträge

08.11.2011 - 22:28 Uhr

Hallo zusammen,

Wie binde ich am besten einen WCF-Service in einem Silverlight Client an?

Das Assembly mit den Interfaces kann ich leider nicht als Referenz hinzufügen, da es kein Silverlight Projekt ist. Die Generierung der Service-Referenzen funktioniert nicht, da er wegen einem ungültigen HTTP-Header (im EndInvoke) eine Exception wirft.

Wie bindet man einen WCF-Service normalerweise in einem Silverlight-Client an?

Vielen Dank für Euer Feedback.

Grüsse, pro

17.03.2011 - 15:24 Uhr

Hallo Gwinn,

Ja etwas in dieser Art. Jedoch scheint mir dieses Control nicht genau auf das Outlook Control zu passen.

Hallo Herbivore,

Das ist klar - aber Empfehlungen sind immer gut ..:)

Gruess, pro

17.03.2011 - 13:19 Uhr

Hallo,

Ich suche ein freies Outlook Alert / Popup Control?

Wo finde ich ein solches Control?

Vielen Dank für die Hilfe.

Gruss, pro

19.10.2010 - 10:37 Uhr

Hallo zusammen,

Ich suche ein gutes WCF Buch, welches u.A. folgende Themen vertieft enthält :

  • Content Based WCF Routing
  • Security (Transport - und Message)

Vielen Dank für Eure Antworten.

Gruss, pro

02.07.2010 - 08:31 Uhr

Hallo zusammen,

Vielen Dank für die interessanten Antworten.

Gruss, pro

02.07.2010 - 07:58 Uhr

Hallo

Sinn eigentlich keinen, war eine Aufgabe an einer Schule.

Danke für die Antworten.

Gruss.

01.07.2010 - 21:33 Uhr

Vielen Dank für Eure Feedback.

Nicht mit mit zwei Befehlen aus der Konsole wie cd.

Sondern etwas in der Art : c:/temp/../d(?Wie hier?)/temp

Gruss, pro

01.07.2010 - 20:55 Uhr

Hallo,

Ist vielleicht eine dumme Frage, aber wie kann ich das Laufwerk mittels einer relativer Pfadangabe wechseln?

Beispiel:

Laufwerk C:
Laufwerk D:

Ich bin Aktuell im Ordner c:\temp und möchte in den Ordner d:\test.

Wie kann ich das relativ realisieren?

Vielen Dank für Eure Antworten.

Grüsse, pro

10.03.2010 - 09:36 Uhr

Hallo zommi,

Vielen Dank für deine Antwort.

So funktionierts...:-)

Grüsse, pro

10.03.2010 - 08:28 Uhr

Hallo chrismoe,

Vielen Dank für Deine Antwort.

Mein Sachverhalt ist ein wenig anders :


List<TestClass> myList = new List<TestClass>();
TestClass tc = new TestClass();
tc.TestType =  TestType.Test3;
myList.add(tc);
tc = new TestClass();
tc.TestType = TestType.Test4;
tc = new TestClass();
tc.TestType = TestType.Test5;

//ich möchte nun nur die TestClass Objekte bekommen, die Test4 ODER Test5 als TestType haben.

//Leider gibt mir filtered 0 TestClasses zurück. - Was mache ich falsch?
List<TestClass> filtered = myList.FindAll(n => n.TestType == (TestType.Test4 | TestType.Test5));

Vielen Dank für Eure Antworten.

Grüsse, pro

09.03.2010 - 18:53 Uhr

(verwendetes Datenbanksystem): Lambda Expressions

Hallo zusammen,

Folgende Situation habe ich:

Ich habe eine generische Liste -> List<TestClass>

In dieser TestClass habe ich einen Enumerator:


    [Flags]
    [DataContract(Namespace = "urn:myNameSpace:v1")]
    public enum TestType 
    {
        [EnumMember]
        None = 0x0,

        [EnumMember]
        Test1= 0x1, 

        [EnumMember]
        Test2= 0x2, 
        
        [EnumMember]
        Test3= 0x4, 
        
        [EnumMember]
        Test4= 0x8,

        [EnumMember]
        All = 0xF
    };

Ich möchte nun in der generischen Liste mittels FindAll() nach bestimmten TestTypes suchen, die OR - verknüpft sind -> Test1 | Test2 (Inhalt des Filters).

Meine Abfrage sieht folgendermassen aus :


  List<TestClass> filtered = myList.FindAll(n => n.TestType == filter);

Leider hat die Liste filtered nach dem FindAll keine Einträge. Ist diese Abfrage mit den Flags überhaupt möglich (mittels Lambda Expressions)?

Vielen Dank für Eure Antworten.

Grüsse, pro

25.08.2009 - 08:21 Uhr

Hallo zusammen,

Ich erarbeite zur Zeit ein Konzept zur Einführung der WorkItems.

Ich finde die "standard" Verwaltung der Work Items im Visual Studio etwas dürftig. Könnt Ihr mir einige gute Zusatztools / Addins zur Verwaltung der WorkItems geben? (Suche, Hierarchierung, Bearbeitung, Verlinkung, Erweiterte Ansichten, ...)

Gegoogelt habe ich schon (und auch ein paar gute Dinge gefunden), aber ich hätte gerne Tipps aus eurem Arbeitsumfeld gehört 😃

Vielen Dank für Euer Feedback.

Gruss, pro

19.09.2008 - 08:12 Uhr

Hallo zusammen,

Bei uns hat Sourcesafe langsam ausgedient und wir sind auf der Suche nach einer Alternative. Mit der Alternative soll die Versionierung um einiges besser funktionieren (u.A. auch Build einer älteren Version, was im Sourcesafe äussert schwierig ist).

Könnt Ihr mir Alternativen aufzeigen? Welche Sourcecontrol Applikationen nutzt Ihr in den Betrieben? Was sind die Vorteile davon?

Vielen Dank für Eure Antworten.

Gruss, pro

15.08.2008 - 12:44 Uhr

Hallo serial,

Vielen Dank für Deinen hilfreichen Link.

Der Abschnitt "Webservices" im Galilio Openbook "Einstieg in ASP.NET" ist auch nicht schlecht für den Anfang.

Link zum Kapitel : http://www.galileocomputing.de/openbook/asp/asp160001.htm

14.08.2008 - 09:27 Uhr

Hallo,

Ich suche ein gutes Buch oder ein gutes Tutorial für die ASP.NET Webservice Programmierung. Könnt Ihr mir etwas gutes empfehlen?

Bin um jeden Hinweis bzw. Link dankbar.

Grüsse, pro

16.07.2008 - 14:27 Uhr

Hallo tscherno,

Ich habe heute herausgefunden wie ich die Metabase Compatibility des IIS prüfen kann. Somit brauche ich kein Tool mehr 🙂

Ich hab mir aber der, von dir vorgeschlagene, WinInstaller LE kurz angeschaut, und muss sagen, dass ich diesen u.U. das nächste Mal bei einer ähnlichen Problematik gebrauchen kann. Zudem ist es schön, dass es eine kostenlose Version gibt.

Grüsse, pro

14.07.2008 - 20:49 Uhr

Hallo zusammen,

Vielen Dank für Eure Inputs.

Leider konnte mich kein Input direkt überzeugen. Vielleicht mit dem Filemon ist etwas machbar, jedoch auch nicht genau das was ich suche...:-(

Trotzdem Danke!

Grüsse, pro

14.07.2008 - 14:22 Uhr

Hallo,

Kennt jemand ein Tool wo man in Vorher / Nachher auf dem Dateisystem machen kann und anschliessend Vergleichen?

Ich hätte gerne gewusst, welche Dateien für die Metabase Compatibilty Option des IIS7 installiert werden.

Leider habe ich im Web nichts gefunden.

Vielen Dank.

Gruss, pro

14.07.2008 - 08:22 Uhr

Hallo m0jo,

Ich denke hierzu ist der Begriff "DataBinding" treffend - > als Überblick hilft Dir vielleicht dieser Link weiter : http://msdn.microsoft.com/en-us/library/ms752347.aspx

Oder als Beispiel dieser : http://www.codeproject.com/KB/database/databindingconcepts.aspx

Grüsse, pro

04.07.2008 - 09:52 Uhr

Hallo tri,

Vielen Dank für deine Ansätze.

Ich konnte es so lösen :


myAXobj = document.parentWindow.<activex object variable>;

myAXobj.<function>(...);

Grüsse, pro

02.07.2008 - 17:44 Uhr

Hallo,

Ich habe zwei HTML - Seiten, die die gleiche Javascript Funktionsbibliothek benutzen. Auf der einen HTML - Seite instanziere ich dieses Objekt. Ist es möglich auf der anderen Seite dasselbe Objekt auch zu gebrauchen?

Vielen Dank für Eure Inputs.

Grüsse, pro

23.06.2008 - 09:46 Uhr

Hallo Scavanger,

Vielen Dank für Deine Info. Mit der Bass API lässts sich kompilieren.

Gruss, pro

22.06.2008 - 13:37 Uhr

Hallo,

Habe die Solution kurz angesehen, da bei mir die Exe nicht auf Anhieb funktionierte.

************** Ausnahmetext **************
System.BadImageFormatException: Es wurde versucht, eine Datei mit einem falschen Format zu laden. (Ausnahme von HRESULT: 0x8007000B)
bei Un4seen.Bass.Bass.BASS_GetVersion()
bei RockAntenneWebradioplayer.Main.Main_Load(Object sender, EventArgs e) in J:\RAplayer1\Main.cs:Zeile 148.
bei System.Windows.Forms.Form.OnLoad(EventArgs e)
bei RockAntenneWebradioplayer.Main.OnLoad(EventArgs e) in J:\RAplayer1\Main.cs:Zeile 505.
bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
bei System.Windows.Forms.Control.CreateControl()
bei System.Windows.Forms.Control.WmShowWindow(Message& m)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

So wie es aussieht musst Du deine Solution explizit für die x86 Prozessorarchitektur kompilieren, da sonst unter x64 Systemen bestimmte DLL's nicht geladen werden können.

Ich probierte deine Solution selbst zu kompilieren, hatte aber Build Probleme:

1 RAplayer1 15 7 C:\Users\pro\Desktop\RAplayer1\RAplayer1\Main.cs The type or namespace name 'Un4seen' could not be found (are you missing a using directive or an assembly reference?) Error
2 RAplayer1 16 7 C:\Users\pro\Desktop\RAplayer1\RAplayer1\Main.cs The type or namespace name 'Un4seen' could not be found (are you missing a using directive or an assembly reference?) Error
3 RAplayer1 17 7 C:\Users\pro\Desktop\RAplayer1\RAplayer1\Main.cs The type or namespace name 'Un4seen' could not be found (are you missing a using directive or an assembly reference?) Error
4 RAplayer1 38 17 C:\Users\pro\Desktop\RAplayer1\RAplayer1\Main.cs The type or namespace name 'DOWNLOADPROC' could not be found (are you missing a using directive or an assembly reference?) Error
5 RAplayer1 39 17 C:\Users\pro\Desktop\RAplayer1\RAplayer1\Main.cs The type or namespace name 'RECORDPROC' could not be found (are you missing a using directive or an assembly reference?) Error

Kannst Du dein Projekt mal x86 kompilieren? Das Projekt würde mich interessieren.

Gruss, pro

09.06.2008 - 08:41 Uhr

Hallo kleines_eichhoernchen,

Vielen Dank für Deine Antwort.

Ja, ich denke das mit der eigenen AppDomain würde gehen, aus meiner Sicht etwas umständlich?!

Gibt es keine Methoden die von Seiten log4net angeboten werden um die Instanz richtig zu disposen?

Gruss, pro

09.06.2008 - 07:46 Uhr

Hallo,

Hat sich jemand von Euch schon mit dem Entladen des Log4Net Loggers beschäftigt?

Ich benutze meinen Log4Net Logger in einem Windows Vista Sidebar Gadget. Beim Entladen eines Objektes wird der Log4Net Logger (welcher statisch benutzt wird) nicht richtig entladen.

Das Objekt wird richtig disposed. Im Speicher liegt einfach noch die log4net Referenz.

Vielen Dank für die Informationen.

Gruss, pro

29.04.2008 - 11:48 Uhr

Ja, dies ist möglich.

Jedoch kann man das Assemblie, welches die anderen Assemblies über eine eigene AppDomain lädt, nicht korrekt entladen, da es immer noch durch den Sidebarprozess gelockt wird.

Gruss, pro

29.04.2008 - 09:29 Uhr

Hallo FZelle,

Vielen Dank für Deine Antwort.

Ich nehme Silverlight nicht, da ich da kein Know - How habe...

Kann man nicht irgendwie über die Kernel32 bzw. User32 gehen?

Gruss, pro

29.04.2008 - 09:12 Uhr

Hallo,

Ich möchte euch mein Problem kurz schildern.

Ich baue momentan an einem Vista Sidebar Gadget. Dieses Projekt besteht u.A. auch aus .NET Assemblies. Ich lade diese Assemblies über ActiveX in den Sidebarprozess hinein, damit ich diese über Javascript nutzen kann.

Nach dem Instanzieren über ActiveX sind die Assemblies in der Sidebar geladen. Nach dem Schliessen eines Gadgets möchte ich diese Assemblies komplett entladen (inkl. der gesamten .NET Runtime, die auch mit geladen wird (mscoree, mscorwks, System.dll...etc.).

Ist dies irgendwie möglich?

Ich habe bei allen .NET Komponenten das IDisposable Interface implementiert und auch alle Klassen richtig entladen (Members auf null gesetzt, Eventhandler ausgehängt, GC.SupressFinalize...).

Könnt Ihr mir einige Tipps für das Lösen dieses Problems geben?

Vielen Dank für Eure Hilfe.

Gruss, pro

26.04.2008 - 01:43 Uhr

Hi,

ich denke das ist nicht zu schwierig um es selbst du schreiben.
Such dir bei Codeproject oder anderswo eine schöne Progressbar aus und bau ein Theromometer drumherum.

Gruß

Chris

Hallo John Sanson,

Ich glaube nicht, dass dies schnell möglich ist selber zu schreiben, da doch ein solches "Fiebermesser" Control sehr aufwändig sein könnte (und nicht nur aus einer Progressbar bestehen würde...) - aber trotzdem danke für deine Antwort 🙂

Hi!

Für VB kennich eins, k.A., ob das sehr gut ist. Musste inne AVB-Upload-Suche "thermometer" eingeben.
Kannste dir vllt. mit CodeConverter übersetzen, und nachbessern.

Hallo ErfinderDesRades,

Vielen Dank für den Link. Das Thermometer ist in VB.NET geschrieben - also wunderbar für mein Projekt - Dank.

Grüsse, pro

25.04.2008 - 20:11 Uhr

Hallo zusammen,

Ich bin auf der Suche nach einem Fiebermesser Control, kennt jemand welches? Mit Google oder z.B. auf Codeproject habe ich nichts gefunden. Ich möchte ein Opensource Control.

Vielen Dank für Eure Inputs.

Grüsse, pro

21.04.2008 - 08:33 Uhr

Hallo,

Ich würde Dir die Gadget.Interop von Codeproject.com empfehlen, bei Fragen kannst Du Dich an mich wenden.

http://www.codeproject.com/KB/gadgets/GadgetInterop.aspx

Gruss, pro

30.03.2008 - 17:06 Uhr

Hallo,

Kennt jemand eine Möglichkeit ein .NET Assemblie im GAC zu registrieren über Javascript? z.B. über Windows Scripting.

Vielen Dank.

Gruss, pro

14.03.2008 - 20:12 Uhr

hallo djCalypso,

Warum brauchst Du nicht die offizielle Schnittstelle für den Live Messenger von Microsoft? Würde die Komplexität etwas nehmen.

Nur so als Tipp.

Beispiellink : http://www.codeproject.com/KB/cs/WindowsLiveMessengerAddin.aspx

Gruss, PRO

31.01.2008 - 08:15 Uhr

Hallo,

Regmon von Sysinternals scheint auf dein Problem zu passen.

Auf der Microsoft Seite ist kein Download mehr verfügbar. Bei Drittanbietern aber schon.

Siehe : http://www.zdnet.de/downloads/prg/d/k/de00DK-wc.html

Gruss, Pro

25.01.2008 - 14:09 Uhr

Hallo,

Wenn ich rechtsklick auf ein Projekt in einer Solution mache / Hinzufügen / Klasse sind bei mir alle Elemente verschwunden? Ich kann weder eine Klasse, noch ein Interface hinzufügen. Diese Elemente sind bei mir im Dialog verschwunden!! Wie kann ich diese wieder in diesen "Hinzufügen" - Dialog bringen? Ich habe mein VS05 bereits mit dem Setup probiert zu "reparieren", jedoch funktionierte dies nicht 😦 - was mache ich falsch?

Vielen Dank für Eure Hilfe.

Gruss, pro

25.01.2008 - 08:44 Uhr

Vielen Dank für Eure Antworten!

Gruss, pro

24.01.2008 - 19:37 Uhr

Ja, leider steht nur MPEG 1 😦 laut Wikipedia ist das max. 1.5 Mbit /s .....siehe http://de.wikipedia.org/wiki/MPEG-1

hmm...so über den Daumen?

24.01.2008 - 19:23 Uhr

Hallo,

Ich möchte gerne wissen wie lange ich maximal mit meiner Handykamera aufnehmen kann.

Folgende Daten :

Auflösung 160 x 120 Pixel
Format : MPEG 1
Speicherkapazität : 512MB

Ich bin auf 45.5 Minuten gekommen.

Aber bin mir nicht sicher - könnt Ihr mir helfen?

Vielen Dank.

Grüsse, pro

26.12.2007 - 14:58 Uhr

Was hat das mit Szenennews zutun? 🙂

19.12.2007 - 17:05 Uhr

Hallo B3nj,

Unter Windows Vista?

Falls ja, kannst Du die Dateien mit einer Manifest Datei signieren.

Grüsse, pro

18.12.2007 - 21:58 Uhr

Hallo Jam,

Dein Parsen find ich komisch.

Du kannst ja den DataAdapter benützen. An diesen kannst Du dein Select / Insert / Delete / Update Script hängen.

Die Resultate des DataAdapters kannst Du an ein Dataset bzw. ein Datagrid hängen.

So sind die Begriffe DataAdapter, DataSet und DataGrid vielleicht mal da zum googeln 😉

Grüsse, pro

18.12.2007 - 21:55 Uhr

Hallo Pegasus2003,

Das kannst Du über die statischen Methoden von der Process Klasse.

Beispiel :

http://www.java2s.com/Code/CSharp/Development-Class/ListProcess.htm

Einfach System.Diagnostics einbinden.

Grüsse, pro

18.12.2007 - 21:41 Uhr

Kennt Ihr www.tafiti.com?

Finde diese Suchmaschine vielversprechend und schnell. Vorallem die Baumergebnisse sind sehr speziell, aber auch einfallsreich.

Möchte gerne eure Meinungen darüber hören 🙂

Grüsse, pro

18.12.2007 - 20:31 Uhr

Einführung:

Wiedermal darf ich ein Entwurfsmuster kennenlernen. Diesmal ist es das Decorator Pattern. Um es vorweg zu nehmen, bei der folgenden kleinen “Vorstellung” des Decoratorpattern, wird das Entwurfsmuster nicht in Kombination mit dem Factory Pattern aufgezeigt. Es geht einzig um das Decorator Pattern.

Das Decoratorpattern kann man in einem UML Klassendiagramm so aufzeichnen :

Defintion:

Das Decoratormuster fügt einem Objekt dynamisch zusätzliche Verantwortlichkeiten hinzu. Dekorierer bieten eine flexible Alternative zur Ableitung von Unterklassen zum Zweck der Erweiterung der Funktionalität.

Zusammenfassung:

Die Definition sagt nichts anderes aus, als dass die oben aufgezeichneten Komponenten dynamisch erweitert (oder eben dekoriert) werden können. Dynamisch bedeutet hier, dass man die Funktionalitäten zur Laufzeit beliebig hinzufügen kann.

Beispiel - Ein Menü Dekorierer 🙂

Das Beispiel hat nichts mit dem Programmieralltag zu tun. Jedoch eigenen sich Menü’s extrem zum dekorieren.

Es gibt in einem Restaurant zwei Menues (Menü 1 und Menu 2). Ein Kunde kann aber diese Menues beliebig erweitern wie er will. D.h. er kann zu einem Menu noch ein Hamburger, Pommes Frites oder Nuggets bestellen. Dies bedeutet, dass er die beiden Menues um die Zutaten beliebig erweitern (oder eben “dekorieren” ) kann.

Das Klassendiagramm dieser Menues sieht dann auf das Decoratormuster umgesetzt so aus :

Implementierung (auf Restaurant - Beispiel bezogen)

Abstrakte Komponenten Klasse (Menu) :


/// <summary>
/// Abstrakte Komponente (Menu)
/// Alle Komponenten müssen von dieser "Hauptkomponente"
///erben, damit sie dekoriert werden können.
/// </summary>
public abstract class Menu
{
/// <summary>
/// Feld, welches durch das ganze Decoratormuster
///hindurchgezogen wird.
/// In diesem Fall Description. Wird in jeder
/// Komponente bzw. Dekorierer
/// anders sein
/// </summary>
protected string description = "menu";

/// <summary>
/// Property, welche die Unterklassen benötigen,
/// um auf die Oberklasse / Superklasse /
///Baseklasse zugreifen zu können
/// </summary>
public abstract string Description { get; }

/// <summary>
/// Zu überschreibende Methode Preis, welche
/// durch die Komponenten statisch, bzw. durch die Dekorierer
/// dynamisch gesetzt werden
/// </summary>
/// <returns>Preis</returns>
public abstract double Preis();
}


Eine konkrete Komponente (Menu_1):


/// <summary>
/// Komponente 1
/// </summary>
public class Menu_1 : Menu
{
/// <summary>
/// Konstruktor der Komponente
/// </summary>
public Menu_1()
{
this.description = "Menu_1";
}

/// <summary>
/// Überschriebene Methode, der
///Abstrakten- bzw. Hauptkomponente
/// (statischer Preis der Komponente, ohni "Dekorierungen";)
/// </summary>
/// <returns>Preis</returns>
public override double Preis()
{
return 11.00;
}

/// <summary>
/// Überschriebens Description Property
/// </summary>
public override string Description
{
get { return this.description; }
}


Abstrakter Dekorierer (Erbt von Menu, da das dekorierte Objekt schlussendlich auch wieder eine Komponente ist)


/// <summary>
/// Hauptdekorierer
/// (Alle konkreten Dekorierer werden
///von diesem Dekorierer ableiten)
/// </summary>
public abstract class MenuDecorator : Menu
{
/// <summary>
/// Property oder Methode, welche Dekoriert werden soll
/// </summary>
public override string Description {
get { return this.description; }
}

Konkreter Dekorierer (in diesem Fall die Hamburger, welche zum Menu gehören)


/// <summary>
/// Dekorierer, welcher Hamburger zur Komponente hinzufügt
/// </summary>
public class HamburgerDecorator : MenuDecorator
{
/// <summary>
/// Objekt, welches dekoriert werden soll
/// </summary>
private Menu menu;

/// <summary>
/// Konstrukter des Dekorierers
/// </summary>
public HamburgerDecorator(Menu menu)
{
this.menu = menu;
}

/// <summary>
/// Beschreibung, welche durch den Dekorierer
/// dekoriert wird
/// (zur Menu Description kommt noch der dekorierte Text)
/// </summary>
public override string Description
{
get { return menu.Description + " + Hamburger"; }
}

/// <summary>
/// Dekorierter Preis
/// (da das Objekt um "Hamburger" erweitert wurde,
/// muss natürlich auch der Preis erhöht werden)
/// </summary>
/// <returns>Preis</returns>
public override double Preis()
{
return 2.50 + menu.Preis();
}
}

Verwendung der Dekorierer


/// <summary>
/// Main - Methode
/// </summary>
///
static void Main(string[] args)
{
//Ich möchte ein Menu_1 ohne weitere Zutaten ( 11.00 )
Menu menu = new Menu_1();
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine("Ich möchte ein Menu_1 ohne weitere Zutaten"+
";( 11.00 )...";);
Console.WriteLine("Beschreibung : "
+ menu.Description + " / Preis : " + menu.Preis());
Console.WriteLine();

Console.ForegroundColor = ConsoleColor.Yellow;

//Ich möchte nun ein Menu_1 mit Hamburger
//(Achtung : menu ist bereits ein Menu_1 Objekt!
//Darum keine Menu_1 Instanzierung notwendig!)

//-- Hamburger hinzufügen ( + 2.50 )
menu = new HamburgerDecorator(menu);

Console.WriteLine("Ich möchte zu meinem" +
"bestellten Menu_1 (11.00) ein zusätzlicher" +
" Hamburger (2.50)..";);
Console.WriteLine("Beschreibung : "
+ menu.Description + " / Preis : " + menu.Preis());
Console.WriteLine();

Console.ForegroundColor = ConsoleColor.Cyan;

//Ich möchte nun ein Menu_1 mit
//zusätzlichem Hamburger und Chicken Nuggets
//(Achtung : menu ist bereits ein Menu_1 mit Hamburger!)

//--Hamburger hinzufügen ( + 2.50 )
menu = new HamburgerDecorator(menu);

//--Nuggets hinzufügen ( + 1.50 )
menu = new NuggetsDecorator(menu);

Console.WriteLine("Ich möchte nun zu meinem" +
" Menu_1 einen zusätzlichen Hamburger (2.50) und" +
"Chicken Nuggets (1.50)...";);
Console.WriteLine("Beschreibung : "
+ menu.Description + " / Preis : " + menu.Preis());
Console.WriteLine();

//Ich möchte nun ein Menu_2 mit Pommes und Nuggets
//menu wird durch die Neuinstanzierung überschrieben!!

//--Menu_2 erstellen (9.00)
menu = new Menu_2();

//--Pommes hinzufügen ( + 3.00)
menu = new PommesDecorator(menu);

//--Nuggets hinzufügen ( + 1.50)
menu = new NuggetsDecorator(menu);

Console.ForegroundColor = ConsoleColor.Yellow;

Console.WriteLine("Ich möchte nun ein neues " +
"Menu_2 (9.00) mit Pommes (3.00) und Nuggets (1.50)...";);
Console.WriteLine("Beschreibung : "
+ menu.Description + " / Preis : " + menu.Preis());

Console.WriteLine();

Console.WriteLine("Press <enter> to exit...";);</enter>

Console.ReadLine();

}

Das Schlussresultat der Beispielverwendung der Decorator sieht dann so aus:

Das Projekt als Download ist angehängt (=> VS05 Solution).

Weiterführende Links:

> http://en.wikipedia.org/wiki/Decorator_pattern
> http://exciton.cs.rice.edu/JavaResources/DesignPatterns/DecoratorPattern.htm
> http://www.onjava.com/pub/a/onjava/2003/02/05/decorator.html
> http://www.informit.com/articles/article.aspx?p=31350&seqNum=1
> http://www.codeproject.com/info/search.aspx?artkw=decorator&sbo=kw

Schlagwörter: Decorator, Pattern, Entwurfsmuster

17.12.2007 - 09:59 Uhr

Hrm, ich würde unter der Windows API über Send Messages nachschauen. Dann unter den Windowsnachrichten den PArameter OnKeyDown, ich denke entweder kann man dann einen intervall als lParam übergeben oder Windows erwartet irgendwann ein KeyUp.

Das tönt nach einer besseren Lösung als von mir vorgeschlagen 🙂. Deshalb würd ich diesen Weg probieren.

Grüsse, pro

17.12.2007 - 09:54 Uhr

Hallo Atomroflman,

Du kannst ja eine Schleife um die SendKeys.Send - Methode machen und wenn die Zeit um ist, die Schleife verlassen.

Gruss, pro

16.12.2007 - 19:58 Uhr

Hallo,

Du musst nicht für jeden Butten einen eigenen Eventhandler haben. Da der Button_Click Event immer den gleichen Eventhandler braucht, musst Du nur einer erstellen. D.h. in diesem Eventhandler kannst Du den sender auswerten und so die Logik für das Klicken des jeweiligen Buttons umsetzen.

Grüsse, pro

16.12.2007 - 15:24 Uhr

Hallo,

Vielen Dank für Deine Antwort.

Das Problem lag in der Build Konfiguration. Da ich die Build Configuration von 'Any Platforms' auf 'x86' gestellt habe, wurden die Buildeinstellungen so verändert wie oben beschrieben. Man muss einfach für alle Projekte in der Solution das 'Build - Flag' setzen, welches durch die obengenannte Umstellung falsch gesetzt wird. (evtl. Bug im VS08?)

Grüsse, pro

16.12.2007 - 15:21 Uhr

Hallo

Meinst Du die Ordnereinstellungen unter Tools / Options / Projects and Solutions /Visual Studio projects location?

Grüsse, pro

15.12.2007 - 14:02 Uhr

Hallo,

Ich hätte gerne gewusst, was mit meinem Studio 08 los ist.

Und zwar wenn ich einem Projekt ein neues Form hinzufüge, und dieses bearbeite, wird das Bearbeitete (d.h. das aktuallisierte Form) nicht angezeigt (nur das Form ohne Bearbeitungen) nach dem Starten mit [F5]. Hängt dies irgendwie mit der Virtualisierung unter Vista zusammen? Ich habe auch schon probiert zu debuggen, aber leider kommt dieser z.B. gar nicht in die InitializeComponents() - Methode. Erst wenn ich das Projekt rebuilde, wird das Form angezeigt.

Was mache ich falsch? Gibt es eine neue Einstellung / Option im VS08=

Vielen Dank.

Grüsse, pro