Autor Beitrag
VampireSilence
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109
Erhaltene Danke: 5


C# (VS 2008 Express), PHP/MySQL, Windows XP
BeitragVerfasst: Mo 15.08.11 18:05 
Hallo Zusammen,

ich möchte euch heute mal ein Programm von mir vorstellen, bei dem ihr mir sogar unwissendlich geholfen habt. :)
(Stichtwort: "Unbekannter Fehler" und "Multiple Debugging Sessions")

Nun aber zum Wesentlichen.

Zusammenfassung
MultiPaint ist eine Multi-User Paint Applikation, mit der Grafiken von mehreren Benutzern zugleich erstellt werden können.

Zielgruppe
MultiPaint richtet sich an Benutzer, die zur Unterstützung von digitaler Kommunikation (Chat, Skype, Telefon) einen grafischen Informationsaustausch mit ihrem Gesprächspartner wünschen, wie beispielsweise um Jemandem die Hausaufgaben zu erklären, oder in WOW den Weg durch einen Raid zu beschreiben. Auch vertrauliche Dinge sind damit möglich.

Features
Die grafischen Möglichkeiten sind zunächst auf simple Aktionen wie Kreise und Rechtecke beschränkt. Gegen Photoshop oder Gimp ist es daher auf deutsch gesagt ein Furz, aber das war auch garnicht mein Ziel. Das Schlüssel-Feature besteht darin, dass beliebig viele Personen gemeinsam ein Bild erstellen und live jede Aktion der Anderen verfolgen können. Die populärsten Bildformate werden unterstützt.

Installation/Deinstallation
Das heruntergeladene Archiv muss nur entpackt werden und enthält auch nur eine einzige Datei (Standalone-EXE). Diese kann direkt ohne Installation gestartet und verwendet werden.
Zur Deinstallation muss diese Datei lediglich wieder gelöscht werden. Es werden weder Registry-Einträge, noch Konfigurationsdateien erstellt.
Die Verwendung als portable Applikation ist somit möglich.

Technische Details
Die Netzwerkkommunikation wird über eine klassische Server-Client-Struktur realisiert. Dabei kann ein Server jedoch zugleich Client eines anderen Servers sein. Es kann also theoretisch eine hirarchische Knotenstruktur aufgebaut werden. Um MultiPaint vertraulich verwenden zu können, wird jeder Server mit einem Passwort geschützt. Die zusätzliche Verschlüsselung des Datenverkehrs, sowie eine Kompression sind in einer der nachfolgenden Versionen angedacht.
Das Bild selbst wird zunächst über Werkzeuge erstellt, die intern als Makro gespeichert werden. Jene Makros werden dann als Datenpakete an den verbundenen Server und/oder die Clients versendet. Wird ein Bild beispielsweise in seiner Größe verändert (Form_Resize()), so werden diese Makros der Reihe nach erneut abgespielt, sodass ein zunächst unvollständig sichtbarer Kreis nun sichtbar wird, ohne abgeschnitten zu werden (so wie man es zB. von Windows-Paint kennt).

Bekannte Probleme
Stift. Das freie Zeichnen per "Stift"-Werkzeug, kann bei zu langsamen Internetverbindungen dazu führen, dass die ankommende Linie nun mehrfach unterbrochen (gestrichelt) ist. Ich habe leider noch keine Lösung dafür gefunden.
Transparenz. Wird ein transparenter Bildbereich mit Hilfe des Auswahlrechtecks kopiert, wird die transparente Fläche mit der Farbe RGB(0, 0, 255) unterlegt. Mir ist noch nicht ganz klar, wieso das geschieht und ich habe noch keine Lösung dafür gefunden. Aus optisches Gründen, werden die betreffenden Flächen fürs Erste weiß grundiert. (Notlösung)

Geplante Features
- Datenverkehr: Datenkompression (GZip)
- Datenverkehr: Datenverschlüsselung (MPE-1)
- Freies Makro-Management, sowie erforderliche Netzwerkkomponenten

Changelog
Version 1.1.1.0 (16.08.2011 01:05)
Bugfix: Absturz der Clients beim Öffnen eines Bildes auf einem Server behoben.
Bugfix: Menüpunkt Datei>Beenden funktioniert nun.
Korrektur: Sicherheitsabfrage beim Beenden korregiert.
Bugfix: Beenden eines nicht gestarteten Servers führt nicht mehr zum Absturz.
Bugfix: Trennen eines nicht verbundenen Clients führt nicht mehr zum Absturz.
Korrektur: Dialog "Einstellungen" wird nun nicht mehr in der Taskbar angezeigt.
Makeover: Werkzeug "Farbwähler" wurde erweitert und kann nun auch für die Hintergrundfarbe angewendet und abgebrochen werden. Die Wahl eines anderen Werkzeugs führt nun zum Abbruch.
Makeover: Menü "Datei" wurde mit einigen Icons aufgehübscht.
Netzwerkprotokoll: Checkbyte zur Identifikation von unvollständigen Übertragungen hinzufügt.

Version 1.1.2.0 Alpha (23.08.2011 21:54)
Bugfix: Sicherheitsabfrage beim Erstellen oder Öffnen eines neuen Bildes, sofern noch ungespeicherte Änderungen vorhanden sind.
Korrektur: Prozessorbelastung gesenkt.
Korrektur: Eigene Meldung beim Öffnen ungültiger Dateiformate hinzugefügt.
Makeover: Werkzeug "Auswahlrechteck" wurde ergänzt und sein Verhalten verändert.
Sonstiges: Menü "Bearbeiten" mit üblichen Funktionen hinzugefügt.
Sonstiges: Manager für das Bearbeiten und Verwalten von Makros hinzugefügt.
Hinweis: Assistent für das Bearbeiten von Makros steht noch aus.

Download-Link
Version 1.1.0.0: rapidshare.com/files...ltiPaint-1-1-0-0.rar
Version 1.1.1.0: rapidshare.com/files...ltiPaint-1-1-1-0.rar
Version 1.1.2.0: rapidshare.com/files...nt-1-1-2-0-Alpha.rar (Alpha)

Feedback
Es wäre natürlich toll, wenn ihr mir etwas Feedback geben könntet. Welche Werkzeuge vermisst ihr ? Welche Fehler treten auf ? Und wie findet ihr das, was bereits verfügbar ist und die Idee an sich ?

