Laden...

Forenbeiträge von Knuddlbaer Ingesamt 123 Beiträge

01.05.2009 - 01:09 Uhr

Mit spy schon geprüft welche Meldungen insgesamt geworfen werden wenn die Taste gedrückt wird ?

30.04.2009 - 06:16 Uhr

Schau mal ob Dich das hier weiterbringt:

http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/e5f0c371-b900-41d8-9a5b-1052739f2521/ (Deserialize - unable to find an Assembly .....)

Btw.: "Unbekannt" und deserialisieren passt nicht.

14.04.2009 - 18:45 Uhr
  • die Exception erfolgt definitiv nicht erst beim Ausführen der potentiell kritischen Zeile "testList_.curDivTime = testList_.curDivTime - testList[i-1].curDivTime;" sondern bereits beim Aufruf der DLL-Funktion

Und woher weißt Du das ?

12.03.2009 - 05:27 Uhr

Ein Motor funktioniert so, dass er <bla blubb>. Das würden IMHO die meisten so auffassen, das erläutert wird wie ein Motor funktionert. Man erklärt ja nicht, wie er im speziellen zusammengebaut ist sondern erläutert die grundlegende Funktionalität. Das lässt sich IMHO auch auf

tryparse funktioniert so:

public static bool TryParseInt64(string wert, out long variable)  
{  
try  
{  
variable = Convert.ToInt64(wert);  
}  
catch{return false;}  
return true;  

}

übertragen. Das kann man durchaus so verstehen, dass hier behauptet wird, TryParse verwendet einen Try Catch block.

Vielleicht liegt mein Fehler ja daran, das ich nicht weiß was einzelne User hier schreiben oder mir der Postzähler vollkommen egal sind, aber ich finde es Notwendig zu so etwas ergänzend Hinweise zu liefern. Es wird ausreichend Leser geben, die aufgrund des oben zitierten Posts glauben, dass TryParse mittels try catch implementiert sind.

Wer sich so schwammig ausdrückt muss einfach damit Rechnen das es auch ein Kommentar dazu gibt. Wer das nicht will soll ich vorher klar ausdrücken.

kannst du im konkreten Fall davon ausgehen, dass JAck30lena genau weiß und wusste, dass bei TryParse intern keine Exception auftritt. Dazu hat er an anderen Stellen schon viel zu oft geschrieben, dass man TryParse statt try { Parse } catch {} verwenden soll, um Exceptions zu vermeiden.

Ein Forum dient zum Informationsaustausch und zum erlernen von Tatsachen. Besteht die Gefahr das etwas falsch interpretiert wird, ist eine Korrektur oder Hinweise i.d.R. erwünscht. In diesem Forum fühlen sich gleich alle angegriffen und rechtfertigen sich mit Argumenten die völlig Irrelevant sind. Es ist doch vollkommen egal was Jack weiß oder was Du glaubst zu wissen was Jack weiß oder was andere User anhand des Postzählers oder Bekanntschaft glauben was Jack sagen wollte.

IMHO ist viel entscheidender, dass eine Aussage im Raum steht, die so interpretiert werden kann, dass TryParse mit try catch implementiert ist. Was um Himmelswillen spricht dann dagegen dies zu korrigieren - und für alle die es so interpretieren wie ich es getan habe (ja, ich kenne die Posts von Jack nicht und Postzähler sind mir vollkommen egal) der wichtige Hinweis kommt, das dem nicht so ist.

Zur Qualität der Beiträge möge jeder für sich die Frage beantworten, wie der Verlauf der Diskussion gewesen wäre, wenn jemand mit nur 5 Postpunkten geschrieben hätte, dass ein TryCatch so funktioniert: <Code mit einem try catch Block um Parse>

11.03.2009 - 18:19 Uhr

Das rausreden anhand von Goldwaage kennen wir in diesem Forum schon. (Das schöne bei mehrdeutigen Aussagen).

mir ist klar, das es nicht exakt so implementiert ist wie ich beschrieb. daher habe cih geschrieben das es so ++funktioniert ++und nicht das es so implementiert ist.

Nein, es funktioniert so nicht.

