Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von KainPlan
Thema: [gelöst] Docking reihenfolge ändern
Am im Forum: GUI: Windows-Forms

*schnurrRRrr* Es funktioniert! Super danke! Ist es auch möglich den Z-Index expilzit zu ändern? Wäre dann doch schon von vorteil.

Thema: [gelöst] Docking reihenfolge ändern
Am im Forum: GUI: Windows-Forms

Hallo ich habe ein Control, innerhalb dieses Controls sind mehrere andere die alle Links gedockt sind. Nun möchte ich vom ersten (auf dem Bild rote) Control den Index ändern. Ich möchte das dieses Control an erste stelle rückt und wieder links gedockt ist, wie mache ich das?

Thema: Gleiches Objekt in 2 Methoden verwenden
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Stichwort globale Variablen bzw. Member Variablen. am besten mal ein zwei Bücher übers Programmieren lesen...

EDIT:

Das Buch "C# von Kopf bis Fuß" kann ich dir nur wärmstens empfehlen.

Thema: Passwortstärke in bit
Am im Forum: Rund um die Programmierung

Oh, achso sorry hab ich glatt 2mal überlesen.

Thema: Passwortstärke in bit
Am im Forum: Rund um die Programmierung

Ist das nicht totaler quatsch? Die stärke des Passwortes ist doch nur logisch erfassbar (Ist das passwort ein reguläres wort? Ein datum? Hat das passwort eine Verbindung zum nutzernamen... oder oder oder...) Die stärke anhand von länge und möglichen Zeichen zu berechen ist doch total sinnfrei, oder?

Thema: Daten als Rückgabewert liefern
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich weis nicht ob es das ist was du brauchst, denke aber schon. Um zugriff auf Dictionary zu bekommen einfach "using System.Collections.Generic" deklarieren.


//...
Dictionary<string, object> res = new Dictionary<string, object>();
//...
res.Add(key, value);
/...
return res;

Thema: GUI beschleunigen
Am im Forum: Grafik und Sound

Zitat von Femaref
Ich denke, GDI+ wird hier einfach an die Grenzen stoßen, wenn es tatsächlich alles neugezeichnet werden muss. Da wäre WPF wohl angemessener...

Stößt definitive an die Grenzen ^^. Könntest aber auch mit XNA arbeiten... ist auch ziemlich einfach!

Thema: WM_DRAWCLIPBOARD 1mal zuviel?
Am im Forum: GUI: Windows-Forms

Hm, Visual Basic :/. Werd das mal morgen auf der Arbeit entschlüsseln :D. Danke für deinen Lösungsansatz weitere wären trozdem erwünscht vorallem welche die sich schon bewährt haben!

Thema: WM_DRAWCLIPBOARD 1mal zuviel?
Am im Forum: GUI: Windows-Forms

Die SendMessage(_nextCBWatcher, m.Msg, m.WParam, m.LParam) Funktion reicht das event an den nächsten registrierten ClipboardWatcher in der Kette weiter (siehe MSDN). Mein Watcher ist definitiv nur 1 mal registriert ansonsten würden ja alle events 2mal ankommen und nicht nur dann wenn ich daten ins Clipboard schreibe...

ChangeClipboardChain(_ownerWnd, _nextCBWatcher) entfernt meine Registrierung in der Kette.

OnClipboardChange() ist mein Event das getriggert wird...

Also kanns daran nicht liegen...

Thema: WM_DRAWCLIPBOARD 1mal zuviel?
Am im Forum: GUI: Windows-Forms

