Laden...
B
Big Al myCSharp.de - Member
Student Mannheim Dabei seit 25.02.2006 342 Beiträge
Benutzerbeschreibung

Forenbeiträge von Big Al Ingesamt 342 Beiträge

24.08.2007 - 10:09 Uhr

Hi,
@boonkerz: Du hast recht, ich hab vergessen, die Namen in Getter und Setter zu übernehmen, das werde ich gleich aktualisieren.
Ein Plugin, dass das Kontextmenu erweitert, ist derzeit leider nicht möglich, aber ich glaube du meinst das Propertygrid, oder? Man könnte dann ja so eine Art Objekt-Extender als Tag im Objekt anbieten. Ist es das, was du meinst?
@floste: Noch gibts die nicht einzeln, aber ich kann sie ja in der Komponentensammlung veröffentlichen. Werd ich gleich mal machen.

Außerdem wollte ich gerne ein Plugin SDK schreiben, welches Programm könnt ihr mir denn da empfehlen?
Viele Grüße,
Big Al

24.08.2007 - 09:47 Uhr

Na öffnen tust dus mit VisualStudio oder SharpDevelop.
Du erstellst ein Windows Forms Projekt und fügst dann im Projektexplorer das Control ein. Im Designer müsste das dann verfügbar sein.
Grüße,
Big Al

22.08.2007 - 19:27 Uhr

So, es hat sich eine Menge getan:*Bildlaufleisten *Events *Mehrzeilige Markertexte *Interfaces lassen sich von Interfaces ableiten *Name der Felder der Properties lassen sich ändern *Man kann den Standardnamespace nachträglich ändern

So, was sagt ihr dazu?
Big Al

18.08.2007 - 18:26 Uhr

Hi,
folgende Dinge wurden an mich herangetragen:1.Formatierung bei zu langen Namen noch bisschen blöd 1.Projektnamespace kann nachträglich nicht geändert werden 1.Feldnamen der Properties sollte man ändern können 1.und noch ein bisschen mehr

Alle diese Punkte werde ich natürlich schnellstmöglich beheben.
Bis dann,
Big Al

13.08.2007 - 15:42 Uhr

Also genau weiß ich das auch nicht, aber hast du es mal mit 150 x -12 probiert?
Big Al

11.08.2007 - 15:58 Uhr

Klar, kein Problem, dafür hab ichs ja gepostet.
Du kannst mir dann ja mal die geänderte Version zeigen, würde mich interessieren, was du daraus machst.
Viele Grüße,
Big Al

11.08.2007 - 13:10 Uhr

//Edit: Hier gab es Teil 2, aber die neue Version gibt es jetzt ganz vorne

11.08.2007 - 13:09 Uhr

Juhu, ich bin fertig!
Hier kommt ProjectDesigner.NET, sozusagen Nachfolger von UML2Code.
Features:1.Tabs mit WeifenLuo DockPanel-Suite 1.Projekteordner 1.Intuitive Bedienung 1.Suche in erzeugtem Code oder im Modell 1.Portabel 1.Sehr schön bunt 🙂

1.Und vieles mehr, einfach selbst ausprobieren!

//edit: Die neueste Version gibt es ganz am Anfang des Threads

11.08.2007 - 11:12 Uhr

Hi,
bin beim "im Explorer rumsuchen" auf eine ältere Komponente von mir gestoßen.
Sie heißt WorldControl und es handelt sich um ein Control für 2D-Spiele. Man hat ein Bild als Hintergrund, ein Raster, auf dem man einzelne Rechtecke auswählen kann, und man kann den Ausschnitt verschieben. Perfekt ist es nicht, es stammt auch aus einem Projekt, an dem ich die Lust verloren hab, aber vielleicht kanns ja jemand brauchen.
Big Al

11.08.2007 - 11:07 Uhr

Hi,
so, im zweiten Post hab ich das alte Bild durch ein neues aus der neuen Version ersetzt. Das einzige, was noch nicht ganz fertig ist, ist die Skalierung der Objekte, die nehmen noch zuviel Platz weg. Außerdem kann ich das Programm hier nicht hochladen, weil es gepackt 1 MB groß ist. Mal sehen von wo ich es zum Download anbieten kann...
Was sagt ihr zu der neuen Oberfläche?
Viele Grüße,
Big Al

01.08.2007 - 19:33 Uhr

Na du musst mit Threads arbeiten, das ist aber nicht so ganz unkompliziert,
lies da mal was im OpenBook oder so.
Greetz,
Big Al

