Laden...
U
Benutzerbeschreibung
Konto auf Wunsch des Benutzers gesperrt

Forenbeiträge von userid12529 Ingesamt 208 Beiträge

22.06.2010 - 16:05 Uhr

Schau dir mal die Hotkey-Klasse von ErfinderDesRades an. Die kommt auch ohne Form aus.

21.06.2010 - 22:34 Uhr

Bei den Algorithmen die ich implementiere hängt man leider ein wenig länger im Quellcode fest.

wenn es keine windows-forms-spezifischen sachen sind, kannst du doch unit-tests verwenden?

21.06.2010 - 19:19 Uhr

Hier wird erklärt wie man mitbekommt, wenn sich die Form minimiert: http://bytes.com/topic/c-sharp/answers/241866-capturing-onminimize-event

18.06.2010 - 14:12 Uhr

Hallo!

Ich stehe derzeit vor folgendem Problem: Ich habe eine Anwendung (ein Programm-Updater) welche unter Administratorrechten läuft (damit die Programmdateien ausgetauscht werden können). Nach dem Aktualisieren der Programmdateien startet diese Updater-Anwendung die aktualisierte Anwendung, in welcher dann ein Update von internen Programmdaten stattfindet. Da der Updater unter Vista bzw. 7 im sogenannten elevated mode läuft (das heißt beim Start bekommt der Anwender diese tolle UAC-Meldung ob er fortfahren möchte) findet ein Austausch der Login-Session statt (vorher Benutzer, jetzt Admin). Problem ist nun, dass der Admin-Benutzer keine Rechte mehr auf Netzlaufwerke hat (was die Sub-Anwendung, in der das interne Datenupdate stattfindet, aber unter Umständen benötigt). Jetzt bekomme ich in der Sub-Anwendung bei einem Tester, der eben dieses Szenario mit dem Netzlaufwerk hat, immer einen Zugriffsfehler auf das benötigte Netzlaufwerk.

Ich suche daher nach einer Möglichkeit, den Sub-Prozess mit den Original-Benutzerrechten zu starten, ihm also die Adminrechte zu entziehen, die er vom Hauptprozess geerbt bekommt. Geht das, ohne dass ich den Process mit UserName und Password starte (das hab ich spaßeshalber getestet, das funktioniert, solange man das Kennwort des aktuell angemeldeten Benutzers kennt - wobei ich von einem Endanwender ja nicht verlangen kann, sein Kennwort da einzugeben zumal es den Update-Prozess unnötig stört)?

Hatte schon mal jemand so etwas und weiß wie es gehen könnte? Habe in den ProcessStartInfo-Properties keine Einstellung gefunden, die auf so etwas hingedeutet hätte. Gibt es andere Möglichkeiten?

Danke im Voraus.

Grüße,
Isaac

17.06.2010 - 13:46 Uhr

Aber im Netz hab bisher noch nichts gefunden, zumindest nichts was funktioniert.

ja genauso ist es mir damals auch ergangen. habe zwar viele how-tos gefunden wie man das schließen des excel-prozesses auf normalem wege bewerkstelligt, aber funktioniert hat dann davon nichts, deshalb hab ich eben auf diese etwas unschöne lösung zurückgegriffen 🙂

ja wenn du den normalen funktionierenden weg findest wär's cool das hier zu posten, bist ja wie gesagt nicht allein mit dem problem

17.06.2010 - 12:24 Uhr

hallo scrabble,

hatte ja schon kurz skizziert, wie ich das problem gelöst hatte.

hier mal ein code-snippet aus meiner anwendung (aus vb.net mit einem tool übersetzt, könnte fehler enthalten)

private Excel.Application excelApplication;
private Process excelProcess;