Als out-Argument übergebene Variablen müssen zwar nicht initialisiert werden, bevor sie übergeben werden, aber die aufrufende Methode muss einen Wert zuweisen, bevor die Methode einen Wert zurückgibt.

MSDN: out (C#-Referenz)

11.03.2009 - 16:19 Uhr

tryparse funktioniert so:

  
public static bool TryParseInt64(string wert, out long variable)  
{  
try  
{  
variable = Convert.ToInt64(wert);  
}  
catch{return false;}  
return true;  
}  

Nö, tuts nicht. Stell den Debugger mal auf das Fangen von Ausnahmen der ersten Chance ein und vergleiche das TryParse des Fameworks mit Deiner Varianten. (Abgesehen davon, das sich Deine Variante nicht übersetzen lässt.)

Spätestens wenn man den Quellcode vom Framework durchsteppt wird man sehen das es kein einfaches try catch um ein parse ist.

10.03.2009 - 16:48 Uhr

nö, var ist nicht typenlos, sondern dient nur dazu, den Typ nicht zweimal schreiben zu müssen.

            var v5 = new { Color=108, Price = 12.2};

var ist sicherlich nicht typenlos, aber mehr als "dient nur dazu , den Typ nicht zweimal schreiben zu müssen"

MSDN: Anonyme Typen (C#-Programmierhandbuch)
MSDN: Implizit typisierte lokale Variablen (C#-Programmierhandbuch)

24.02.2009 - 19:57 Uhr

Das PropertyGrid zeigt alle public Eigenschaften Deiner Klasse an wenn Du diese mittels SelectedObject zuweist.

22.02.2009 - 13:41 Uhr

Beides findest Du entweder in der MSDN oder im Grundlagenbuch.

Thread.Sleep(xxx) verhindert u.a. das Windows-Nachrichten richtig ausgewertet werden. Es gibt die große Keule

Application.DoEvents()  

die zwingend alle vorhandenen Windows-Nachrichten weiterleitet / auswertet. Aber das sollte man vermeiden.

Bei einem Thread.Sleep im UI Thread wird Dir auch ein Application.DoEvents nicht helfen. Der Thread seht AFAIK mindestens so lange wie in Thread.Sleep angegeben. Er bekommt einfach keine Zeit zugewiesen etwas zu machen.

  
if (connection == null)  
  
else if (connection != null)  
  

eher

if (connection)  
  
else if (!connection)  

Wo ist da jetzt der Unterschied ?

22.02.2009 - 13:14 Uhr

Thread.Sleep verhindert das Ausführen eines vorherigen Befehls

Ist als Aussage vollkommen richtig und ist genau dafür da.

Schau Dir Timer an und überdenke Deinen Post noch mal, da taucht nicht mal eine Frage oder ähnliches auf.

20.02.2009 - 18:25 Uhr

Prüfe auf precompilerdirektiven alla

#if DEBUG

Wird der DLL Verweis mit einem ! angezeigt ? Ist die DLL als Projekt eingebunden und das DLL Projekt noch nicht im Release übersetzt ?

20.02.2009 - 17:33 Uhr

In der Dokumentation ist mir nichts bekannt, das ShowDialog eine eigenen Queue anlegt. Hinweise auf den Reflektor in Beiträgen der NewsGroup weisen darauf hin, das ShowDialog auch eine Queue erzeugen kann.

Das Verhalten ist dennoch als Undefiniert anzusehen, erst recht im 1.0er CF das an einigen Stellen ohnehin anders Tickt.

Probleme mit verschwundenen Forms kenne ich ein wenig im 1.0er Framework, vor allem wenn man mit anderen Applikationen interagieren muss. Hier half oft der WorkArround eines Timers mit 100ms, einmaligen Lauf und einem Focus und BringToFront im TimerTick. (Vor allem wenn es ein CF ohne SP ist.)

(Im 2.0er CF gibt es diese Probleme zum Glück nicht mehr 😮)

20.02.2009 - 16:52 Uhr

Das 1.0er Framework ist hier recht radikal und merkwürdig. Die einfachste Möglichkeit wäre IMHO den Login im FormLoad Ereignis der MainForm zu betreiben.

(Der erste Aufruf von ShowDialog läuft AFAIK ohne MessageQueue)

Was passiert wenn Du den Aufruf so machst:

       private void Run() {
            DialogResult loginResult = DialogResult.Abort;

            //- Login ----------------------------------------------------
            //Login durchführen und anschließend die Daten laden            
            using (AuthService authService = AuthService.GetInstance()) {
                try {
                    if (!authService.InitializeDriver(settings.AuthDriver.Configuration))
                        throw new Exception(msgAuthDriverInitializationFailed);
                    LoginForm frmLogin = new LoginForm();
                    frmLogin.LoadMethod = new LoginForm.LoadingMethod(this.LoadApplicationData);
                    //loginResult = frmLogin.ShowDialog();
                } finally {
                    //Die vom Treiber beanspruchte Resourcen freigeben
                    authService.Dispose();
                }
            }

            //- Hauptanwendung -------------------------------------------
//            if (loginResult == DialogResult.OK) 
{
                //GatheringService initializieren
                using (GatheringService gthService = GatheringService.GetInstance()) {
                    try {
                        if (!gthService.InitializeDriver(settings.GatheringDriver.Configuration))
                            throw new Exception(msgGathDriverInitializationFailed);
                        Application.Run(new MainForm());
                    } finally {
                        //Die vom Treiber beanspruchte Resourcen freigeben
                        gthService.Dispose();
                    }
                }
            }
        }
20.02.2009 - 05:09 Uhr

Zeig mal den Code bzw. die Stelle an der die NullReferenceException fliegt

19.02.2009 - 22:33 Uhr

Stichwort zum suchen:

global keyhook

18.02.2009 - 11:20 Uhr

Messages kannst Du mit Spy++ rausfriemeln, aber

selbst wenn Du ein bool verwenden musst ist es weniger gefrickel als

habe auch schon versucht, den X button im WndProc zu filtern, leider ohne erfolg (welche messge ?)

18.02.2009 - 11:13 Uhr

Was ja auch vollkommen richtig ist, der Anwender will die Anwendung schließen. Wenn Du dann Minimierst hast Du das Verhalten geändert.

Einen Boolean brauchst Du doch an sich nicht, wenn die Form Min ist und CloseReason.UserClosing auftritt wird es das X nicht gewesen sein.

Und selbst wenn Du ein bool verwenden musst ist es weniger gefrickel als

habe auch schon versucht, den X button im WndProc zu filtern, leider ohne erfolg (welche messge ?)

18.02.2009 - 11:07 Uhr

[Edit] Ich schlaf erst mal ne runde, sry[/edit]

17.02.2009 - 17:51 Uhr

this.kundenTableAdapter.Update() ?

13.02.2009 - 21:29 Uhr

f2.Name = "Hallo Welt"

Wenn Du damit Variablennamen meinst: Nimm ein Dictionary<string,Form>

12.02.2009 - 10:12 Uhr

EndInvoke hilft Dir auch wenn Du nur einen Thread hast. Genau dann wenn Du die Aufgabe parallel laufen lassen willst und an einem bestimmten Punkt erst weiter machen kannst wenn der Delegat fertig ist.

In dem Code den wir im ersten Posting gesehen haben würde ich auch Invoke sagen da eindeutig der Wert zurück gegeben werden soll.

11.02.2009 - 21:11 Uhr

BeginInvoke sorgt dafür, dass die Methode zu einem späteren Zeitpunkt ausgeführt wird. Wenn Du Werte zurück haben willst musst Du Invoke oder eine Kombination von BeginInvoke und EndInvoke verwenden

09.02.2009 - 14:13 Uhr

Da könnte es sich lohnen mal im OpenNET CF zu suchen, ob man da was passendes zu hat.

08.02.2009 - 23:32 Uhr

Beim CF sind es native Komponenten des Betriebssystems. An sich stimme ich Dir zu, ich hab auch schon vieles vermisst. Irgendwo muss aber gespart werdn. Schau Dir die Kisten an auf denen es läuft. Wenn 16MB zur Verfügung stehen muss das Framework klein sein. Und da wird dann kräftig gespart.

Mit dem Subclassing kommt man aber schon sehr weit. Kannst ja beim nächsten Projekt mal das 1.0 CF verwenden. Dann wirst Du über das 2.0er sehr erfreut sein 😮))

Ahja: Ownerdraw: Vergiss nicht das die Mobilen Geräte oft merkwürdige Displays haben und auch bei hellem Licht eingesetzt werden müssen. Weniger ist hier oft mehr.

08.02.2009 - 18:53 Uhr

So schlecht ist das CF garnicht. Man hat erst mal pauschal 50% weggenommen und dann noch mal die 50% die spaß machen.

Man kommt mit dem CF (V2.0 aufwärts!) schon weit und kann auch viel machen.

Hier mal ein Ansatz für dein Problem:
http://msdn.microsoft.com/de-de/library/ms229661.aspx

klappt sehr gut 😮)