Ich freu mich auf eure Antworten. :)

mfg
- VampireSilence


Zuletzt bearbeitet von VampireSilence am Di 23.08.11 22:13, insgesamt 2-mal bearbeitet
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mo 15.08.11 19:12 
Hallo VampireSilence,

cooles Projekt! Erinnert mich an mein Paint# - nur habe ich keinen Netzwerkmodus.

Beim Starten kommt allerdings gleich
MultiPaint_-_Reactor
Ist dies beabsichtigt?

Und dann sind mir noch kleine Fehler aufgefallen:
- Datei/Neu wird nicht zum Client übertragen
- bei Datei/Öffnen eines Bildes ist der Client abgestürzt ("Windows hat einen Fehler festgestellt" - bla bla ;-))
- durch den "Stift"-Bug funktioniert dann auch das Farbfüllen auf dem Client nicht korrekt
- Datei/Beenden hat keine Wirkung (nothing happens)
- Beim Beenden mittels Kreuz rechts oben kommt dann ja noch einen Sicherheitsabfrage. Warum sind dort allerdings 3 Buttons: Ja, Nein und Abbrechen? Nein und Abbrechen sind doch identisch, oder?
- Beim direkten Starten und sofortigem Beenden (ohne eine Aktion ausgeführt zu haben) kommt trotzdem obige Sicherheitsabfrage
- bei den Einstellungen kommt es bei "Beenden" zu einer "NullReferenceException", falls man noch nicht den Server gestartet hat (selbiges beim Client "Trennen"!)
- "Bild in höchster Qualität rendern" blockiert die GUI für 1 bis 2 Sekunden

Und außerdem noch diese Unschönheiten:
- "Einstellungen"-Dialog wird als eigenes Fenster in der TaskBar angezeigt (m.E. nicht notwendig, d.h. "ShowInTaskbar = false" ;-))
- "Auswahl: Rechteck" kopiert sofort (ohne explizite Nachfrage bzw. Str+C) ins Clipboard
- "Farbmatrix anwenden" ändert irgendwie sofort das Bild (aus rot wird türkis) - beim 2. Mal geht dies dann wieder in die andere Richtung. Ein "Abbechen" wäre ganz nett.
- beim Farbwähler kann man nur für die linke Taste auswählen und es wäre schön, wenn man die Auswahl auch wieder abbrechen könnte, z.B. mittels ESC oder Auswahl eines anderen Elements aus der ToolBox (bisher wird dann einfach die zuletzt anvisierte Farbe übernommen)

Und zuletzt noch eine Frage:
wie hast du die "Farbfüllung" programmiert (da GDI+ ja kein Abfragen der Pixelfarbe ermöglicht)?
Einloggen, um Attachments anzusehen!
Oliver M.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 109
Erhaltene Danke: 1

Win 8 CP
VS 11 Beta
BeitragVerfasst: Mo 15.08.11 19:51 
Sehr schön, sehr schön, wirklich!

Aber es gibt noch ein pasr Sachen die etwas komisch sind oder praktisch wären:
  • Wenn ich das Programm starte, kommt eine seltsame Fehlermeldung (Fehlermeldung.bmp)
  • Ich denke es wäre besser wenn Datei|Beenden funktionieren würde...
  • Ich finde es ein bisschen schade das man die Linienstärke nur unter Linie endern kann. Ich denke es wäre einfacher wenn es einen Spezialbutton dafür geben würde.
  • In den Einstellungen gibt es eine TextBox wo man eine IP-Adresse einträgt. Wenn du sie durch eine MaskedTextBox ersetzen würdest...
  • Wenn man das Einstellungen Dialogfeld öffnet und Netzwerk|Beenden oder Netzwerk|Trennen klickt, kommt eine System.NullReferenceException (Siehe Ausnahme.bmp und Ausnahme.txt). Es wäre klasse wenn du if (??? == null) return; oder so einfügen könntest.
  • Wenn man das Programm mit einer ungespeicherten Datei schließt kommt ein Dialogfeld mit Ja | Nein | Abbrechen. Aber Nein und Abbrechen bewirken das selbe!

Sonst: Ein super Programm!!!! Bravo!

Und wenn du noch ein paar Bugs raus wirfst, würde ich, wenn du willst, das Programm für dich ins Englische übersetzen damit noch mehr Leute so ein gutes Programm benutzen können. Ich bin nämlich halber Engländer.

P. S.: keine Angst! Das war bestimmt nicht der letzte Bug-Report von mir.
Einloggen, um Attachments anzusehen!
VampireSilence Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109
Erhaltene Danke: 5


C# (VS 2008 Express), PHP/MySQL, Windows XP
BeitragVerfasst: Mo 15.08.11 21:01 
user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
cooles Projekt! Erinnert mich an mein Paint# - nur habe ich keinen Netzwerkmodus.

Danke. :)

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Beim Starten kommt allerdings gleich
[Bild: MultiPaint_-_Reactor]
Ist dies beabsichtigt?

Ja, das ist ein Tool mit dem man eingebettete Ressourcen komprimieren und die Geschwindigkeit der Assembly beschleunigen kann (und noch ein paar weitere Spielereien), aber mir ist die Lizenz dafür zu teuer. ^^

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Und dann sind mir noch kleine Fehler aufgefallen:
- Datei/Neu wird nicht zum Client übertragen

It's not a Bug, it's a Feature. Wenn nämlich ein Benutzer auf die Idee kommt, das zu tun, würde er damit die Bilder aller Anderen löschen und die wollen das vielleicht nicht. Deshalb finde ich, das soetwas verhindert werden muss, sonst geht irgendwann vielleicht eine Menge Arbeit verloren, nur weil einer sich verklickt oder sogar beabsichtigt Unfug treiben will.

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
- bei Datei/Öffnen eines Bildes ist der Client abgestürzt ("Windows hat einen Fehler festgestellt" - bla bla ;-))

Behoben. Hab an dieser Stelle vergessen ein paar Parameter anzugeben.

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
- durch den "Stift"-Bug funktioniert dann auch das Farbfüllen auf dem Client nicht korrekt