public void OpenExcelInstance()
{
    if (excelApplication == null)
    {
        // Alle geöffneten Excel-Prozess-IDs in einer Liste speichern
        var excelProcessIds = new List<string>();

        foreach (var currentExcelProcess in Process.GetProcessesByName("EXCEL"))
        {
            excelProcessIds.Add(currentExcelProcess.Id);
        }

        // Excel-Instanz öffnen
        excelApplication = new Excel.Application();

        // Wenn der Benutzer während der Verarbeitung eine Excel-Datei per Doppelklick öffnet, 
        // wird die Datei nicht diesem Excel-Prozess verwendet, sondern in einem neuen
        excelApplication.IgnoreRemoteRequests = true;

        // Neu hinzugekommenen Excel-Prozess ausfindig machen
        foreach (var currentExcelProcess in Process.GetProcessesByName("EXCEL"))
        {
            if (!excelProcessIds.Contains(currentExcelProcess.Id))
                excelProcess = currentExcelProcess;
            break;
        }
    }
}

public void CloseExcelInstance()
{
    if ((excelApplication != null))
    {
        // Excel-Instanz schließen
        excelProcess.Kill();

        excelApplication = null;
    }
}
16.06.2010 - 23:52 Uhr

Environment.SpecialFolder

ich würde dir aber nicht empfehlen, in das eigene dateien/bilder/musik verzeichnis zu schreiben. finde es als anwender immer total blöd wenn die programme das ungefragt tun und mir keine möglichkeit geben das umzustellen. in meine dokumente will ich MEINE dokumente haben, und keine settings von programmen oder sowas. kann mir gut vorstellen dass es vielen anderen anwendern ebenso geht.

16.06.2010 - 18:14 Uhr

Der Nachteil bei deiner Idee mit TryGet ist halt, dass man dann nicht explizit COM5 öffnen kann, sondern dafür zuerst COM1-4 öffnen muss um überhaupt an COM5 dranzukommen...

aber das relativiert sich doch wieder, dadurch dass du den chips die namen selber verfasst. der name hat keinerlei mehrwert, mit der zusatzinfo der nummer kann man nichts anfangen, im gegensatz zu deinem beispiel mit den com-ports. wenn ich COM5 anspreche, dann weil ich weiß, dass auf COM5 irgendein gerät angeschlossen ist und ich dieses ansprechen will. wenn ich aber einen SpecialChip haben will, ist es doch egal, ob der jetzt intern SpecialChip1 oder SpecialChip2 heißt. es ist und bleibt ein SpecialChip mit dem ich meine arbeit machen kann. oder überseh ich etwas?

16.06.2010 - 16:52 Uhr

hast du schonmal nachgeschaut, ob der excel-prozess tatsächlich beendet wird? schau mal nach ob du zu dem zeitpunkt in dem du versuchst das diagramm zu löschen im taskmanager noch ein excel-prozess aufgelistet wird.

habe selber schon die erfahrung gemacht, dass sich excel, wenn man es im interop benutzt, nicht so ohne weiteres wieder schließen lässt (obwohl sämtliche vorschläge die so im netz kursieren nicht wirklich geholfen hatten).

bin dann den etwas unschöneren, aber dafür sicher funktionierenden weg gegangen dass ich den prozess über Process.Kill() hart abgeschossen hab (wobei ich vorher den eindeutigen excel-prozess ermittelt hab in dem ich alle laufenden excel-prozesse ermittelt hab die vor dem starten des interop-vorgangs offen waren und dann nach dem öffnen eines worksheets ebenfalls, um den hinzugekommenen prozess ausfindig zu machen, da es ja sein kann, dass der anwender eine eigene excel-instanz offen hat).

15.06.2010 - 23:27 Uhr

und ich hab mich gefragt, wieso ich mit tortoise svn so seltsame fehlermeldungen bekomme... mercurial war das stichwort. danke!

14.06.2010 - 16:26 Uhr

@sth_Weird: Ich glaube da tust du der CCD-Initiative an sich und auch deren Initiatoren unrecht. Ralf Westphal und Stephan Lieser wissen sehr wohl, dass sie da nichts neues erfunden haben, dass die ganzen Werte, Prinzipien und Praktiken die sie formuliert haben schon bekannt sind. Und auch ich hab, bevor ich Clean Code Development gemacht hab, für meine Begriffe mich damals bemüht, sauberen Code zu schreiben und habe auch unbewusst schon einige der CCD-Prinzipien eingesetzt. Aber genau das ist es ja. Ich hab es unbewusst gemacht. das macht wohl jeder Entwickler. Aber genau aus dieser Nische will CCD die Softwareentwicklung rausholen, in dem es einen Satz an Werten und Prinzipien bzw. Praktiken formuliert, die, wie sie meinen zu besserer Softwarequalität beitragen. Mit CCD soll quasi ein "Standard" formuliert werden, der sagt, was sich bewährt hat und was man besser lässt. Ich persönlich bin sehr darüber, von Leuten, von denen ich weiß, dass sie mehr Ahnung haben als ich, an der Hand geführt zu werden.