Und generell noch eine sehr wichtige URL wenn man mit dem CF arbeitet:
http://www.pinvoke.net

28.01.2009 - 04:51 Uhr

Ein blick in Richtung WindowsIdentity kann auch helfen. Die App komplett unter höheren Rechten laufen zu lassen kann eventuell unerwünscht sein.

28.01.2009 - 04:44 Uhr

AvoidTryCatch

Da hat aber jemand den im AvoidTryCatch verlinkten Artikel nicht so recht verstanden !?

15.06.2008 - 21:35 Uhr

Warum darf man nur einen UI Thread haben ? Das ist nicht begründet. Behauptungen aufstellen kann jeder, dadurch das diese in der FAQ stehen, werden sie auch nicht richtig.

15.06.2008 - 21:22 Uhr

Alle genannten Beiträge beschreiben die Problematik, warum man aus einem fremden Thread nicht auf Elemente eines GUI Threads zugreifen darf. Jedoch nicht, warum ich nicht mehrere GUI Threads in einem Prozess erzeugen sollte.

Die Überschrift "Nur ein GUI-Thread" ist hier zudem m.E. irreführend. Der erläuternde Text geht in keinster weise auf das "Nur ein GUI Thread" ein sondern erläutert, das man Controls nur im dazugehörigen UI Thread erzeugen soll.