Ja, das lässt sich auf Grund des Makro-Verfahrens leider nicht verhindern. Bis ich den Stift gefixt habe, sollte man daher besser auf gerade Linien zurückgreifen.

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
- Datei/Beenden hat keine Wirkung (nothing happens)
- Beim Beenden mittels Kreuz rechts oben kommt dann ja noch einen Sicherheitsabfrage. Warum sind dort allerdings 3 Buttons: Ja, Nein und Abbrechen? Nein und Abbrechen sind doch identisch, oder?

Stimmt, an alles habe ich gedacht, nur ans Beenden nicht. ^^
Der Dialog ist nun auch korregiert.

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
- Beim direkten Starten und sofortigem Beenden (ohne eine Aktion ausgeführt zu haben) kommt trotzdem obige Sicherheitsabfrage

Kann ich leider nicht reproduzieren. Sicher, dass du nicht zufällig auf die Zeichenfläche geklickt hast ? Einzelne Pixel sieht man ja manchmal garnicht. Achte am besten einfach mal auf den Programmtitel, der bekommt nämlich ein Sternchen (*Dateiname), wenn eine Änderung erfolgt ist.

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
- bei den Einstellungen kommt es bei "Beenden" zu einer "NullReferenceException", falls man noch nicht den Server gestartet hat (selbiges beim Client "Trennen"!)

Behoben. Bin garnicht auf die Idee gekommen, sowas mal zu testen^^. Hast aber Recht und nun erzeugt das keine Fehler mehr.

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
- "Bild in höchster Qualität rendern" blockiert die GUI für 1 bis 2 Sekunden

Ist richtig, in dieser Zeit werden die Makros mit den besten GDI-Einstellungen nochmal wiederholt. Diese Aktion ist eher als Finish zu verwenden, wenn man das Bild schließlich speichern möchte. Ansonsten empfehle ich den Rest im Entwurfs-Modus zu tun.

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Und außerdem noch diese Unschönheiten:
- "Einstellungen"-Dialog wird als eigenes Fenster in der TaskBar angezeigt (m.E. nicht notwendig, d.h. "ShowInTaskbar = false" ;-))

Behoben. Eine kleine Altlast aus Tagen, in denen das Fenster noch nicht modal war. :)

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
- "Auswahl: Rechteck" kopiert sofort (ohne explizite Nachfrage bzw. Str+C) ins Clipboard

Ich persönlich finde, dass dieses Verhalten Zeit spart. Wenn man es einmal weiss gibt es dann ja auch keine "böse" Überraschung mehr.

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
- "Farbmatrix anwenden" ändert irgendwie sofort das Bild (aus rot wird türkis) - beim 2. Mal geht dies dann wieder in die andere Richtung. Ein "Abbechen" wäre ganz nett.

Das ist nur eine Vorschau, damit du die Änderungen an deiner Matrix verfolgen kannst. Wenn du den Vorgang abbrichst, wird das Original wiederhergestellt. Die Standardwerte entsprechen übrigens der Invertierung (Weiß -> Schwarz, Rot -> Türkis, Gelb -> Blau, etc.). Abbrechen kannst du das ganz einfach, indem du den Dialog über "x" beendest.

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
- beim Farbwähler kann man nur für die linke Taste auswählen und es wäre schön, wenn man die Auswahl auch wieder abbrechen könnte, z.B. mittels ESC oder Auswahl eines anderen Elements aus der ToolBox (bisher wird dann einfach die zuletzt anvisierte Farbe übernommen)

Behoben. Sehr guter Einwand. Habe ich direkt umgesetzt.

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Und zuletzt noch eine Frage:
wie hast du die "Farbfüllung" programmiert (da GDI+ ja kein Abfragen der Pixelfarbe ermöglicht)?

Doch klar, SetPixel() und GetPixel() sind doch vorhanden. Es gibt aber noch einen performanteren Weg, den ich auch selbst gewählt habe, über den System.Drawing.Imaging-Namespace, dort gibt es die BitmapData (Bitmap.LockBits(), Bitmap.UnlockBits()) und damit kannst du sowas sehr schnell umsetzen. Wenn der Code vorzeigbar ist, werde ich ihn vielleicht komplett online stellen. Momentan erinnert er leider noch stark an eine Patchwork-Decke. ^^

user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
Sehr schön, sehr schön, wirklich!

Danke, danke. ^^

user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
Aber es gibt noch ein pasr Sachen die etwas komisch sind oder praktisch wären:
  • Wenn ich das Programm starte, kommt eine seltsame Fehlermeldung (Fehlermeldung.bmp)

Siehe oben. (gleicher Post)