CCD ist auf jeden Fall ein Thema, mit dem es sich zu beschäftigen lohnt. Auch für die, die meinen, sie würden ja jetzt ohnehin schon alles richtig oder wenigstens gut genug machen.

Ich habe keinen Punkt gefunden, den ich nicht schonmal anderswo gelesen hätte (und teilweise dort viel ausführlicher).

Die Aufgabe von CCD ist nicht, diese Sachen, die es in den Bausteinen verpackt hat, ausführlich und langatmig zu erklären, sondern sie einfach als "Best Practices" zu nennen. Nicht umsonst heißt ein Prinzip: "lesen, lesen, lesen". CCD erwartet von dir ja auch, dass du dich selber noch ausführlicher mit den genannten Dingen beschäftigst.

Ich meine, Coderichtlinien die z.B. vorschreiben wie man eine Variable benennt, das gab es doch schon zu Assembler-Zeiten

Aber genau das macht doch CCD gar nicht. CCD schreibt nicht vor, wie du deine Variablen bennenen sollst, sondern sagt einfach nur, dass es eine Konvetion innerhalbt der Firma geben soll.

Bei allen Code Konventionen ist uns nämlich eines ganz wichtig: es geht weniger um die konkrete Ausgestaltung sondern um konsequentes Einhalten der Konvention. Und es geht um das Bewusstsein dass Konventionen notwendig sind.

Vielleicht solltest du dich nochmal etwas eingehender damit beschäftigen, wa CCD ist und was nicht..

Grüße,
Isaac

13.06.2010 - 20:39 Uhr

Kleine Anmerkung vielleicht noch bezüglich der CCD-Grade:

Die Grade drücken keinen Wert aus. Wer am blauen Grad arbeitet ist nicht "besser" oder "weiter" als jemand, der am orangen Grad arbeitet. Bedeutung der Grade

Nicht, dass das hier zu einem Wettbewerb wird. 😉

13.06.2010 - 17:33 Uhr

Hallo zusammen,

also ich verfolge die CCD-Bewegung mehr oder weniger seit der ersten Stunde und versuche, soweit es mir möglich ist, sauberen Code zu schreiben. Leider hab ich auf der Arbeit oft mit Brownfield-Projekten zu tun wo ich dann, wie ich gestehen muss, öfter "Regelverstöße" in Kauf nehme.
Bei neuen Projekten auf der grünen Wiese arbeite ich dann aber auch streng komponentenorientiert und versuche die CCD-Regeln und -Prinzipien bewusst einzuhalten.

Da ich aber in der Praxis das System mit dem Wechseln der Ränge nach einer bestimmten Zeit ohne Regelverstöße nicht befolge, habe ich einfach mal für Rot abgestimmt...

Grüße,
Isaac

12.06.2010 - 20:18 Uhr

Hallo,

also, ohne es jetzt ausprobiert zu haben (fehlen mir jetzt auch die Mittel weil ich kein Java-Programmierer bin), müsste es doch, rein von der Theorie gehen. Schließlich kann man ja in .NET eigene (De-)Serialisierer schreiben. Wenn du also weißt, wie Java die Objekte serialisiert, könntest du einen dazu passenden .NET-Deserialisierer schreiben. Aber das jetzt nur so als theoretischer Gedanke, kann mich gerne jemand korrigieren wenn ich da falsch liege.

(Am besten würde sich dann wahrscheinlich XML als Austauschformat eignen.)

  • Isaac
12.06.2010 - 12:03 Uhr

Ich würde die Verzeichnisstruktur an deiner Stelle anders organisieren, so macht das nur Probleme.