Hallo ich hab meine Anwendung als "ClipboardWatcher" registriert. Wenn ich jetzt aber über die Funktion SetData() selber eine z.B. FileDroplist setze dann wird die WM_DRAWCLIPBOARD Message danach 2mal gesendet! Hat da jemand nen grund für?

        

        public void MessageProc(ref Message m) 
        {
            if (m.Msg == WM_CHANGECBCHAIN)
            {
                if (m.WParam == _nextCBWatcher)
                {
                    _nextCBWatcher = m.LParam;
                }
                else
                {
                    SendMessage(_nextCBWatcher, m.Msg, m.WParam, m.LParam);
                }
            }
            else if (m.Msg == WM_DRAWCLIPBOARD)
            {
                OnClipboardChange();
            }
            else if (m.Msg == WM_CLOSE)
            {
                ChangeClipboardChain(_ownerWnd, _nextCBWatcher);
            }
        }



        public static void SetData(CBDataType type, object data)
        {
            HoldOnce = true;

            object dat;
            switch (type)
            {
                case CBDataType.Files:
                    dat = data as StringCollection;
                    if (dat == null) throw new Exception("Invalid data.");
                    Clipboard.SetFileDropList((StringCollection)dat);
                    break;
                case CBDataType.Audio:
                    dat = data as Stream;
                    if (dat == null) throw new Exception("Invalid data.");
                    Clipboard.SetAudio((Stream)dat);
                    break;
                case CBDataType.Image:
                    dat = data as Image;
                    if (dat == null) throw new Exception("Invalid data.");
                    Clipboard.SetImage((Image)dat);
                    break;
                case CBDataType.Text:
                    dat = data as string;
                    if (dat == null) throw new Exception("Invalid data.");
                    Clipboard.SetText((string)dat);
                    break;
                default: throw new Exception("Unsupported Clipboardformat.");
            }
        }

Thema: Kommunikation zwichen Anwendung mal anders =)
Am im Forum: Projekte

xD Igendwie trozdem genial. Wie bist du denn auf die Idee gekommen??

Thema: [gelöst] Problem beim Abspielen einer *. wav Sounddatei
Am im Forum: Grafik und Sound

Ich glaub die Klasse SoundPlayer hat eine funktion namens Load() oder so ähnlich schau dir die doch einfahc mal an ;)

Thema: Flackern trotz DoubleBuffered = true
Am im Forum: Grafik und Sound

Die frage ist wie lang deine Schlange denn ist. umso länger der Zeichenvorgang in deiner foreach-Schleife blockiert wird umso höher wird die Verzögerung.

Auch frage ich mich was die funktion g.DrawImageUnscaled(BildDrehen(Properties.Resources.kopf, körper.Richtung), körper.Ort); macht. Sollte diese funktion tatsächlich ein bitmap drehen würde ich dir empfehlen alle möglichen Richtungen vorher zu cachen! Du kannst nicht in einem Paintereigniss solch "komplexe" Aufgaben bewältigen!

Thema: Euer Desktop...
Am im Forum: Smalltalk

Das ist mein Desktop auf der Arbeit :)

Thema: Coding Styles Horror
Am im Forum: Smalltalk

Zitat von rastalt
Zitat von KainPlan
Das einzige was ich nicht verstehe ist was an ++i schlimm seien soll? solange das wärend einer operation benuzt wird is doch alle okay?

An ++i ist erstmal gar nichts schlimm. Allerdings ist die Kombination i = ++i ziemlich überflüssig, da man statt dessen auch einfach i++ schreiben kann.

achso xD na dann habi nix gesagt.. oh man

Thema: externe DLL mit Bitmaps
Am im Forum: Grafik und Sound