31.07.2007 - 19:57 Uhr

Hi,
siehe [Tutorial] Client-/Server-Komponente über TCP-Sockets
Da steht alles darüber drin!
Big Al

31.07.2007 - 16:54 Uhr

Natürlich mache ich nach dem Feedback weiter!!!
Ich habe jetzt unter anderem die DockPanel-Suite, Undo-Redo und Codeerzeugung mit CodeDom implementiert. Sieht jetzt alles schon viel professioneller aus und ich habe gemerkt, dass die alte Version doch ziemlich verbuggt ist, deshalb will ich nicht zu früh damit rausrücken. Ich werde aber bald mal einen Screenshot der neuen Version zeigen. Außerdem habe ich an eine Umbenennung in "ProjectDesigner.NET" gedacht, das klingt irgendwie professioneller.
Was meint ihr dazu???
Also, das Projekt lebt noch, jeden Tag komme ich voran. Ich suche gerade passende Bilder im .ico Format, um die GUI ansprechend zu gestalten, mit Grafiken hab ichs nicht so am Hut. Außerdem will ich noch Import-Plugins unterstützen und es ermöglichen, als VisualStudio Projekt zu exportieren, das kann ich allerdings auch als Export-Plugin nachliefern.
So, wenn ich die Icons habe, stelle ich einen Screenshot hier rein.
Ich freue mich schon richtig auf das Release 😁
Big Al

26.07.2007 - 19:32 Uhr

Hi,
du machst es dir da ein bisschen schwer.
Am besten ist, du erstellst dir ein eigenes Control, überschreibst die OnPaint-Methode und schreibst da deinen Code zum zeichnen rein. Die Graphics bekommst du über den Parameter. So musst du auch nur dein Control und nicht die ganze Form DoubleBuffered machen.
Wenn du unbedingt ein Panel benutzen willst, musst du eben das Paint-Ereignis dieses Panels benutzen, allerdings hast du dann kein DoubleBuffered...
Grüße,
Big Al

PS.: Höhe auf Englisch ist height, nicht heigth

04.07.2007 - 10:03 Uhr

Hi,
ich denke, es wäre auch besser, wenn du das Zeichnen nur im OnPaint-Event erledigst, dann musst du auch das alte Rechteck nicht mehr grau überzeichnen.
Ob das soooo viel Performance bringt, weiß ich aber auch nicht.
Die Geschwindigkeit kannst du darüber kontrollieren, um wie viel du a bzw. b erhöhst. Je größer, desto schneller, flackert dann aber auch mehr.
Big Al

17.06.2007 - 11:16 Uhr

Stimmt, das würde es, aber in dem PropertyGrid werden ja mehrere Objekte bearbeitet. Wenn der User dann auf den Rückgängig-Button klickt, muss ja das Programm wissen, welches Objekt zurückgesetzt werden soll.
Ich brauche das übrigens für den Projektmodellierer.
Big Al

17.06.2007 - 10:59 Uhr

Hi,
und dann in einer zweiten Liste speichern, welches Objekt zuletzt geändert wurde?
Ich werde mir mal den Sourcecode von SharpDevelop angucken, da muss sowas ja auch implementiert sein.
Vielen Dank,
Big Al

17.06.2007 - 10:44 Uhr

Hi,
wie kann ich denn eine Undo/Redo Engine für ein PropertyGrid implementieren?
Da nur nach dem ändern eines Properties ein Event gefeuert wird, ist das ein bisschen schwierig. Es sollte außerdem so sein, dass nicht nur Änderungen des PropertyGrids, sondern auch von anderen Controls in den UndoStack kommen,
das verkompliziert die Sache noch mal. Ich habe schon mehrere Implementierungen gefunden, u.a. die von Herbivore Multilevel-Undo/-Redo mit dem Command-Muster, aber damit scheint das nicht zu funktionieren.
Viele Grüße,
Big Al

08.06.2007 - 07:47 Uhr

Hi,
entschuldigung, dass ich den Thread nochmal aufleben lassen muss, wo doch alles geklärt schien, aber was mache ich mit den Datentypen Long, Float und ULong?
Die scheinen nicht als extra Klassen zu existieren.
Danke,
Big Al

07.06.2007 - 09:04 Uhr

Ja, da bleibt mir wohl nichts anderes übrig.
Vielen Dank ihr zwei.

07.06.2007 - 07:50 Uhr