Ich hab immer folgende Unterteilung:

Projektordner

  • bin // In diesen Ordner kommen alle kompilierten DLLs, bzw. deine Programm-EXE
  • lib // Alle Fremd-DLLs, die dein Programm benötigt
  • src // Hier kommen alle VS-Projektmappen/VS-Projekte deines Projekts

Alle Projekte kompilieren nach 'bin' und DLL-Verweise gehen auf den 'lib'-Ordner (VS handled das dann als relativen Pfad. Wenn du das Projekt weitergeben willst musst du den kompletten Projektordner weitergeben, dann ist sichergestellt dass die Verweise auf Fremd-DLLs erhalten bleiben.

02.06.2010 - 22:16 Uhr

Wenn ich mir die Code-Schnipsel von av1406 anschaue, denke ich, es fehlt hier viel mehr an Grundlagenkenntnissen zu OOP und Objekten/Klassen. Eine gute Einführung findest du im Visual C# Open Book.

EDIT: Falschen TE-Namen korrigiert.

02.06.2010 - 10:44 Uhr

stellt euch nur mal vor, der kunde hätte gerne am ende ein anderes farbschema 😉

Ist doch kein Problem, solange man, wie herbivore auch schon richtig sagt, mit vernüftigen Absatzformaten arbeitet. Siehe auch mein Beispieldokument. Um das Farbschema anzupassen müssen nur ein paar Absatzformate geändert werden und alle Code-Schnipsel innerhalb des Dokuments übernehmen die neuen Einstellungen. 😃

Man muss halt immer den Aufwand abschätzen. Wer quick will, muss auch ein bisschen dirty in Kauf nehmen. Wer dirty nicht haben will, muss sich vielleicht gegen quick entscheiden. 😉

01.06.2010 - 17:29 Uhr

Klar kannst du gerne benutzen. Freut mich dass es dir gefällt! 🙂

Hm, ich hab bisher auch nur ein Excel-Plugin entwickelt, und das war schon 'ne Qual. 🙁

01.06.2010 - 15:55 Uhr

//Edit: Das mit der Volage ist wohl wegen der Kompatibilitätsprobleme hinfällig, aber Word ist auch in den älteren Versionen trotzdem ziemlich gut geeignet.

Och, gar nicht mal unbedingt... Ich hab vor kurzem nicht schlecht gestaunt, als mir ein Kollege mitgeteilt hat dass er mit Word 2003 eine docx-Datei (also Word 2007) öffnen konnte. Scheint aber auch erst nach der Einspielung eines Updates zu funkionieren. Außerdem kann ja Word 2007 abwärtskompatibel speichern, und mein Dokument sieht in doc-Format jetzt gar nicht so verkehrt aus, bis auf ein paar falsche Seitenumbrüche sieht alles korrekt aus. Nachteil an Word 2003 ist halt nur, dass das Einstellen der Absatzformate nicht wirklich bequem läuft.

Mich würde mal interessieren, wie du das Syntaxhighlighting mit Word hinbekommen hast. Kann man da wirklich einstellen, daß bestimmte Schlüsselworte andersfarbig dargestellt werden?

Naja, ich hätte noch erwähnen sollen, dass es kein automatisches Syntaxhighlighting war. Anfangs hatte ich es so gemacht, dass ich mir den Quellcode direkt aus dem VS kopiert hab, der hat dann das Format übernommen. Das hat aber nie hundertprozentig geklappt, hängt irgendwie mit den Einfügeoptionen zusammen und wie Word diese Formatierungen im Text gesetzt hatte.
Ich hab mir dann die "Mühe" gemacht, ein paar Absatzformate zu erstellen (einmal für das Codegerüst, also für normalen, unformatierten Code, dann jeweils eins für Keywords, UserTypes, Numbers, Comments und Strings). Da ich vergleichsweise wenig Code in meiner Doku hab war das auch nicht so viel manuelle Arbeit. Hat sich imo aber ausgezahlt, weil ich es dann sauber mit Absatzformaten hatte, also keine manuellen Formatierungen im Text mehr.

Wen es interessiert, ich hab mal einen Codeblock extrahier und in einem Ein-Seiten-Dokument gespeichert und hier als Anhang hochgeladen.
Wie gesagt, es ist manuelle Arbeit nötig, für meine Bedürfnisse damals hat es jedenfalls gereicht.

Die Plugin-Idee von Schamese finde ich übrigens auch nicht schlecht, hier ist doch die Entwickler-Hochburg, kann doch mal einer angehen, dieses Vorhaben. 😉

01.06.2010 - 15:17 Uhr

Na gut, mit Word 2003 würde es wahrscheinlich Kompatibilitätsprobleme geben...

Wie du willst, ich halte es jedenfalls nicht für klug, Word zu boykottieren. Und das sage ich, nachdem ich Word lange Zeit boykottiert hab. Wenn man sich ein bisschen eingearbeitet hat, taugt das Programm richtig was. 😉

01.06.2010 - 15:02 Uhr

Bevor ich wirklich in Office einsteige und mich mit absatzformatierungen auseinandersetze, kann ich auch latexprofi werden. Außerdem will ich wirklich codefragmente direkt in dem texteditor schreiben, damit die Tabs aber richtig interpretiert werden muss jede zeile als eigener absatz stehen und das ist nicht unbedingt handlich.

So kompliziert ist das auch wieder nicht, ich hatte es mir auch schlimmer vorgestellt. 😉
Und wie gesagt, ich hab dir ja den Vorschlag gemacht, dir meine Vorlage zur Verfügung zu stellen, da hast du eigentlich so gut wie keinen Aufwand mehr, du musst die Absatz-/Zeichenformate lediglich auf die Absätze/Texte anwenden. Mein Angebot steht jedenfalls.

01.06.2010 - 14:29 Uhr

Mit welcher Word-Version ist das denn "einfach die hölle"? Ich habe die Projektdokumentation meines Abschlussprojekts (Fachinformatiker-Ausbildung) mit Word 2007 ziemlich gut hinbekommen. Hat ein bisschen gedauert, bis ich die Absatz- und Zeichenformate durchgeblickt hab (habe Sachen, die gestalterisch anspruchsvoll sind zuvor immer in InDesign gemacht, aber darauf wollte ich in diesem Fall verzichten, hätte ich wegen Zeitdruck nicht geschafft), aber danach ging es eigentlich ziemlich easy. Sogar mit Syntaxhighlighting, das dokumentenübergreifend über Absatzformate per Klick angepasst werden kann.

Wenn du willst schreib mir eine persönliche Nachricht, dann kann ich dir das Dokument mit den Vorlagen schicken, vielleicht kannst du damit etwas anfgange (will es hier nicht online stellen weil die Ausbildung noch nicht komplett abgeschlossen ist und die Projektarbeit noch bei den Prüfern vorliegt...)

31.05.2010 - 22:20 Uhr

Wenn die Parameterlisten tatsächlich unerträglich lang werden, solltest Du ggf. Deine Architektur nochmal überdenken.

Das war mein aller erster Gedanke... So viele Abhängigkeiten untereinander sind auf jeden Fall nicht gut. Schau dir mal das Konzept der Event-Based-Components an. Habe zwar noch nicht praktisch mit EBCs gearbeitet, aber von der Theorie her klingt das alles (für mich jedenfalls) mehr als cool. 😃
Sollte auf jeden Fall helfen, die ganzen Abhängigkeiten zu entfernen.

Ansonsten würde ich aber zu der Konstruktor-Variante greifen. Was spricht denn gegen besonders lange Parameterlisten???

31.05.2010 - 17:44 Uhr

Dankeschön für den Converter, hat mir eine Menge Tipparbeit gespart! 🙂

23.05.2010 - 17:52 Uhr

Auch auf die Gefahr hin gleich wüst beschimpft zu werden :

Bei so kleinen DB Projekten sind Access DB Dateien recht gut zu handeln. Und die passende runtime dafür hast du mit den .Net Framework schon installiert.

welche vorteile hat access denn sql ce gegenüber? (außer die minimal leichtere distribution)

23.05.2010 - 13:15 Uhr
  
        private void menuItemDelete_Click(object sender, EventArgs e)  
        {  
            CategoryList.Remove((categories)listBox1.SelectedItem);  
            listBox1.Items.Remove(listBox1.SelectedItem);  
        }  

Der Fehler ist doch ziemlich eindeutig?? Du löscht zuerst das categories-Objekt aus deiner CategoryList-Collection und anschließend versuchst du dieses Objekt, auf das die ListBox (bzw. das SelectedItem) verweist, aus der ListBox zu löschen, was natürlich nicht geht, weil das Objekt schon aus der Quell-Auflistung entfernt wurde.

21.05.2010 - 14:32 Uhr

Ich denke es ist nicht ganz richtig, die Schuld an schlecht wartbarem (oder evolvierbarem, wie es bei CCD heißt) Code nur den Betriebswirten zu geben. Klar, auf Architekturebene kann man als einzelner Entwickler nicht viel machen, aber man kann auch abseits dessen um guten Code bemüht sein. Wer die CCD-Prinzipien und -Praktiken soweit umsetzt, wie es ihm im Rahmen des Projekts möglich ist, wird die Codequalität schon erheblich steigern können.

Die Ausrede alá "Ich würde gerne sauberen/guten Code schreiben, wenn ich könnte/dürfte" würd ich da nicht gelten lassen. Man sollte sich in erster Linie immer an die eigene Nase fassen und darauf achten, das beste aus der gegebenen Situation zu machen. Und letztlich muss man auch zugeben können, dass man auch nicht der Super-Duper-Programmierer ist der alles richtig machen könnte wenn er die Zeit dazu bekäme. Oft fehlt es einem einfach am Know-how und das sollte man sich selber eingestehen können.

Zum Thema allgemein noch: Bei mir in der Firma sieht's zwiegespalten aus. Bei den Projekten, die ich alleine bearbeite, versuche ich so gut wie möglich nach CCD zu arbeiten und eine gute, komponentenorientierte Architektur zu erstellen.
Wenn ich dann aber einige ältere Projekte aufmachen muss wird's teilweise sehr haarsträubend...

20.05.2010 - 09:09 Uhr

Wenn es handgezeichnet aussehen soll schau dir mal das von Balsamiq an.

würde ich auch sagen. balsamiq ist für deine Anforderungen wie gemacht. 😃

16.05.2010 - 14:48 Uhr

Hallo #coder#,

hatte vor kurzem das gleiche Problem. Der Fehler war, dass ich die Methode, die vom ACE aufgerufen werden soll, in der Code-Behind-Datei (also die ASPX.CS-Datei) hatte (genau wie du es hast). Nachdem ich sie per script-Tag in die ASPX-Seite gepackt hatte, funktionierte es einwandfrei.

So würde das in Code-Form aussehen:

<script runat="server">
    <WebMethod()> _
    <ScriptMethod()> _
    Public Shared Function GetCompletionList(ByVal prefixText As String, ByVal count As Integer) As String()
        ' Hier deine Methode
    End Function
</script>

EDIT: Die Methode ist bei mir VB-Code, also einfach entsprechend anpassen. 😉

So hatte es bei mir dann geklappt. Hoffe es hilft dir.

Grüße,

Isaac

15.05.2010 - 23:47 Uhr

Es gibt auch direkt vom Hersteller die kompilierten Assemblies: http://pdfsharp.codeplex.com/releases/view/37054 (erster Link unter "Other Available Downloads")

Nur so zur Info. 😉

13.05.2010 - 18:54 Uhr

Sieht echt gut aus, wenn nicht alles Deutsch wäre wär es auch prima zu verwenden 😉

in wie weit schränkt eines das ein?
und überhaupt, ist das eh total schwachsinnig. gib mir mal die englischen begriffe für die deutschen feiertage. man kann's auch echt übertreiben...

07.05.2010 - 16:08 Uhr

Neben dem bereits erwähnten Adblock Plus sind für mich persönlich folgende Add-Ons unverzichtbar:

Download Statusbar
Bequeme Download-Verwaltung über die Statusleiste. Was andere Browser von Haus aus bieten muss man im Firefox erst nachrüsten, find's aber ok.

FireFTP
Zugriff auf FTP-Server. Mehere Konten verwaltbar. Sehr praktisch, imo.

IE Tab 2 (FF 3.6+)
Für jeden Webentwickler ein Muss. Damit kann man einen Tab per Klick in der IE-Rendering-Engine öffnen oder auch bestimmte Seiten, z.B. die Update-Seiten von Microsoft, die ja ActiveX benötigen, so einstellen, dass sie immer mit der IE-Engine geöffnet werden.

Web Developer
Ebenfalls unverzichtbar für Webentwickler. Bietet zahlreiche Werkzeuge um sich alle erdenklichen Infos auf einer Website zu holen oder irgendwelche Fehler zu finden.

07.05.2010 - 15:55 Uhr

Du hast beim Aufbau des Live-Bilds 200*200 (=40.000) GetPixel- und SetPixel-Aufrufe und das dauert entsprechend lange.

Schau dir mal diese Klasse hier an: Bitmap-Manipulation (MemBitmap)

Ansonsten würde könnte man das Erzeugen des Live-Bilds auch asynchron umsetzen, damit das Setzen des Label-Textes und das Erzeugen des Live-Bilds sich nicht gegenseitig behindern.

07.05.2010 - 15:34 Uhr

Was mich aber dann wundert: Das Live-Bild ist vollkommen ruckelfrei und flüssig - warum sind es die Koordinaten dann nicht? Jemand eine Idee, was ich am Code ändern könnte? Es ist nichtmal flüssig, wenn ich die Koordinatenzuweisung und Status_ausgeben(x, y); mit in die for-Schleife nehme, er die also eigentlich ständig ausführen müsste?

Das Live-Bild aktualisierst du mit pictureBox2.Refresh(), aber der Labeltext wird erst ausgeführt wenn er die Methode pictureBox1_MouseMove verlässt, was aber erst passiert, wenn sich die Maus nicht mehr bewegt. Wenn du nach der Methode Status_ausgeben(x, y) ein Application.DoEvents() einfügst müsste sich das Label auch aktualisieren.

07.05.2010 - 15:20 Uhr

Also bei mir wird der Text auf dem StatusLabel korrekt aktualisiert und gibt die Änderungen der Mauskoordinaten flüssig wieder.
Das Problem bei dir ist wahrscheinlich dass deine Status_ausgeben-Methode einfach zu lange braucht. Also würde ich entweder hier ansetzen oder notfalls ein Application.DoEvents direkt nach dem setzen des Label-Textes. Ist aber in deinem Fall nur eine Notlösung, die Problemursache liegt wo anders.

05.05.2010 - 10:47 Uhr

Danke, das kenn ich schon =)
Außerdem kostet das was oder?

