Laden...
S
Somakia myCSharp.de - Member
Data Analyst Specialist Hessen Dabei seit 08.09.2010 269 Beiträge
Benutzerbeschreibung

Forenbeiträge von Somakia Ingesamt 269 Beiträge

04.07.2011 - 16:32 Uhr

Ich denke es würde nicht nur mir helfen dein Problem zu lösen wenn wir wüssten, wie deine MyLibrary.dll intern aussieht?!

Hast du denn zum Beispiel in deiner DLL vor der Funktion ein

extern "C" 

zu stehen?
(Siehe Beispiel Using Unmanage Code in C#)

04.07.2011 - 09:58 Uhr

Der Name kommt nur in einer Datei fest vor, und das ist im Quellcode des AjaxMap in der AjaxMapControl.cs in einer Methode namens GenerateMapBox() welche von CreateChildControls() aufgerufen wird.
dort steht this.ID = "ajaxMap";

Andererorts kommt der Name nicht vor soweit ich das überprüfen konnte.
(Config-Dateien und Quellcodedateien, sowohl .cs als auch .js als auch .aspx/.ascx)

//Edit:
Wow, entgegen aller Erwartungen meinerseits habe ich das Problem gelöst bekommen.
Falls es mal jemanden geben sollte, der in einen ähnlichen oder genau den gleichen Fehler rennt:

Das Problem lag an der Benennung (ClientID) des Controls in Verbindung mit WebForm_DoCallback() von ASP.Net Ajax
Blödeweise will ASP.Net dort die UniqueID des Controls haben. Auf Client-Seite jedoch existiert nur die ClientID. Die JS-Funktion zum refreshen der Karte war in einer .js Datei und hat obj.container.id (obj ist das Javascript-ajaxMap-Objekt) übergeben, was jedoch nur die ClientID ist.
Durch kopierens der Javascript-Funktion in die .cs Datei und das Austauschen von obj.container.id im JS durch this.UniqueID im C#-Code und das Registrieren des Scripts durch den ClientScriptManager konnte ich das Problem lösen. Ob das jedoch die eleganteste Lösung ist sei erstmal dahingestellt, ich bin fürs erste froh dass es so funktioniert.

Danke an ujr dass er versucht hat zu helfen, auch wenns nicht viel geholfen hat 😄

so long,
Karill Endusa

04.07.2011 - 09:17 Uhr

Hallo liebe Com,

ich hab hier ein mehr oder minder kleines Problem mit einem WebControl, welches mich scheinbar in den Wahnsinn treiben will.
Es handelt sich dabei um das AjaxMap-Control für SharpMap (vllt. sagt das wem ja iwas).
Irgendwie gibt es ein Problem mit dem Control, wenn es nicht als "ajaxMap" benannt wird (ID). Wenn ich es anders nenne, dann erhalte ich den Fehler:> Fehlermeldung:

Das Ziel (...) für den Rückruf konnte nicht gefunden werden, oder es implementierte iCallbackEventHandler nicht.

wenn ein Map-Refresh stattfinden soll (was eigentlich so gut wie jede Aktion auslöst.)
Der Sourcecode des Controls liegt vor und ich kann zu Recht sagen: ICallbackEventHandler wird garantiert implementiert... und dazu auch noch INamingContainer.

Das Hauptproblem besteht hier nun darin, dass ich die AjaxMap in ein Web-Benutzersteuerelement gepackt habe, um noch ein paar Dinge dort hinzuzufügen, wie zum Beispiel eine Toolbar und eine Anzeige der Layer.
Durch dieses "Verpacken" hat zwar im Code die AjaxMap immer noch die gleiche ID, aber auf der Website hat sie dann eine andere ID, z.B. "_KartenCtrl_ajaxMap" (mein Benutzersteuerelement heißt "_KartenCtrl").

Bisher habe ich zu diesem Fehler nicht viel gefunden und hoffe nun hier vllt. den ein oder anderen Hinweis zu bekommen, wie sich das Problem lösen lässt.

09.06.2011 - 15:49 Uhr

Ich hab bisher nur Gutes über ARCHOS gehört, vllt. haben die ja was für dich?
http://www.archos.com/products/tw/archos_9/specs.html?country=de&lang=de
Die Displaygröße beträgt aber leider auch nur 8.9"
Kannst dich auf der Seite ja trotzdem ma umsehen ^^

01.06.2011 - 12:01 Uhr

Deine "Kunden" in der BindingList sind, wie du selbst gesagt hast, an das DGV gebunden...

Über dgvc.OwningRow.DataBoundItem kommst du recht einfach an das entsprechende Kunden-Objekt und musst es dann nur noch nach "Kunde" casten.

23.03.2011 - 14:11 Uhr

ich nutze ihn schon länger, also seit Beta-Phase weiß nemmer welcher genau...

leider ist die Geschwindigkeit sogar schlechter geworden... zumindest Reaktionszeiten sind drastisch angestiegen (was man aber erst bei einer relativ langsamen/schlechten Leitung bemerkt)
Deshalb nutze ich @Home erstmal weiterhin den 3.6, der hat da immer noch die besten Reaktionszeiten...

09.03.2011 - 08:47 Uhr

@tom-essen:
Das DataGridView-Control hat eine Property mit dem Namen AllowUserToAddRows.
Wenn ich die bei mir auf False stelle dann ist diese eine Zeile zum Hinzufügen nicht mehr da. Vllt. hilft dir das ja weiter.

18.02.2011 - 16:54 Uhr

meiner Meinung nach wäre an dieser Stelle doch string.Join perfekt geeignet, oder? ^^

arrL = s.Split(new Char[] { '_' });
e = string.Join("_", arrL, 1, arrL.Length - 1);

(hab ma eben dein array "l" in "arrL" umbenannt, sonst hätts man zu leicht mit ner 1 verwechselt)

16.02.2011 - 15:49 Uhr

Ich hab das ganze bei einer meiner Anwendungen so gelöst, dass ich bei jedem Radio Button das CheckedChanged Event abegfragt hab...
selbst bei 20 zusammenhängenden Radio Buttons sollten sich ja nich mehr als 2 verändern...
Klar, du hättest dann 20 Methoden in deinem Code und in jeder Methode ne Statusüberprüfung auch Checked... aber es werden dann ja maximal 2 der Events ausgelöst bei jeder Veränderung.

Wobei ich mich Frage ob bei so vielen Radio Buttons eine Combo Box nicht vllt. besser geeignet sein könnte.

11.02.2011 - 12:36 Uhr

ich schäme mich dafür, dass mir das passiert ist, aber vorenthalten möcht ichs euch nicht ^^

myString = myString.Trim(" ".ToCharArray());
27.01.2011 - 10:25 Uhr

Auch wenn du dir mitlerweile das China-Pad gekauft hast...

Ich werd mir demnächst (sobald genügend Geld vorhanden, kennt man ja) das Archos 9 holen... ein Bekannter von mir hats bereits und ist vollauf begeistert.

Vom Preis her nicht grad n Schnäppchen, aber von der Leistung her für n Tablet PC einfach Hammer:
http://www.amazon.de/Archos-Pctablet-Netbook-1-2GHz-Starter/dp/B002SSMMGC

Ich mein, hallo? es hat sogar USB, such das ma an nem iDings <.<
Abgesehen davon: wuhuu, inklusive Win 7 (starter) 😁

Also, das Ding is mein Tip falls dein China-Pad den Geist aufgibt, verbrennt oder in einer atomaren Explosion das weite Sucht 😉

13.01.2011 - 09:43 Uhr

Ein SplitContainer wäre meiner Meinung nach ebenso besser geeignet als ein TableLayout... ebenso ginge natürlich auch die Variante von ErfinderDesRades

28.10.2010 - 17:54 Uhr

ok werd mir das morgen auf Arbeit alles genauer angucken danke...

ich glaub ich habs auch schon mit der Read-Methode vom Stream selber versucht aber wie mach ich dann das, was derzeit der part

while((tmpstring = sr.ReadLine()) != null)

übernimmt?

Bin ebenso auch für weitere Ideen und Anregungen offen^^

28.10.2010 - 16:54 Uhr

Hallo Com,

Ich habe ein winzig kleines Problem mit dem Serialisieren, Versenden und Deserialisieren einer selbst erstellen Klasse.
Die Klasse hat das Attribut [Serializable] und ist von ISerializable abgeleitet...
Versendet und Empfangen wird über einen PipeStream (Named Pipe, von NamedPipeClientStream nach NamedPipeServerStream)

Das Serialisieren einer Instanz meiner Klasse scheint zu klappen, zumindest gibts da keine Fehlermeldung (das Ganze geschieht derzeit über einen BinaryFormatter)

Ich kann die Daten auch in den Stream schicken (BinaryFormatter.Serialize) aber ich weiß nicht, wie ich auf der Serverseite am besten wieder da ran komme...

Strings via PipeStream zu versenden war ja kein Problem (dafür benutze ich StreamReader.ReadLine())

Hat jemand eine Idee, nützliche Links oder konkrete Hilfe?

Hier noch ein wenig Code:
Meine Klasse

[Serializable]
    public class TestClass : ISerializable
    {
        public TestClass()
        {

        }
        protected TestClass(SerializationInfo info, StreamingContext context)
        {
            if(info == null)
            {
                throw new System.ArgumentNullException("info");
            }
            StringProperty = (string)info.GetValue("StringVal", typeof(string));
            IntProperty = (int)info.GetValue("IntVal", typeof(int));
            BoolProperty = (bool)info.GetValue("BoolVal", typeof(bool));
        }

        public string StringProperty
        {
            get;
            set;
        }

        public int IntProperty
        {
            get;
            set;
        }

        public bool BoolProperty
        {
            get;
            set;
        }

        public void GetObjectData(SerializationInfo info, StreamingContext context)
        {
            if(info == null)
            {
                throw new System.ArgumentNullException("info");
            }
            info.AddValue("StringVal", "XXX");
            info.AddValue("IntVal", 9999);
            info.AddValue("BoolVal", true);
        }
    }

Das Versenden:

BinaryFormatter myBinFormatter = new BinaryFormatter();
            testObjekt = new TestClass();
            testObjekt.BoolProperty = false;
            testObjekt.IntProperty = 215;
            testObjekt.StringProperty = "Toller Roller";

            pipeStream = new NamedPipeClientStream("DienstMitGuiPipe");
            pipeStream.Connect();

            myBinFormatter.Serialize(pipeStream, testObjekt);

            myBinFormatter.Serialize(pipeStream, "GUI hat sich verbunden");

            pipeStream.Close();

Das Empfangen:

using(pipeStream = new NamedPipeServerStream("DienstMitGuiPipe", PipeDirection.InOut))
                {
                    pipeStream.WaitForConnection();

                    BinaryFormatter myBinFormatter = new BinaryFormatter();

                    using(StreamReader sr = new StreamReader(pipeStream))
                    {
                        TestClass tmpObjekt = new TestClass();
                        string tmpstring;

                        while((tmpstring = sr.ReadLine()) != null)
                        {
                            tmpObjekt = (TestClass)myBinFormatter.Deserialize(pipeStream);

                            logData("[Server] Daten empfangen: "
                                + tmpObjekt.BoolProperty.ToString() + " | "
                                + tmpObjekt.IntProperty.ToString() + " | "
                                + tmpObjekt.StringProperty.ToString());
                        }
                    }
                }

Was in den einzelnen Codeausschnitten nicht deklariert ist, ist auf jeden Fall woanders im Code deklariert^^

15.10.2010 - 13:42 Uhr

Ich hoffe, du findest zumindest den Projektmappenexplorer o.O
alles weitere siehe Bild

10.09.2010 - 12:25 Uhr

wargh xD
danke euch beiden, manchmal kanns so einfach sein dass man es einfach übersieht 😄

Gefahr erkannt, Gefahr gebannt

10.09.2010 - 10:58 Uhr

so langsam glaube ich, dass es zwar doch ein Fehler ist, dieser aber beim Server liegt.

mit Putty konnte ich erfolgreich eine Verbindung herstellen und darüber auch die Befehle senden.
Daher weiß ich auch: selbst wenn man vollkommenen Mist eingibt bekommt man zumindest die Antwort, dass der Befehl nicht bekannt ist...

hier ist das Problem nun, dass ich gar keine Daten zurückbekomme (wie du ja schon gesagt hast, socket.available = 0) und dann auch der Receive blockiert (der wartet ja auf Daten)

nur: wieso kommen über den socket keine Daten wenn ich doch ganz sicher weiß, dass da welche kommen müssten (wie gesagt, bei Putty bekomm ich vom server ne Meldung, dass der Befehl nicht bekannt ist)

10.09.2010 - 09:45 Uhr

Ich habe nach der Anleitung von dieser Website hier
Simple Tcp Client ein Script erstellt... nunja, um ehrlich zu sein habe ich einfach den Quelltext kopiert und dann IP und Port angepasst. Nur damit hier niemand meckert "wah, nur kopieren, nix selbst machen, solche leute verstehen eh nich was sie da programmieren": ich verstehe ganz klar was ich da programmiere und habe nach dieser Vorlage auch ein Form erstellt gehabt was die Bedienung vereinfachen sollte... das Problem um welches hier trat zuerst da auf und deshalb hab ich einfach mal probiert ob es nun an meinem Code liegt oder nen allgemeiner Fehler ist...
leider ist es ein allgemeiner Fehler, nämlich der, dass sich das Script beim 2. Receive (unten in der While-Loop) einfach aufhängt
Ein Try-Catch an der entsprechenden Stelle lieferte keine Ergebnisse (er kommt nicht ins Catch da er sich ja beim Receive aufhängt)

Hier nochmal mein Code (der kopierte mit ersetzter IP Addy und ersetztem Port, sonst keine Unterschiede):


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;

namespace SimpleTcpClient
{
class Program
{
static void Main(string[] args)
{
byte[] data = new byte[1024];
string input, stringData;
IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("XX.XX.XXX.XX";), 10011);

Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

try
{
server.Connect(ipep);
}
catch (SocketException e)
{
Console.WriteLine("Unable to connect to server.";);
Console.WriteLine(e.ToString());
return;
}


int recv = server.Receive(data);
stringData = Encoding.ASCII.GetString(data, 0, recv);
Console.WriteLine(stringData);

while (true)
{
input = Console.ReadLine();
if (input == "exit";)
{
break;
}
server.Send(Encoding.ASCII.GetBytes(input));
data = new byte[1024];
recv = server.Receive(data);
stringData = Encoding.ASCII.GetString(data, 0, recv);
Console.WriteLine(stringData);
}
Console.WriteLine("Disconnecting from server...";);
server.Shutdown(SocketShutdown.Both);
server.Close();
}
}
}


Zur Info:
Bei dem Server handelt es sich auch nicht um eine selbst geschriebenes Programm sondern um einen TeamSpeak Server, deshalb ist die IP auch wegge-X-t