user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
  • Ich denke es wäre besser wenn Datei|Beenden funktionieren würde...

  • Siehe oben.

    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
  • Ich finde es ein bisschen schade das man die Linienstärke nur unter Linie endern kann. Ich denke es wäre einfacher wenn es einen Spezialbutton dafür geben würde.

  • Hm, eigentlich finde ich es so wie es ist ganz gut. Aber ich behalte es mal im Hinterkopf, vielleicht fällt mir noch ne bessere Lösung ein.

    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
  • In den Einstellungen gibt es eine TextBox wo man eine IP-Adresse einträgt. Wenn du sie durch eine MaskedTextBox ersetzen würdest...

  • Wozu genau soll das denn dienen ? Kann mir da gerade keinen Reim drauf machen.

    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
  • Wenn man das Einstellungen Dialogfeld öffnet und Netzwerk|Beenden oder Netzwerk|Trennen klickt, kommt eine System.NullReferenceException (Siehe Ausnahme.bmp und Ausnahme.txt). Es wäre klasse wenn du if (??? == null) return; oder so einfügen könntest.

  • Siehe oben. ^^

    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
  • Wenn man das Programm mit einer ungespeicherten Datei schließt kommt ein Dialogfeld mit Ja | Nein | Abbrechen. Aber Nein und Abbrechen bewirken das selbe!


  • Siehe oben.

    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
    Sonst: Ein super Programm!!!! Bravo!

    Danke, mensch mit soviel Lob habe ich garnicht gerechnet. :D

    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
    Und wenn du noch ein paar Bugs raus wirfst, würde ich, wenn du willst, das Programm für dich ins Englische übersetzen damit noch mehr Leute so ein gutes Programm benutzen können.

    Eigentlich eine sehr gute Idee. Wenn der Code online ist, kannst du ihn dir ja runterladen und ich gebe dir ne Veränderungs-Veröffentlichungs-Lizenz (oder wie immer sowas heisst, muss mich da erstmal reinlesen^^)

    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
    Ich bin nämlich halber Engländer.

    Du armer Kerl, wo ist deine andere Hälfte ? :o :lol: (kleiner Scherz)

    *puh* Ok, alles beantwortet. Aber mit der Revision warte ich mal noch ein bisschen, damit sich die 1.2 auch lohnt. :)

    mfg
    - VampireSilence
    jaenicke
    ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
    Beiträge: 19272
    Erhaltene Danke: 1740

    W11 x64 (Chrome, Edge)
    Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
    BeitragVerfasst: Mo 15.08.11 22:07 
    Gibt es einen Grund warum du das Programm nicht einfach im Forum angehängt hast? Dort würde es länger erhalten bleiben als unter irgendwelchen externen Rapidshare Links. ;-)

    user profile iconVampireSilence hat folgendes geschrieben Zum zitierten Posting springen:
    user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
    - Datei/Beenden hat keine Wirkung (nothing happens)
    - Beim Beenden mittels Kreuz rechts oben kommt dann ja noch einen Sicherheitsabfrage. Warum sind dort allerdings 3 Buttons: Ja, Nein und Abbrechen? Nein und Abbrechen sind doch identisch, oder?

    Stimmt, an alles habe ich gedacht, nur ans Beenden nicht. ^^
    Der Dialog ist nun auch korregiert.
    Der Standardweg wäre:
    "Es sind noch ungespeicherte Änderungen vorhanden. Jetzt speichern? - Ja, Nein, Abbrechen"

    Dort machen die Optionen nämlich Sinn:
    Ja --> Speicherndialog
    Nein --> Beenden
    Abbrechen --> Programm bleibt offen

    Ja, die Idee ist gut. Bisher ging so etwas ja nur online, das Tool dagegen funktioniert ja auch im Netzwerk. Und das auch sehr schnell. Selbst übers Internet ist die Geschwindigkeit gut.

    Ich bin mir zwar noch nicht sicher, ob ich das Tool lieber nehme als Cloud Lösungen im Internet, aber mal schauen. Wenn du noch ein paar mehr Features einbaust... ;-)
    VampireSilence Threadstarter
    ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
    Beiträge: 109
    Erhaltene Danke: 5


    C# (VS 2008 Express), PHP/MySQL, Windows XP
    BeitragVerfasst: Mo 15.08.11 22:25 
    user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
    Gibt es einen Grund warum du das Programm nicht einfach im Forum angehängt hast? Dort würde es länger erhalten bleiben als unter irgendwelchen externen Rapidshare Links. ;-)

    Jep, den gibt es. :P
    Ich habe einen Rapdishare-Account, in dem ich alle meine Downloadangebote sammle. So kann ich die Links auch nochmal woanders posten und habe in meinem Account immer eine Übersicht darüber, wie oft zB. MultiPaint insgesamt heruntergeladen wurde. Und da ich weder Dateien lösche, noch irgendwelche sche**** baue, kann der Account mitsamt den Links als permanent angesehen werden. ;)

    user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:

    Der Standardweg wäre:
    "Es sind noch ungespeicherte Änderungen vorhanden. Jetzt speichern? - Ja, Nein, Abbrechen"

    Dort machen die Optionen nämlich Sinn:
    Ja --> Speicherndialog
    Nein --> Beenden
    Abbrechen --> Programm bleibt offen

    Ja, so habe ich das nun auch umgesetzt.

    user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:

    Ich bin mir zwar noch nicht sicher, ob ich das Tool lieber nehme als Cloud Lösungen im Internet, aber mal schauen. Wenn du noch ein paar mehr Features einbaust... ;-)

    Tja, sag mir, was du haben willst. ;)
    Wenns gut ist, baue ichs ein !

    mfg
    - VampireSilence
    jaenicke
    ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
    Beiträge: 19272
    Erhaltene Danke: 1740

    W11 x64 (Chrome, Edge)
    Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
    BeitragVerfasst: Mo 15.08.11 23:52 
    user profile iconVampireSilence hat folgendes geschrieben Zum zitierten Posting springen:
    Tja, sag mir, was du haben willst. ;)
    Wenns gut ist, baue ichs ein !
    Wirklich wichtig wäre mir wie bei jedem Zeichenprogramm die Möglichkeit meine einzelnen Zeichenbestandteile als Objekte nachträglich verschieben und bearbeiten zu können usw., also so wie bei Google z.B.:
    docs.google.com/draw...urQE4c-iM/edit?hl=de
    VampireSilence Threadstarter
    ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
    Beiträge: 109
    Erhaltene Danke: 5


    C# (VS 2008 Express), PHP/MySQL, Windows XP
    BeitragVerfasst: Di 16.08.11 00:31 
    Das wäre eigentlich nichtmal so schwer umzusetzen. Denn wenn du zB. einen Kreis zeichnest, ist dieser ja als Makro vorhanden und die Liste aller Makros ist auch jederzeit verfügbar. Ich müsste dich also nur die Parameter der Makros sehen und manipulieren lassen und wenn du sie dann wieder abspielst, wäre der Kreis woanders. Das Problem an der Sache ist, dass ich ein komplexes Management-Verfahren implementieren müsste, damit deine Konferenzteilnehmer diese Information dann auch erhalten und die Bilddaten synchron bleiben.

    Momentan ist es so, dass das Makro-Netzwerk-Protokoll nur einen Major-Befehl kennt und das ist der, um Makros anzunehmen und der eigenen Liste hinzuzufügen. Ich müsste also den Befehlssatz um "Makro ändern" und evtl. "Makro löschen" erweitern, um das zu realisieren. Prinzipiell ist das garnicht mal so schwer, aber es wird wohl eine menge Tipperei werden.

    Aber da das bisher alle Bugs und Anregungen zu sein scheinen, lade ich jetzt schonmal die 1.2 hoch, damit die neuen Bugs gefunden werden können. ;)
    In der Zwischenzeit kümmere ich mich dann um das Makro-Management.

    mfg
    - VampireSilence
    VampireSilence Threadstarter
    ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
    Beiträge: 109
    Erhaltene Danke: 5


    C# (VS 2008 Express), PHP/MySQL, Windows XP
    BeitragVerfasst: Di 16.08.11 01:15 
    Update (Hauptpost)
    Habe mich nun doch gegen die Version 1.2 entschieden, da mir die Änderungen nicht groß genug waren. Aber das hole ich spätestens mit der Einführung der geplanten Features nach. Fürs Erste erhält die neue Version die Nummer 1.1.1.

    mfg
    - VampireSilence
    Oliver M.
    ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
    Beiträge: 109
    Erhaltene Danke: 1

    Win 8 CP
    VS 11 Beta
    BeitragVerfasst: Di 16.08.11 16:26 
    user profile iconVampireSilence hat folgendes geschrieben Zum zitierten Posting springen:
    user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
    Und dann sind mir noch kleine Fehler aufgefallen:
    - Datei/Neu wird nicht zum Client übertragen

    It's not a Bug, it's a Feature. Wenn nämlich ein Benutzer auf die Idee kommt, das zu tun, würde er damit die Bilder aller Anderen löschen und die wollen das vielleicht nicht. Deshalb finde ich, das soetwas verhindert werden muss, sonst geht irgendwann vielleicht eine Menge Arbeit verloren, nur weil einer sich verklickt oder sogar beabsichtigt Unfug treiben will.

    Es wäre aber schon gut, wenn man die Zeichenfläche löschen könnte, vielleicht ist man ja mit der einen Sache fertig und möchte etwas anderes Zeichnen. Was passiert eigentlich wenn man das Serverprogramm schleißt? Das dürfte doch ähnliche auswirkungen haben. (Kann leider Netz nicht testen)

    user profile iconVampireSilence hat folgendes geschrieben Zum zitierten Posting springen:
    user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
    - "Auswahl: Rechteck" kopiert sofort (ohne explizite Nachfrage bzw. Str+C) ins Clipboard

    Ich persönlich finde, dass dieses Verhalten Zeit spart. Wenn man es einmal weiss gibt es dann ja auch keine "böse" Überraschung mehr.

    Mmh, ich weis nicht recht. Dann denkt man mal nicht dran und — flutsch da ist der Text weg! (Bei Ausschneiden kann das ganz schön übel sein...)

    user profile iconVampireSilence hat folgendes geschrieben Zum zitierten Posting springen:
    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
    [*]In den Einstellungen gibt es eine TextBox wo man eine IP-Adresse einträgt. Wenn du sie durch eine MaskedTextBox ersetzen würdest...

    Wozu genau soll das denn dienen ? Kann mir da gerade keinen Reim drauf machen.

    Na, das schließt falsche Eingaben aus. Du musst nur die Maske 990\.990\.990\.990 angeben. Kann ich schlecht erklären.

    P. S.: Sorry dass ich nochmal die gleichen Bugs angegeben habe. Ich habe den Text halt Zeitgleich geschrieben und schpäter abgesendet.
    Th69
    ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
    Moderator
    Beiträge: 4764
    Erhaltene Danke: 1052

    Win10
    C#, C++ (VS 2017/19/22)
    BeitragVerfasst: Di 16.08.11 16:44 
    Hallo Oliver,

    du kannst einfach das MultiPaint zweimal (auf einem Rechner) starten und einmal als Server und den anderen als Client (mit "localhost" bzw. 127.0.0.1) verbinden.
    Und wegen der MaskedTextBox: man kann ja auch einen Servernamen bzw. im LAN den Rechnernamen angeben, so daß die Beschränkung nur auf IP-Adresse dann nervig wäre...
    Oliver M.
    ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
    Beiträge: 109
    Erhaltene Danke: 1

    Win 8 CP
    VS 11 Beta
    BeitragVerfasst: Di 16.08.11 17:16 
    user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
    man kann ja auch einen Servernamen bzw. im LAN den Rechnernamen angeben, so daß die Beschränkung nur auf IP-Adresse dann nervig wäre...
    Okay, macht Sinn. Ich nehme es zurück.

    Und ehe dir Lagweilig wird:
    Wofür wird eigentlich die Hintergrundfarbe benutzt? (Edit: Schon gelöst)
    Und wenn man durchsichtig mit dem Stift der Stärke mehr als 1 zeichnen will, bekommt man Überraschende Ergebnisse:
    Bild

    MfG Oliver
    Einloggen, um Attachments anzusehen!
    Th69
    ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
    Moderator
    Beiträge: 4764
    Erhaltene Danke: 1052

    Win10
    C#, C++ (VS 2017/19/22)
    BeitragVerfasst: Di 16.08.11 18:56 
    Hallo VampireSilence,

    du warst ja richtig fleißig - in so kurzer Zeit die Bugs zu bearbeiten. :zustimm:

    Aber zwei kleine habe ich auch noch in der neuen V1.1.1.0:
    - bzgl. direkt starten und beenden hattest du Recht. Wenn man aber einen Doppelklick auf die Titelleiste macht (zum Maximieren), dann wird dies als Änderung erkannt (aber nicht wenn man einen Resize beim Vergrößern/Verkleinern des Fensters macht). Außerdem führt (wie du schon geschrieben hast) ein Klick mit "Stift" oder auch "Linie" direkt zu einer Änderung (*), obwohl jedoch kein einziger Pixel gesetzt wird (habe ich extra mittels Screenshot und Vergrößern überprüft ;-))
    - nach einem Klicken auf Einstellungen / Trennen und danach dann das Einstellungsfenster verlassen und dann Datei/Neu führt zu einer
    ausblenden Quelltext
    1:
    2:
    System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
       bei System.Net.Sockets.TcpClient.get_Connected()


    Und dann noch eine "Unschönheit":
    - ein Wechsel des Tools z.B. von "Stift" oder "Farbwähler" nach "Linie" oder "Rechteck" löscht nicht den StatusBar-Text

    Und das mit dem "Neu" solltest du dir nochmal überlegen (d.h. ich stimme Oliver hier zu).
    Evtl. wäre auch eine Undo/Redo-Funktionalität nicht schlecht. Da du ja alles anscheinend als Makros (innerhalb einer Liste) realisiert hast, müßtest du dann doch nur die letzte Aktion rückgängig machen (bzw. noch besser wäre natürlich eine Multi-Undo/Redo - schließlich heißt dein Programm ja MultiPaint ;-))
    Mein Paint# verwendet dazu extra eine eigene Klasse:
    ausblenden C#-Quelltext
    1:
    2:
    3:
    4:
    5:
    class PaintState
    {
      public Rectangle Rect { get; set; }
      public Image Image { get; set; }
    }

    welche vor jeder Aktion den zu bearbeitenden Ausschnitt speichert (einzig beim Füllen wird z.B. bei mir immer das komplette Bild gespeichert, da ich ja nicht weiß, was genau gefüllt wird).
    VampireSilence Threadstarter
    ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
    Beiträge: 109
    Erhaltene Danke: 5


    C# (VS 2008 Express), PHP/MySQL, Windows XP
    BeitragVerfasst: Di 16.08.11 22:53 
    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
    Es wäre aber schon gut, wenn man die Zeichenfläche löschen könnte, vielleicht ist man ja mit der einen Sache fertig und möchte etwas anderes Zeichnen. Was passiert eigentlich wenn man das Serverprogramm schleißt? Das dürfte doch ähnliche auswirkungen haben. (Kann leider Netz nicht testen)
    Ich glaube wir reden irgendwie aneinander vorbei. Die Zeichenfläche kannst du doch immer und jederzeit löschen. Nur halt nicht die der Anderen. Und du darfst dabei nicht vergessen, dass MultiPaint eine Ergänzung zu bestehender Kommunikation (Telefon/Chat/etc.) darstellen soll, also könnte man dem anderen einfach sagen "Ok, fertig. Neu.". Dieser jedoch hätte dann im Gespräch noch die Chance zB. zu sagen, "Moment, mir fehlt da noch ne Linie" und kann das dann noch tun.

    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
    Mmh, ich weis nicht recht. Dann denkt man mal nicht dran und — flutsch da ist der Text weg! (Bei Ausschneiden kann das ganz schön übel sein...)
    Das kann dir aber auch überall anders passieren, aufpassen musst du also sowieso. Und die Zeit den Text neu zu schreiben, holst du ja durch das hinfällige "STRG+C" dann auch wieder rein. ;)

    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
    Na, das schließt falsche Eingaben aus. Du musst nur die Maske 990\.990\.990\.990 angeben. Kann ich schlecht erklären.

    user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
    Und wegen der MaskedTextBox: man kann ja auch einen Servernamen bzw. im LAN den Rechnernamen angeben, so daß die Beschränkung nur auf IP-Adresse dann nervig wäre...
    /Sign.

    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
    P. S.: Sorry dass ich nochmal die gleichen Bugs angegeben habe. Ich habe den Text halt Zeitgleich geschrieben und schpäter abgesendet.
    Ach, Quatsch ! Verifikation ist Teil des Managements. ;)

    user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
    du kannst einfach das MultiPaint zweimal (auf einem Rechner) starten und einmal als Server und den anderen als Client (mit "localhost" bzw. 127.0.0.1) verbinden.
    Du kannst sogar ein einziges MultiPaint mit sich selbst verbinden, das Zeichnen wird dann nur etwas chaotisch. ^^
    Gerade zu diesem Zweck sind die Einstellungen übrigens voreingestellt, sodass du nur noch Starten/Verbinden musst.

    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
    Und wenn man durchsichtig mit dem Stift der Stärke mehr als 1 zeichnen will, bekommt man Überraschende Ergebnisse:
    Ist doch klar. Das Ende der einen Linie ist der Anfang der Nächsten. Wenn die Makros bald offen liegen, wirst du erkennen, dass es nur konjugierten "line"-Makros sind. Jede Linie hat ein rundes EndCap und dieses überlappt dann und ist somit doppelt so sichtbar.



    user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
    du warst ja richtig fleißig - in so kurzer Zeit die Bugs zu bearbeiten. :zustimm:
    Danke, ich hab ja auch die ganze Zeit nur drauf gewartet. :)

    user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
    Aber zwei kleine habe ich auch noch in der neuen V1.1.1.0:
    - bzgl. direkt starten und beenden hattest du Recht. Wenn man aber einen Doppelklick auf die Titelleiste macht (zum Maximieren), dann wird dies als Änderung erkannt (aber nicht wenn man einen Resize beim Vergrößern/Verkleinern des Fensters macht).
    Stimmt, bei Letzterem hatte ich die Reaktion dafür vergessen. Nun wird beides korrekt als Änderung erkannt.

    user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
    Außerdem führt (wie du schon geschrieben hast) ein Klick mit "Stift" oder auch "Linie" direkt zu einer Änderung (*), obwohl jedoch kein einziger Pixel gesetzt wird (habe ich extra mittels Screenshot und Vergrößern überprüft ;-))
    Stimmt, ich hatte ganz vergessen, dass Linien nicht gezeichnet werden, wenn ihre Punkte identisch sind. Nun erscheint auch der Pixel, der da rechtmäßig hin sollte. ;)

    user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
    - nach einem Klicken auf Einstellungen / Trennen und danach dann das Einstellungsfenster verlassen und dann Datei/Neu führt zu einer
    ausblenden Quelltext
    1:
    2:
    System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
       bei System.Net.Sockets.TcpClient.get_Connected()
    Stimmt, das unter dem TcpClient liegende Socket wurde in so einem Fall nicht erstellt. Mit diesem Verhalten hatte ich nicht gerechnet, aber nun gibt es dafür ein if(). :)

    user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
    Und dann noch eine "Unschönheit":
    - ein Wechsel des Tools z.B. von "Stift" oder "Farbwähler" nach "Linie" oder "Rechteck" löscht nicht den StatusBar-Text
    Das ist auch wieder so eine Sache, die ich ganz bewusst gemacht habe. Denn manchmal sieht man irgendwo nen Krümel auf dem Bildschirm und realisiert zu spät, dass es Text ist, den man mal lesen könnte. Wenn der erstmal weg ist, hat man vielleicht schon vergessen, wie man den jetzt nochmal hervorholen kann, deshalb bekommt die StatusBar nur dann einen neuen Inhalt, wenn auch andere Texte relevant werden. Ansonsten kann man dann noch jederzeit nachlesen, was MultiPaint da von Einem wollte.

    user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
    Und das mit dem "Neu" solltest du dir nochmal überlegen (d.h. ich stimme Oliver hier zu).
    Naja lies auch mal meine Antwort dazu (gleicher Post). Ansonsten könnte ich auch einfach eine Anfrage an die Clients senden und denen dann in einer MessageBox noch die Wahl lassen, ob sie mit dem Löschen einverstanden sind oder eben nicht.

    user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
    Evtl. wäre auch eine Undo/Redo-Funktionalität nicht schlecht. Da du ja alles anscheinend als Makros (innerhalb einer Liste) realisiert hast, müßtest du dann doch nur die letzte Aktion rückgängig machen (bzw. noch besser wäre natürlich eine Multi-Undo/Redo - schließlich heißt dein Programm ja MultiPaint ;-))
    Da hab ich bereits was viel Besseres für. Hotkeys an sich kann ich noch einrichten, aber die Funktion an sich ist bereits überholt, denn jedes Makro wird sich einzelnt deaktivieren lassen, sodass Objekte (wie zB. Kreise) versteckt und später wieder angezeigt werden können. Das wiederrum kann man dann ganz einfach als Undo/Redo benutzen, indem man dann das letzte Makro deaktiviert, bzw. reaktiviert.

    user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
    Mein Paint# verwendet dazu extra eine eigene Klasse:
    ausblenden C#-Quelltext
    1:
    2:
    3:
    4:
    5:
    class PaintState
    {
      public Rectangle Rect { get; set; }
      public Image Image { get; set; }
    }

    welche vor jeder Aktion den zu bearbeitenden Ausschnitt speichert (einzig beim Füllen wird z.B. bei mir immer das komplette Bild gespeichert, da ich ja nicht weiß, was genau gefüllt wird).
    Siehe eine Antwort weiter oben. ;)

    Und hier noch ein kleiner Vorgeschmack auf die V1.2.0.0, um euch den Mund wässrig zu machen:
    makros_verwalten
    Bis hier hin bin ich also schonmal. Die Veränderungen an alle Konferenzteilnehmer zu übermitteln ist jetzt auch nur noch eine Frage der Tipperei.
    Einen kleinen Wehrmutstropfen hat das Ganze aber. Die Änderungen am Netzwerkprotokoll und der internen Makrostruktur waren so groß, dass sie jetzt nicht mehr abwärtskompatibel sind.

    mfg
    - VampireSilence
    Einloggen, um Attachments anzusehen!
    Oliver M.
    ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
    Beiträge: 109
    Erhaltene Danke: 1

    Win 8 CP
    VS 11 Beta
    BeitragVerfasst: Mi 17.08.11 16:23 
    user profile iconVampireSilence hat folgendes geschrieben Zum zitierten Posting springen:
    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
    Mmh, ich weis nicht recht. Dann denkt man mal nicht dran und — flutsch da ist der Text weg! (Bei Ausschneiden kann das ganz schön übel sein...)
    Das kann dir aber auch überall anders passieren, aufpassen musst du also sowieso. Und die Zeit den Text neu zu schreiben, holst du ja durch das hinfällige "STRG+C" dann auch wieder rein. ;)
    Aber man kopiert doch nicht nur durch markieren! Man löscht auch oder verschiebt Bildteile :suspect:


    Und nun die neusten Bugs:
    • Egal ob das Bild gespeichert ist: mit Neu geht es flutschen! (Das ist auch ne Idee: Wenn man auf Neu klickt kommt bei allen eine Meldung ob sie das Bild speichern möchten, wo man aber auch abbrechen drücken kann :idea:. Und das Bild absichtlich verwüsten kann man so wie so :wink:)
    • Wenn man Bilder (ob aus der Zwischenablage oder aus einer Datei) einfügt kommen nur wenige am Server/Client an. Warum?
    • Kann mir wer erklären warum ich 100 PU-Auslastung habe, wenn ich die Maus übern Zeichenbereich bewege? Ist das meine Mini-CPU oder ein Bug?
    • Ach und wenn ich ein ungültiges oder nicht lesbares Bild öffne kommt eine Ausnahme die besagt es gäbe nicht genug Arbeitsspeicher :?!?: ?!?

    Das wärs fürs erste mit Bugs.

    EDIT:

    user profile iconVampireSilence hat folgendes geschrieben Zum zitierten Posting springen:
    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
    Und wenn man durchsichtig mit dem Stift der Stärke mehr als 1 zeichnen will, bekommt man Überraschende Ergebnisse:
    Ist doch klar. Das Ende der einen Linie ist der Anfang der Nächsten. Wenn die Makros bald offen liegen, wirst du erkennen, dass es nur konjugierten "line"-Makros sind. Jede Linie hat ein rundes EndCap und dieses überlappt dann und ist somit doppelt so sichtbar.

    Warum der Stift dieses komische Ergebniss von sich gibt, ist mir klar. Man sollte es aber trotzdem ändern. Schließlich ist es nicht was man / der Benutzer erwartet.


    Aber mal als Idee: Wenn ein Programm sich an einen Server anschließt übernimmt es den Inhalt des Servers. (Dann hätten alle das gleiche auf dem Schirm)


    Ich hoffe du kommst nach mit dem Bugs beheben,

    Oliver


    Zuletzt bearbeitet von Oliver M. am Mi 17.08.11 17:46, insgesamt 1-mal bearbeitet
    jaenicke
    ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
    Beiträge: 19272
    Erhaltene Danke: 1740

    W11 x64 (Chrome, Edge)
    Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
    BeitragVerfasst: Mi 17.08.11 17:35 
    user profile iconVampireSilence hat folgendes geschrieben Zum zitierten Posting springen:
    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
    Mmh, ich weis nicht recht. Dann denkt man mal nicht dran und — flutsch da ist der Text weg! (Bei Ausschneiden kann das ganz schön übel sein...)
    Das kann dir aber auch überall anders passieren, aufpassen musst du also sowieso. Und die Zeit den Text neu zu schreiben, holst du ja durch das hinfällige "STRG+C" dann auch wieder rein. ;)
    Du vergisst, dass Windows multitaskingfähig ist. Dein Programm ist nicht das einzige, das läuft...

    Wenn ich aus einem Programm etwas kopiert habe, dann hat da kein anderes Programm, das ich zwischendurch nutze, ohne dass ich das explizit möchte den Inhalt der Zwischenablage zu überschreiben... ;-)

    Für diesen Beitrag haben gedankt: Oliver M.
    FrEaKY
    ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
    Beiträge: 235


    D7
    BeitragVerfasst: Sa 20.08.11 10:29 
    Lustig. Wir hatten die selbe Idee. Ich habe auch schon ein Netzwerk-Zeichenprogramm geschrieben, allerdings war die einzige Funktion mit Pinsel zu zeichnen :-)
    VampireSilence Threadstarter
    ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
    Beiträge: 109
    Erhaltene Danke: 5


    C# (VS 2008 Express), PHP/MySQL, Windows XP
    BeitragVerfasst: Di 23.08.11 22:13 
    So, dann lasse ich mal wieder was von mir hören. Ich beginne mal mit der "Fanpost". ^^

    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
    Und nun die neusten Bugs:
    [*]Egal ob das Bild gespeichert ist: mit Neu geht es flutschen!
    Stimmt, die Sicherheitsabfrage war noch nicht vorhanden. Ist behoben.

    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
    (Das ist auch ne Idee: Wenn man auf Neu klickt kommt bei allen eine Meldung ob sie das Bild speichern möchten, wo man aber auch abbrechen drücken kann :idea:.
    Na genau das meinte ich doch. ;)

    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
    Und das Bild absichtlich verwüsten kann man so wie so :wink:)
    Nein, jetzt nicht mehr. :)

    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
    [*]Wenn man Bilder (ob aus der Zwischenablage oder aus einer Datei) einfügt kommen nur wenige am Server/Client an. Warum?
    Keinen Schimmer, kann ich leider nicht reproduzieren.

    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
    [*]Kann mir wer erklären warum ich 100 PU-Auslastung habe, wenn ich die Maus übern Zeichenbereich bewege? Ist das meine Mini-CPU oder ein Bug?
    Bei mir waren es zwar längst keine 100%, aber mir ist trotzdem gelungen, die Belastung zu senken.

    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
    [*]Ach und wenn ich ein ungültiges oder nicht lesbares Bild öffne kommt eine Ausnahme die besagt es gäbe nicht genug Arbeitsspeicher :?!?: ?!?
    Das passiert leider, weil das Framework keine Kompetenz mitbringt, zu entscheiden, ob ein Bildformat gültig ist oder nicht. Es kommt dann zu einem Compatibily-Falldown, wobei es bei ungünstigen Binärdaten in der Sektion für die Bildmaße (zB. -1) dazu kommen kann, dass das Bild eine Höhe oder eine Breite von 4,1 Mio Pixeln erhält. Beim Versuch die entsprechende BitmapData intern zu erstellen, sprengt das dann leider jeden Rahmen und es kommt zu diesem Fehler. Habe aber eine Lösung dafür gefunden.

    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
    Warum der Stift dieses komische Ergebniss von sich gibt, ist mir klar. Man sollte es aber trotzdem ändern. Schließlich ist es nicht was man / der Benutzer erwartet.
    Ja, das finde ich auch, deswegen steht das ja auch unter "Bekannte Probleme". Wenn du eine Lösung dafür hast, nur her damit. ;)

    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
    Aber mal als Idee: Wenn ein Programm sich an einen Server anschließt übernimmt es den Inhalt des Servers. (Dann hätten alle das gleiche auf dem Schirm)
    Auf keinen Fall. Das würde das gesamte Konzept völlig ruinieren.

    user profile iconOliver M. hat folgendes geschrieben Zum zitierten Posting springen:
    Ich hoffe du kommst nach mit dem Bugs beheben.
    Jep. ;)



    user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
    Du vergisst, dass Windows multitaskingfähig ist. Dein Programm ist nicht das einzige, das läuft...
    Nein, keine Sorge, soetwas würde ich niemals vergessen.

    user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
    Wenn ich aus einem Programm etwas kopiert habe, dann hat da kein anderes Programm, das ich zwischendurch nutze, ohne dass ich das explizit möchte den Inhalt der Zwischenablage zu überschreiben... ;-)
    Das tut es ja auch nicht, wenn du das Werkzeug nicht explizit benutzt. ;)



    user profile iconFrEaKY hat folgendes geschrieben Zum zitierten Posting springen:
    Lustig. Wir hatten die selbe Idee. Ich habe auch schon ein Netzwerk-Zeichenprogramm geschrieben, allerdings war die einzige Funktion mit Pinsel zu zeichnen :-)
    Cool und wenn du es geschafft hast, das ohne Unterbrechungen umzusetzen, verrate mir bitte, wie. ^^



    Und nun noch was zum aktuellen Stand:
    Die Makroverwaltung ist für den offline-Betrieb fertig. Die Rohdaten können bereits beliebig bearbeitet werden, auch die Ansicht im Assistenten funktioniert bereits, die Bearbeitung steht jedoch noch aus. Außerdem habe ich das Verhalten des Auswahlrechtecks dem Mainstream angepasst und direkt passend dazu ein entsprechendes Bearbeiten-Menü erstellt (da kriegt jaenicke endlich seinen Willen). :P

    Das reicht jetzt auch erstmal wieder zum Testen und Bugs-finden, deshalb mache ich hier nochmal eine V1.1.2 draus, allerdings mit Alpha-Status versehen. Für die Umsetzung im Netzwerk werde ich nämlich noch etwas brauchen und bis dahin kann der Rest ja schonmal auf Herz und Nieren geprüft werden.

    mfg
    - VampireSilence
    FrEaKY
    ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
    Beiträge: 235


    D7
    BeitragVerfasst: Mi 24.08.11 11:44 
    user profile iconVampireSilence hat folgendes geschrieben Zum zitierten Posting springen:
    user profile iconFrEaKY hat folgendes geschrieben Zum zitierten Posting springen:
    Lustig. Wir hatten die selbe Idee. Ich habe auch schon ein Netzwerk-Zeichenprogramm geschrieben, allerdings war die einzige Funktion mit Pinsel zu zeichnen :-)
    Cool und wenn du es geschafft hast, das ohne Unterbrechungen umzusetzen, verrate mir bitte, wie. ^^

    Hm, und was genau meinst du? Das Senden der Daten?