Die Docking-, Workspace-, Navigator und Ribbon-Komponenten kosten was, ja. Aber das Basis-Toolkit ist kostenlos. 🙂

04.05.2010 - 18:19 Uhr

Mein Ziel ist es sowas zu erstellen:
siehe Anhang

Also, falls es dich interessiert, so etwas (ähnliches) gibt es schon:
Krypton Toolkit (Farbpalette "Sparkle - Blue")

04.05.2010 - 18:00 Uhr

Entweder könntest du diese Liste über ein public Property für die aufrufende Klassenbibliothek verfügbar machen oder die Form stellt ein Event zur Verfügung in dem dessen EventArgs du die Liste zurückgeben kannst. Das Event würde dann beim Button-Klick ausgelöst werden und deine Klassenbibliothek würde das Event abonnieren und entsprechend darauf reagieren.

03.05.2010 - 12:18 Uhr

Ich schließe mich den Freaks hier an. 🙂

26.04.2010 - 10:05 Uhr

Sieht nicht schlecht aus!

Habe es noch nicht hinreichend getestet aufgrund von Zeitmangel aber ein kleiner Bug ist mir doch schon aufgefallen: Löscht man ein gruppiertes Element, wird das Element zwar logisch gelöscht, "physisch" ist es aber noch auf der Zeichenfläche vorhanden.