Hi,
leider habe ich den Namen des Typs nur als string, weil ihn der Benutzer selbst wählen kann.
Ich brauche das, weil ich für meinen Modellierer für ProjekteCodeDom zur Codeerzeugung nutzen möchte.
Viele Grüße,
Big Al

05.06.2007 - 13:33 Uhr

Hi,
ich bin grade in der Schule und habe den Code nicht hier.
Sobald ich zu Hause bin poste ich ihn.
Ich müsste es ungefähr so gemacht haben:


CodeMemberProperty prop = new CodeMemberProperty();
prop.Name = "TestProp";
prop.Type = new CodeTypeReference("string");
//Vielleicht liegts hieran und ich muss "System.String" verwenden

Big Al

05.06.2007 - 12:45 Uhr

Definitiv Nr. 2!!!
Viel übersichtlicher, weil die kleinen Schweifklammern nach den Deklarationen total untergehen.
So, das war meine Meinung,
Big Al

05.06.2007 - 12:29 Uhr

Hi,
das mit dem Bezeichnern ist ja klar, aber hier hat das "int" doch die Funktion, den Datentyp des Properties anzugeben. Der Bezeichner ist doch "TestProp".
Gruß,
Big Al

05.06.2007 - 11:40 Uhr

Hi,
ich erzeuge mit meinem Programm CodeDom Code, allerdings setzt der
Codegenerator vor Datentypen bei Properties oder Methoden ein @.
Ich glaube es passiert immer dann, wenn der Name des Types in einem Standardnamespace gefunden wird. Es sieht dann z.B. so aus:


public @int TestProp
{
...
}

Weiß jemand, warum das so ist und wie man das vermeiden kann?
Danke,
Big Al

05.06.2007 - 11:36 Uhr

Brainfuck hab ich mir auch mal angeguckt, ist aber nicht so mein Fall,
viel Arbeit mit wenig Ergebnis 🙂
Außerdem ist der Code so unübersichtlich (besonders die Schleifen)
Aber war ganz interessant, mal was anderes zu probieren.
Gruß,
Big Al

30.05.2007 - 13:59 Uhr

Hi,
Wenns gar nicht anders geht, kannst du den Code auch z.B. mit SharpDevelop
von VB in C# übersetzen. Unter Extras gibt es da diese Option.
Big Al

25.05.2007 - 10:43 Uhr

Hi,
das ListView hat eine Collection von Items, die wiederum SubItems haben.
Wenn du also auf die zweite Spalte der dritten Reihe zugreifen willst,
müsstest du das so machen:


myListView.Items[1].SubItems[0]

Greetz,
Big Al

24.05.2007 - 08:42 Uhr

Vielen Dank!!!
CodeDom ist schon manchmal ein bisschen kryptisch.
Big Al

23.05.2007 - 15:11 Uhr

Hallo,
ich versuche schon seit längerem, mit CodeDom eine Enumeration darzustellen,
aber wie fügt man zu der CodeTypeDeclaration EnumItems hinzu? In der Doku gibts keine Beispiel.
Danke,
Big Al

20.05.2007 - 09:14 Uhr

Hi,
die einzelnen Farbwerte kannst du doch ganz einfach abrufen:


Color col = Color.FromArgb(backcolor);
col.R, Rot
col.G, Grün
col.B, Blau
col.A, Alpha

Das mit dem Schwarz/Weiß war bei mir auch, probiers mal mit:


Color newCol = Color.FromArgb(100, col.R, col.G, col.B);

So hat es bei mir funktioniert.
Viele Grüße,
Big Al

15.05.2007 - 21:34 Uhr

Das is ja blöd, kann man das irgendwo nachlesen? Ohne Codegenerierung wäre das Tool ja nix wert 😦

15.05.2007 - 14:48 Uhr

Moin, moin,
ich habe jetzt eine Schnittstelle für eigene Codegeneratoren eingebaut, damit der Designer nicht auf C#-Entwickler beschränkt ist, allerdings hab ich keine Ahnung von VB.net oder z.B. Boo. Würde es jemand übernehmen, den von mir geschriebenen C#-Codegenerator so zu ändern, dass er VB-Code erzeugt? Andere Programmiersprachen wären natürlich auch sehr willkommen, aber VB ist erstmal wichtig.
Ich würde den Freiwilligen dann den Source per E-Mail zukommen lassen.
Ich würde mich echt freuen, wenn es jemanden gäbe, der das übernimmt,
viele Grüße,
Big Al

12.05.2007 - 21:05 Uhr

Hi,
es gibt ein Update! Die Änderungen stehen im ersten Post!
OT: Stuttgart wird Meister!!!