Wir sprechen hier nicht von: "Aus mehreren Threads auf eine UI zugreifen" sondern von "in einem Prozess mehrere UI Threads (ja, eigene MessageQueue etc) haben".

15.06.2008 - 19:23 Uhr

Kannst Du mir bitte das Stichwort für die FAQ geben ?
Ich sehe den Wald vor lauter Bäumen nicht und in den vielen Querverlinkungen geht eventuell das entscheidende unter.

Vielen Dank! 😮)

15.06.2008 - 16:44 Uhr

Ahhhh da hab ich den Wald vor lauter Bäumen nicht gesehen. Ich hab alles rund um den Thread abgesucht, aber nicht die Leiste oben. Manchmal scheitert man an gaaanz einfachen dingen. (Wie ein leeres Passwort - oder ein "Thema zu Favoriten hinzufügen")

Vielen Dank 😮)

15.06.2008 - 16:40 Uhr

(Eventuell einfach nur Fehler 99 😮)){gray}

Ich vermisse die Möglichkeit, einen Beitrag zu abonieren bzw. eine E-Mail Benachrichtigung zu erhalten, wenn es einen neuen Beitrag gibt in einem Thread, in dem ich NICHT gepostet habe.

Es gibt immer mal interessante Probleme zu denen man nichts schreiben kann, aber an Antworten interessiert ist. Im alltagsstreß geht der Thread aber nicht selten unter so das man sich schwer tut diesen zu finden bzw. zu überwachen.

Schön wäre es, wenn man sich auch bei Threads, zu denen man aktiv (noch) nichts beitragen konnte, über neues informieren lassen könnte.

15.06.2008 - 16:37 Uhr

Ich würde es begrüßen, wenn man im Profil einstellen könnte, ob "Smilies in diesem Beitrag deaktivieren." als Vorgabe aktiviert oder deaktiviert sind.

Analog hierzu wären die restlichen Felder, die man beim Posten angeben kann, zur Verwaltung freigegeben ein weiteres Zuckerstückchen 😮)