Ich schau's mir ein ander mal genauer an. 😃

16.04.2010 - 18:48 Uhr

Aber dazu kommt ja noch das Herunterladen und Installieren! 😛

16.04.2010 - 18:31 Uhr

Hey m0rius,

nette Idee. Aber: Bis ich die Aufwand/Nutzen-Schwelle fürs Skript überschritten habe vergehen noch ein paar Jahre, deswegen lass ich's lieber. 😉

(Und ja, natürlich verwende ich Firefox.)

Grüße,
Isaac

16.04.2010 - 18:00 Uhr

Wenn du links aus der Liste einen Smilie wählst, ändert sich die Option automatisch. Das finde ich durchaus eine sinnvolle und gute Lösung.

Ich weiß, habe ich schon im von herbivore verlinkten Thread gelesen. Das Problem ist nur, dass ich die Smileys nur in den seltensten Fällen über die Smiley-Box links einfüge, sondern einfach in den Texteditor tippe. 🙂

16.04.2010 - 13:34 Uhr

Desweiteren kann die Datei auch für andere Zwecke als dem speichern von Einstellungen dienen, zum Beispiel könnten darin Spielstände oder Highscores etc. gespeichert werden.

Dem Argument halte ich einfach mal das Single-Responsibility-Prinzip entgegen. 🙂