11.05.2007 - 09:48 Uhr

Hey, das mit dem Obfuscator war ein Witz, natürlich dürft ihr den benutzen,
nur nicht über meinen Programmierstil schimpfen X(
Ich bin euch echt dankbar, dass ihr mir helft!!!
Das Docking hab ich mit SplitContainern und Dock = DockStyle.... gemacht, also nix besonderes

11.05.2007 - 09:45 Uhr

In der Doku gibts auf jeden Fall genug Beispiele für Sockets.
Ob das mit PHP so funktioniert, keine Ahnung...
Big Al

11.05.2007 - 09:39 Uhr

Naja, das wird noch, jetzt kommt halt ein bisschen Refactoring...
Vielleicht hätten ich ab jetzt nen Obfuscator benutzen 🤔

11.05.2007 - 09:34 Uhr

Die Schwierigkeit ist halt, bei immer mehr Funktionen, die Oberfläche trotzdem intuitiv und simpel zu halten.

Deshalb hab ich darauf auch den größten Wert gelegt: schön große Buttons und Zeichnungen

10.05.2007 - 22:15 Uhr

Das wäre echt cool, aber erstmal muss ein bisschen Ordnung in den Code gebracht werden 😉
Ich werd mich dann mal melden,
Big Al

10.05.2007 - 19:08 Uhr

Ja, so mache ichs, ich meinte aber eigentlich die Bildung der UML-Elemente aus dem Sourcecode, also erkennen, ob es sich um eine Klasse handelt, ein Klassenobjekt erzeugen und ihm dann die Properties und Methoden aus dem Source hinzufügen. Das kommt aber später...

10.05.2007 - 18:44 Uhr

Cool, wäre praktisch, aber ich bau grade das ehemalige PaintControl um,
es heißt jetzt ProjectView und hier werden jetzt wahrscheinlich die ganzen Aktionen ablaufen. Es feuert dann Events wie ObjectDeselected oder ObjectAdded usw.
Aber die Komponente ist auf jeden Fall ziemlich gut, die werde ich im Laufe des Projekts bestimmt noch gebrauchen.
Funktioniert das Importieren bei dir wirklich nicht? Es gibt irgendwelche Systemdateien, die auch auf .obj enden, die kannst du natürlich nicht öffnen.
Ich überlege gerade, wie man Visual Studio Solutions Importieren kann, dann müsste man die Elemente irgendwie aus Sourcecode erhalten. Ich hab da erstmal an Regex oder Compiler + Reflection gedacht. Hast du einen Vorschlag?
Viele Grüße,
Big Al

10.05.2007 - 18:00 Uhr

aber rein interessehalber, da ich den il-code soweit noch nicht angesehen habe, Untersteh dich, Reflector zu benutzen, mein Gewurschtel ist mir peinlich 😉
Scrolling:
ich habe zwei integer-Variablen: XOffset und YOffset, wenn die Maus gedrückt ist und dann bewegt wird, ändern sich die beiden Werte.

this.Xoffset += (Xoffset + mousePosition.X- e.X) * -1;
this.Yoffset += (Yoffset + mousePosition.Y - e.Y) * -1;

In dem Paint-Event wird dann gleich zuerst über Graphics.TranslateTransform alles verschoben. Das Gitter wird dann auch mit den beiden Variablen berechnet.
Der Tippfehler ist beseitigt und das selektierte Element wird jetzt immer in den Vordergrund geholt, bald werde ich die verbesserte Version hochladen.
Gruß,
Big Al

//Edit: Bei mir funktioniert das Importieren einwandfrei, komisch, aber mal sehen was die anderen sagen...

10.05.2007 - 16:38 Uhr

das momentan ausgewählte Element wird nicht im Vordergrund gezeichnet, sondern immer in der vorhandenen Z-Order-Position.

Stimmt, aber eigentlich sollen die Elemente ja auch nicht übereinander, sondern nebeneinender angeordnet werden. Mal sehen was ich da machen kann.

Die Klasse PaintControl heißt nur so, weil ich eine DoubleBuffered Zeichenfläche brauchte, aber dein Tipp, das alles auszulagern ist auf jeden Fall sinnvoll.

Dass man Properties und Methoden auswählen kann, habe ich geplant, mal sehen wie ich das mache.
Vielen Dank erstmal, jetzt hab ich wieder ne Menge zu tun.
Big Al

10.05.2007 - 13:00 Uhr

Hier der Screenshot:

10.05.2007 - 12:58 Uhr

Hi,
ich hab mir, weil es meine größte Schwäche ist, ein Projekt zu designen,
einen Editor geschrieben, der ein Projekt-Modell in Quellcode exportieren kann.
Ich würde ihn als im Alpha-Status befindlich beschreiben und bitte um Feedback.
Features:*Elemente lassen sich einzeln speichern *Projektüberblick *Namespaces *Extra Tab, um den erstellten Code anzuschauen

Ein Screenshot folgt gleich.

//edit: hab ich ganz vergessen:
Um eine Verbindung zu löschen, einfach mit der Maus draufklicken

//Update 12.5.07:

  1. Das ausgewählte Element wird in den Vordergrund geholt
  2. Einfügemarker
  3. Copy & Paste von Namespaces verbessert, das Verhältnis der Positionen
    von Namespace und Inhalt bleibt bestehen
  4. rudimentäres Plugin-System, bisher nur Projektexport-Plugins (siehe Readme)

//Update 13.5.07

  1. Jetzt mit kleiner Doku
  2. Bilder für Export-Plugins
  3. paar Kleinigkeiten verbessert

//Update 11.8.07
Neue Version gibts jetzt unten

//Update 24.4.08
Neue 2.0-Alpha-Version als Anhang in diesem Beitrag

Features:

  • Zoomfunktion
  • Mausgesten: Einfach Strg + rechte Maustaste drücken
  • Pluginfähig, SDK gibt es später

//Update 26.09.08
Würd ich jetzt mal als Beta bezeichnen.

//Update 30.10.09

  • Einige neue Sets (siehe unten)
  • neue Oberfläche mit selbstgemachter ribbonähnlicher Toolbar
  • Bessere Navigation
  • rudimentäre Macrofunktion

Bekannte Bugs:

  • (Win XP) Falsche Hintergrundfarbe des Navigators im linken Menü
  • Leertaste ruft den Umbenennnen-Dialog im Hintergrund auf, wenn im Vollbildmodus gearbeitet wird
  • Qualität der exportierten Jpegs schlecht
  • Wird ein Objekt erstellt, bleibt der Fokus auf dem Button, dadurch funktioniert das Umbenennen per Leertaste erst nach nochmaligem Auswählen des Objekts

-> Alle diese Bugs wurden schon gefixt, die neue Version aber nicht hochgeladen

Features:

  • Elektronik-Set, allerdings eher rudimentär
  • Flow Charts-Set
  • XML-Set
  • DotNet-Development-Set
  • Mindmapping Set

viele Grüße,
Big Al

Bisherigere Downloads:
PD.NET_2.0_Alpha.rar (607,29 KB, 90 mal heruntergeladen)
PD.NET_Beta.rar (2 MB, 199 mal heruntergeladen)

08.05.2007 - 14:11 Uhr

Hi,
du musst natürlich verhindern, dass dann immernoch bei jedem Paint dein Zeug gezeichnet wird, also füge

pictureBox1.Paint -= new System.Windows.Forms.PaintEventHandler(this.FigurZeichnen);

ein, um das Event wieder rauszunehmen.
Grüße,
Big Al

22.03.2007 - 13:12 Uhr

Hey,
Posaune hab ich auch mal gespielt! Ist nen cooles Instrument, früher waren nur meine Arme ein bisschen zu kurz. Jetzt sind sie lang genug, aber ich habe keine Zeit mehr zu spielen.
Big Al

09.03.2007 - 18:04 Uhr

Hi,
du hast doch schon eine Continue-Variable drin. Die must du für die ganze Klasse definieren. Beim Abbrechen machst du dann

continue = false;
myThread.Join();

Übrigens solltest du nicht aus dem Thread auf Steuerelemente zugreifen,
siehe [FAQ] Controls von Thread aktualisieren lassen (Control.Invoke)
Grüße,
Big Al

07.03.2007 - 07:54 Uhr

Hi,
bei mir is das eher so:
eine große Schachtel = aktuelles Projekt
in der Schachtel: viele kleine Schachteln
Greettz,
Big Al

05.03.2007 - 18:08 Uhr

Sieht gut aus, ich brauch das allerdings nicht. Auf unserer Schule werden alle Noten von den Lehrern ins Internet geschrieben. Jeder Schüler kann dann über einen Account auf der Schulhomepage seine Noten angucken. Das ist ziemlich praktisch, desshalb ist dein Programm auf jeden Fall für Schüler anderer Schulen nützlich.
Viele Grüße,
Big Al