15.06.2008 - 16:31 Uhr

Ergänzung:

Natürlich jedes Control, welches im gleichen Thread erstellt wurde wie das Zielcontrol.

14.06.2008 - 13:30 Uhr

Einfach mal da den Support anmailen. Am Weekend sind die Wartezeiten etwas länger, ansonsten sehr fix. Alternativ an den Vertrieb mailen, Vertriebler reagieren immer schnell wenn man noch kein Kunde ist 😉

13.06.2008 - 14:39 Uhr

weißt du nicht wie man prüft ob activesync da ist, oder wie man soetwas individuelles im setup macht ?!

13.06.2008 - 12:11 Uhr

Die Lösung gibts dann zum Nachlesen hier:
http://www.c-plusplus.de/forum/viewtopic-var-t-is-215574.html

Den Beitrag selbst finde ich aber sehr interessant, genau nach dem wurde in vielen Foren schon oft gefragt 😮) Thx für die Lösung

11.06.2008 - 18:09 Uhr

Bitte in einem neuen Thread posten, das Problem geht sonst unter.

Ob die API die Ansteuerung der Kamera beinhaltet oder ob dies Gerätespezifisch ist kann ich Dir nicht sagen. Stell die Frage mal in einem neuen Thread mit aussagekräftigen Titel, dann hast Du auch mehr Bandbreite bei den Menschen, die eine Lösung haben könnten.

10.06.2008 - 18:07 Uhr

Der Vorteil liegt bei der Entwicklung der Komponenten. Wie würdest Du denn gerne die 50 Controls in Deine Applikation einbinden ?

Es gibt Tools, welche das ganze zu einer exe zusammen matschen. Das kann gehen, muss aber nicht gehen.

Ich glaube, ich habe die falsche Sprache gewählt.

Das denke ich jedoch auch. Es liegt aber nicht an der Sprache, das Du viele verschiedene Controls einbindest. Für kleine Applikationen tuns meist auch die Controls, die im Framework dabei sind.

Ansonsten kannst Du bequem ein Setup schnüren, was die Weitergabe aller nötigen Elemente für Dich übernimmt. (Das ist dann der Anwender auch gewohnt, ein Setup.)

10.06.2008 - 17:44 Uhr

Nicht das ich wüsste. Selbst wenn wäre das nicht der richtige Weg.

Marshalst Du irgendwelche Daten ?

Sprich Deinen Wrapper auch mal aus C++/CLI an um sicher zu gehen, das der Wrapper keinen Unsinn baut.

10.06.2008 - 17:41 Uhr

Für die Entwicklung "intelligenter Geräte" gibt es einen "Remote Heap Walker". Eventuell gibt es so etwas auch für den Desktop bereich. (Wenn Du was findest, bitte Posten.)

10.06.2008 - 12:53 Uhr

Pack nen InputPanel ins Projekt (Form) und nutze die Eigenschaft Visible (oder Enable, weiß nimmer welche es war, gibt aber kaum Auswahl, findest schon.)

10.06.2008 - 12:51 Uhr

Mouseevents o.Ä. überschrieben ? Subclassing betrieben ?

09.06.2008 - 18:11 Uhr

Um der Verwirrung vorzubeugen:

ManuelResetEvent :
Die Tür bleibt so lange auf, bis diese manuell geschlossen wird (Achterbahn z.B., da gehen meist mehrere Menschen durch das Tor). Die Tür kann jederzeit durch den Code wieder geschlossen werden so das der Rest warten muss.

AutoResetEvent:
Die Tür wird für jeden "Passant" einzeln auf und direkt danach wieder zu gemacht. (Drehkreuz Schwimmbad).

Die technischen Details sind mit den 2 Stichwörtern nachzulesen.

06.06.2008 - 14:55 Uhr

bool isdt ein C++ Schlüsselwort, BOOL vermutlich ein #define auf ein int. Vorsichtig solltest Du dennoch sein.

Ein bool und ein return false; sollten es in C++ genauso tun.

06.06.2008 - 14:34 Uhr

Eventuell ist False in der C++ anwendung ein define mit falscher Belegung.