Settings werden versionsbezogen gespeichert. Gibt es eine neue Version der Anwendung, stehen die Einstellungen der alten Version nicht mehr ohne weiteres zur Verfügung.

Also für mich ist der Aufruf von Settings.Upgrade() und ein setzen einer zusätzlichen Property Upgraded kein nennenswerter Aufwand... 😉

15.04.2010 - 15:45 Uhr

Wieso sollte es einen Entwickler kümmern, wo genau die Konfig-Datei der Anwendung gespeichert wird? Das ist doch ein Implementierungsdetail, um das ich mich als Programmierer gar nicht kümmern müssen möchte. Wenn ich die .NET-eigenen Konfig-Möglichkeiten nutze, sorgt die Runtime (nehme ich an) dafür, dass die Datei an einem gültigen Ort abgelegt ist, auf den der Benutzer auch Zugriff hat. Da muss ich nichtmal mit Schreibrechten rumplagen...

Kannst du mir da ein sinnvolles Einsatzszenario nennen? 😃

10.04.2010 - 22:12 Uhr

Ich wüsste jetzt gar nicht, dass es in PHP eine fertige Funktion für Salted Hashs gäbe. Kommt also höchstwahrscheinlich auf die konkrete Umsetzung an. Weiß aber auch nicht genau, wie vBulletin hier vorgeht. Müsstest du irgendwie in Erfahrung bringen, zur Not per Trial and Error. So viele Möglichkeiten dürfte es da ja nicht geben?