[StructLayout(LayoutKind.Sequential)] 
private struct PixelInformation
        {
            public Int32....

Mit [StructLayout(LayoutKind.Sequential)] legst du das Layout (Anordnung) deiner Member in deinem Struct fest. Es kann sein (so hab ich das jedenfalls interpretiert) das die Member nicht immer so im speicher sind wie "niedergeschrieben".

[DllImport("blubb")]
private static extern Int32 CompareTwoBitmaps(Int32 Width, 
[MarshalAs(UnmanagedType.LPArray)]
ref PixelInformation[] changes);

Schau mal bei Marshallen von Arrays vorbei.

Thema: Coderätsel: Was macht dieses Programm?
Am im Forum: Smalltalk

mich ganz konfus -.-

Thema: Coding Styles Horror
Am im Forum: Smalltalk

Was kennt ihr denn alles für Leute das ihr an solch exotischen Code kommt? Einige von den Urhebern sollten doch besser Baumwollpflücker werden xDD

Das einzige was ich nicht verstehe ist was an ++i schlimm seien soll? solange das wärend einer operation benuzt wird is doch alle okay?

Thema: externe DLL mit Bitmaps
Am im Forum: Grafik und Sound

Zitat von S.R.


        private struct PixelInformation
        {
            public Int32 x;
            public Int32 y;
            public Byte Red;
            public Byte Green;
            public Byte Blue;
        }

Wie siehts denn mit dem

[StructLayout(LayoutKind.Sequential)]

aus? Mit der Attributklasse kannst du das physikalische Layout der Datenfelder deiner Struktur steuern.

Thema: Notizblock - Version 2.0
Am im Forum: Projekte

Deine Docking funktionen für den Desktop ignorieren die Y Position der WorkingArea. Scheinbar setzt du die Koordinate einfach auf 0?

Thema: XMLReader Validation via DTD fehlerhaft?
Am im Forum: Datentechnologien

Echt niemand eine Ahnung?

Thema: XMLReader Validation via DTD fehlerhaft?
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: XML

Hallo ich hab ein kleines Programm geschrieben das XML Dateien via DTD validieren soll. Nun bekomme ich beim Validieren einer bestimmten Datei einen Validierungsfehler "Das Element 'product' hat ein ungültiges untergeordnetes Element 'illustrations'. Erwartet wurde die Liste möglicher Elemente: 'title .....'". Soweit so gut, aber nach gründlicher Prüfung ist mir aufgefallen das in der DTD ein Element illustrations für das Element product beschrieben ist, auch auf dieser Ebene. Also habe ich mich nach anderen DTD Validatoren umgeschaut und siehe da diese werfen nicht diesen Fehler!

Vermurkst MS da wieder was? Weiß da jemand näheres?

EDIT: *hust* bin iwie ein bisschen neben der spur heute ^^


    class XmlDTDValidator
    {
        private XmlReader _xmlReader;
        private XmlValidatingReader _xmlValidatingReader;
        private BackgroundWorker _bwValidation;
        private bool _validated;

        /// <summary>
        /// [GET] Path to the XML File.
        /// </summary>
        public string XmlPath { get; private set; }
        /// <summary>
        /// [GET] Status of being Validated.
        /// </summary>
        public bool Validated { get; set; }

        /// <summary>
        /// Create a new instance of this XmlDTDValidator.
        /// </summary>
        /// <param name="xmlPath">Path to the XML-File to validate.</param>
        public XmlDTDValidator(string xmlPath)
        {
            XmlPath = xmlPath;

            _xmlReader = new XmlTextReader(XmlPath);
            _xmlValidatingReader = new XmlValidatingReader(_xmlReader);
            _bwValidation = new BackgroundWorker();
            _bwValidation.DoWork += new DoWorkEventHandler(ValidationWorker);

            _xmlValidatingReader.ValidationType = ValidationType.DTD;
            _xmlValidatingReader.ValidationEventHandler += new ValidationEventHandler(ValidationEventHandler);
        }

        private void ValidationWorker(object sender, DoWorkEventArgs e)
        {
            // Do the Validation.
            _validated = true;
            Validated = false;

            while (!e.Cancel && _xmlValidatingReader.Read())
            {
                // Redirect to the Process Method
                OnNodeProcess(_xmlValidatingReader);
            }
            Validated = _validated;

            OnDone();

            _xmlValidatingReader.Close();
        }

        private void ValidationEventHandler(object sender, ValidationEventArgs e)
        {
            // Redirect to the Process Method
            OnValidation(_xmlValidatingReader, e);            
        }
        /// <summary>
        /// Starts the Validationprocess.
        /// </summary>
        public void Validate()
        {
            _bwValidation.RunWorkerAsync();
        }
        /// <summary>
        /// Delegate for the NodeProcess event.
        /// </summary>
        /// <param name="vr"></param>
        public delegate void NodeProcessEventHandler(XmlValidatingReader vr);
        /// <summary>
        /// Occurs whenever a element is read by the Reader.
        /// </summary>
        public event NodeProcessEventHandler NodeProcess;
        /// <summary>
        /// Occurs whenever a element is read by the Reader.
        /// </summary>
        /// <param name="vr">The Reader.</param>
        protected virtual void OnNodeProcess(XmlValidatingReader vr)
        {
            if (NodeProcess != null)
            {
                Control target = NodeProcess.Target as Control;
                if (target != null && target.InvokeRequired)
                    target.Invoke(NodeProcess, vr);
                else
                    NodeProcess(vr);
            }
        }
        /// <summary>
        /// Occurs whenever the Validation event raise.
        /// </summary>
        public event ValidationEventHandler Validation;
        /// <summary>
        /// Occurs whenever the Validation event raise.
        /// </summary>
        /// <param name="vr">The Reader.</param>
        /// <param name="e">The Arguments.</param>
        protected virtual void OnValidation(XmlValidatingReader vr, ValidationEventArgs e)
        {
            _validated = false;

            if (Validation != null)
            {
                Control target = Validation.Target as Control;
                if (target != null && target.InvokeRequired)
                    target.Invoke(Validation, vr as object, e);
                else
                    Validation(vr as object, e);
            }
        }
        /// <summary>
        /// Occurs whenever the Validationprocess is done.
        /// </summary>
        public event EventHandler Done;
        /// <summary>
        /// Is called whenever the Validationprocess is done.
        /// </summary>
        protected virtual void OnDone()
        {
            if (Done != null)
            {
                Control target = Done.Target as Control;
                if (target != null && target.InvokeRequired)
                    target.Invoke(Done, this, new EventArgs());
                else
                    Done(this, new EventArgs());
            }
        }

Thema: Starfield-Flyby-Animation
Am im Forum: .NET-Komponenten und C#-Snippets

Klar mach ich hatte in letzter Zeit etwas weniger von dieser.

Thema: Flackern bei "Darstellung von windowseigenen Controls ändern"
Am im Forum: Grafik und Sound

Schau mal nach ob du nicht auf diese Property's von deiner zeichenroutine aus zugreifst...

Thema: Google Weather API
Am im Forum: .NET-Komponenten und C#-Snippets

Hm, ich seh da dann irgendwie nicht denn sinn der Klasse. Wenn man die Werte ja schon hat braucht man die Klasse ja nicht mehr.

Thema: Google Weather API
Am im Forum: .NET-Komponenten und C#-Snippets

Hallo Hobofan!

In wie fern meinst du das mit der direktabfrage? Soll das dokument direkt übergeben werden können?

Thema: Google Weather API
Am im Forum: .NET-Komponenten und C#-Snippets

Beschreibung:

Eine Klasse um Daten aus einer abfrage der Google Weather API zu verarbeiten. Besizt die Möglichkeit die Bilddaten in einem cache zu speichern.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.IO;
using System.Xml;
using System.Net;

namespace Weather
{
    /// <summary>
    /// Data for the current condition
    /// </summary>
    public class CurrentCondition
    {
        public string Condition { get; set; }
        public string IconLocation { get; set; }
        public Image Icon { get; set; }
        public string Humidity { get; set; }
        public string WindCondition { get; set; }
        public int TempF { get; set; }
        public int TempC { get; set; }

        public object Tag { get; set; }
    }
    /// <summary>
    /// Data for a forecast.
    /// </summary>
    public class ForecastCondition
    {
        public string Condition { get; set; }
        public string DayOfWeek { get; set; }
        public string IconLocation { get; set; }
        public Image Icon { get; set; }
        public int TempHigh { get; set; }
        public int TempLow { get; set; }

        public object Tag { get; set; }
    }
    /// <summary>
    /// Set of weather data.
    /// </summary>
    public class WeatherDataSet
    {
        /// <summary>
        /// The city where you want to request the weather for.
        /// </summary>
        public string City { get; set; }
        /// <summary>
        /// Date of request.
        /// </summary>
        public DateTime Request { get; set; }
        /// <summary>
        /// The current conditions.
        /// </summary>
        public CurrentCondition CurrentCondition { get; set; }
        /// <summary>
        /// The forecast conditions.
        /// </summary>
        public List<ForecastCondition> ForecastConditions { get; set; }
    }
    /// <summary>
    /// For use with google xml api reply version 1.
    /// </summary>
    public class Weather
    {
        #region Constructors
        /// <summary>
        /// Create a new instance to request the weather from google.
        /// </summary>
        /// <param name="city">The city where you want to request the weather for.</param>
        /// <param name="cacheFolder">[Optional string.Empty] The folder where you want to cache the images.</param>
        public Weather(string city, string cacheFolder) 
        {
            WeatherData = new WeatherDataSet();
            WeatherData.Request = DateTime.MinValue;
            WeatherData.CurrentCondition = new CurrentCondition();
            WeatherData.ForecastConditions = new List<ForecastCondition>();

            CacheFolder = cacheFolder;
            RequestUrl = "http://www.google.com/ig/api?weather=";
            Culture = System.Globalization.CultureInfo.CurrentCulture.Name;
            City = city;
        }
        #endregion

        #region Public
        /// <summary>
        /// Set of data where the weatherinformations are stored.
        /// </summary>
        public WeatherDataSet WeatherData { get; set; }
        /// <summary>
        /// [Optional string.Empty] The folder where you want to cache the images.
        /// </summary>
        public string CacheFolder { get; private set; }
        /// <summary>
        /// Culture for witch to get the weather. If the culture is not availible en-us is used.
        /// </summary>
        public string Culture { get; set; }
        /// <summary>
        /// The google weather api url.
        /// </summary>
        public string RequestUrl { get; set; }
        /// <summary>
        /// The city where you want to request the weather for.
        /// </summary>
        public string City { get; set; }
        /// <summary>
        /// Load's the weather syncron.
        /// </summary>
        /// <returns> true if loaded. </returns>
        public bool LoadWeather()
        {
            return _getWeather();
        }
        /// <summary>
        /// Load's the weather syncron.
        /// </summary>
        /// <param name="City"> The city where you want to request the weather for. </param>
        /// <returns> true if loaded. </returns>
        public bool LoadWeather(string City)
        {
            this.City = City;
            return _getWeather();
        }
        #endregion

        #region Privates
        private bool _getWeather()
        {
            string url;
            string cultureHeader;
            HttpWebResponse webResponse;
            Stream webStream;
            StreamReader webStreamReader;
            XmlDocument xmlWeather;
            HttpWebRequest webRequest;
            try
            {
                url = Uri.EscapeUriString(this.RequestUrl + this.City);
                cultureHeader = string.Format("Accept-Language: {0}, en-us", this.Culture);

                webRequest = (HttpWebRequest)HttpWebRequest.Create(url);
                webRequest.ReadWriteTimeout = 1000 * 60;
                webRequest.Headers.Add(cultureHeader);

                webResponse = (HttpWebResponse)webRequest.GetResponse();
                webStream = webResponse.GetResponseStream();
                webStreamReader = new StreamReader(webStream, Encoding.Default);

                xmlWeather = new XmlDocument();
                xmlWeather.LoadXml(webStreamReader.ReadToEnd());
            }
            catch { return false; }

            if (!_getCurrentCondition(xmlWeather))
            {
                //TODO: Maybe a new version of google weather api is out...
                return false;
            }
            if (!_getForecasts(xmlWeather))
            {
                //TODO: Maybe a new version of google weather api is out...
                return false;
            }

            WeatherData.Request = DateTime.Now;
            WeatherData.City = this.City;

            return true;
        }
        private bool _getCurrentCondition(XmlDocument doc)
        {
            try
            {
                XmlNode cnode = doc["xml_api_reply"]["weather"]["current_conditions"];
                WeatherData.CurrentCondition.Condition = cnode["condition"].Attributes["data"].Value;
                WeatherData.CurrentCondition.Humidity = cnode["humidity"].Attributes["data"].Value;
                WeatherData.CurrentCondition.TempC = int.Parse(cnode["temp_c"].Attributes["data"].Value);
                WeatherData.CurrentCondition.TempF = int.Parse(cnode["temp_f"].Attributes["data"].Value);
                WeatherData.CurrentCondition.WindCondition = cnode["wind_condition"].Attributes["data"].Value;
                WeatherData.CurrentCondition.IconLocation = cnode["icon"].Attributes["data"].Value;
                WeatherData.CurrentCondition.Icon = _getIcon(WeatherData.CurrentCondition.IconLocation);
            }
            catch { return false; }

            return true;
        }
        private bool _getForecasts(XmlDocument doc)
        {
            try 
            {
                WeatherData.ForecastConditions.Clear();

                XmlNode container = doc["xml_api_reply"]["weather"];
                for (XmlNode cnode = container.FirstChild; cnode != null; cnode = cnode.NextSibling)
                {
                    if (cnode.Name == "forecast_conditions")
                    {
                        ForecastCondition fc = new ForecastCondition();
                        fc.Condition = cnode["condition"].Attributes["data"].Value;
                        fc.DayOfWeek = cnode["day_of_week"].Attributes["data"].Value;
                        fc.TempLow = int.Parse(cnode["low"].Attributes["data"].Value);
                        fc.TempHigh = int.Parse(cnode["high"].Attributes["data"].Value);
                        fc.IconLocation = cnode["icon"].Attributes["data"].Value;
                        fc.Icon = _getIcon(WeatherData.CurrentCondition.IconLocation);

                        WeatherData.ForecastConditions.Add(fc);
                    }
                }
            }
            catch { return false; }

            return true;
        }
        private Image _getIcon(string loc) 
        {
            Image icon = null;
            string path = string.Empty;
            bool loaded = true;
            HttpWebRequest webRequest;
            HttpWebResponse webReponse;
            Stream webStream;

            if (this.CacheFolder != string.Empty)
            {
                path = Path.Combine(this.CacheFolder, Path.GetFileName(loc));
                if (File.Exists(path))
                {
                    try
                    {
                        icon = Image.FromFile(path);
                        loaded = false;
                    }
                    catch { icon = null; }
                }                
            }

            if (icon == null)
            {
                try
                {
                    webRequest = (HttpWebRequest)HttpWebRequest.Create("http://www.google.com" + loc);
                    webReponse = (HttpWebResponse)webRequest.GetResponse();
                    webStream = webReponse.GetResponseStream();
                    icon = Image.FromStream(webStream);
                }
                catch
                {
                    icon = null;
                    loaded = false;
                }
            }

            if (path != string.Empty && icon != null && loaded)
            {
                try
                {
                    icon.Save(path);
                }
                catch { };
            }

            return icon;
        }
        #endregion
    }
}

Schlagwörter: Google, Weather, Wetter, API

Thema: Probleme mit (selbstgezeichneter) Text-Region bei UserControl
Am im Forum: Grafik und Sound

vllt erreicht man da was mit der ComposingQuality hier mal ein Codeausschnitt.


            Graphics dc = e.Graphics;
            dc.CompositingQuality = CompositingQuality.HighQuality;//.HighSpeed;
            dc.InterpolationMode = InterpolationMode.HighQualityBicubic;
            dc.SmoothingMode = SmoothingMode.HighQuality;

Thema: Designer lastet system komplett aus. Control.DesignMode?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo ich habe eine selbst gezeichnete Spielfläche, wenn ich diese im Designer aufrufe lastet mein System komplett aus. Dies liegt an einem Sternenfeld was ich in den Hintergrund zeichne (Starfield).

Ich hatte mir gedacht das ich das Zeichnen einfach einstelle solange ich im Designer bin. Nur fehlt dort jetzt das know how. Ich weiß nicht wie ich ermitteln kann ob ich mich gegenwärtig im Designer aufhalte oder nicht. Hab es dann mal mit Control.DesignMode versucht aber das is wohl nicht das richtige.

Jemand eine Ahnung?

Schonmal danke im Vorraus.

mfg
KainPlan

Thema: mehrere TcpListener?
Am im Forum: Netzwerktechnologien

Den XmlSerializer solltest du aber im Produkiveinsatz möglichst vermeiden da du mit XML doch schon eine menge chunk versendest. Solltest dir vllt Gedanken über ein eigenes Protokoll machen :)