09.04.2010 - 18:31 Uhr

Hallo Herbivore,

du begründest deine Entscheidung, Smileys global zu deaktivieren damit, dass es mit aktivierten Smileys häufiger vorkommt, dass Text zu einem Smiley umgewandelt wird, der eigentlich kein Smiley sein soll (Beispiel: VS 2008)

Das Deaktivieren der Smileys auf globaler Ebene ist demnach eher Symptombekämpfung als Ursachenbehebung, denn das eigentliche Problem ist ja offensichtlich der Smileyparser der Forensoftware (phpBB3 macht seinen Job da z.B. besser).

Aber deswegen extra die Forensoftware anpassen/korrigieren würde ich an deiner Stelle auch nicht, verlangt wohl auch keiner von dir.

Trotzdem fände ich eine Einstellmöglichkeit auf Anwenderebene sinnvoller. Deine Argumentation mit der Voreinstellung bei Zitaten kann ich nicht nachvollziehen. Der Beitrag, der einen anderen zitierten Beitrag enthält, wäre nach meiner Auffassung immer so eingestellt, wie es der zitierende User im Profil festgelegt hat (ist ja schließlich sein Beitrag). Somit würde sich diese Problematik nicht ergeben.

Naja, wie dem auch sei, muss ich halt damit leben. 🙂

Grüße,

Isaac

08.04.2010 - 22:29 Uhr

Was entfernt auch noch zu diesem Thema passt: Tell, don't ask