Ich hab eine Komponente, an der ich rum baue, nun hab ich eine abstrakte Klasse hinzugefügt, die herbivore hier im Forum im zusammenhang mit beweglichen grafiken gepostet hat, dort gibt es auch eine konkrete implementation der klasse, nur tritt auf einmal, wenn ich meine Komponenten in eine Form dragge, die Meldung da unten auf.
Kann mir das einer erklären? Ich hab in der assembly nichts getan, noch hab ich was mit der serialisierung vorgehabt, aber auf einmal meckert er.
Ich habe nie von dem Teil verlangt, irgendwas richtung serialisierung zu tun oder nicht zu tun
Weiß niemand? Schade
Und wie kann ich einem Panel sagen, dass er jetzt x hoch ist? mit tabPages[0].Height = 300; klappt es nicht wirklich, da ich jetzt keine Komponenten mehr drin habe, sondern nur noch auf die Canvas male
Oh, Heureka, danke, das ersparrt mir sehr viel Arbeit, das Ding 🙂
Hm, Coco sieht nach sehr viel Arbeitsersparrnis aus 😁 Und das Ding kann sogar CSharp Parser generieren, wow 😁
Aber was ich an dem Ding icht ganz verstehe ist, wie kann ich Schnittstellen nutzen?
Also kann ich in der Grammatik sowas wie Methode X aus Namespace A aufrufen?
Und hmpf, ist das Teil CF2 kompatibel
Oder sollte ich das wo anders fragen?
Ahja, super.
Hab bei der suche performcane geschrieben, daher nichts gefunden.
Was du im zweiten Thread sagst ist interessant.
Ich denke nur darüber nach, ob man solche endlichen automaten mit Reg Expr bequemer matchen kann oder nicht.
Ich müsste ja aus einem String quasi Befehl, desseren Paramter, eventuelle ANDs und ORs und dann eventuelle weitere Befehle mir Paramtern holen.
Würde sich bei sowas Reg Expr anbieten?
Bei dem Automaten habe ich natürlich den Vorteil, dass ich sowas wie Befehl() AND AND AND erkenne.
ein Regexpr könnte mir wohl sagen, ob der Ausdruck richtig ist, aber ich kann nicht ganz nachvollziehen, wie er mir in einem Rutsch befehl [[AND|OR] befehl ]* matched (das sollte eine reguläre sprache sein, kein Pattern.
Und wenn ich das hinbekommen, würde er mir nicht sowas wie
group[0]=befehl
group[1]=AND
group[2]=befehl
group[3]=OR
group[4]=befehl
Matchen? Dann müsste ich immernoch irgendwie die Gruppen parsen
Gut, danke
das habe ich auch gedacht. Mit RegExpr wäre das auch ne Menge rumschmiererei glaub ich
Ja, aber die frage ist, was ist schneller, die RegExpr machine anzuwerfen, oder einen String zu iterieren, darum gehts.
Hier könnte jede Microsekunde wichtig sein
Ich brauche sowas wie einen Parser, der mit einen String einlesen und überprüfen soll.
Wenn er so aussieht "klein() AND groß()"
So müsste ich das jetzt parsen, aber was ist am geschicktesten, sollte ich ein Reg Expr mit jeweiligen Substrings versuchen, oder wären iterationen anhand eines "Satzes" sinnvollen?
Also quasi mit einer for schleife den String durch ackern und gucken, ob der nächste char gültig ist oder nicht
Hm, ne, macht er nicht, davon abgesehen das Ushi nicht gematched wird, aber ich krieg als Group 1 {alles} und als Group zwei ; Bein
Hab ich auch gerade entdeckt, aber er matched weiterhin alles, er müsste ja irgendwie das .* auch noch jeweils grupieren, quasi n Gruppen mit (.*) machen.
Aus dem String
Horst
Ushi: {Hand; Arm; Bein}
Versuche ich in einem Schritt zuerst
von Ushi bis \n zu matchen und nach dem ich sicher bin, dass ich dort bin wo ich sein muss, versuche ich als Gruppe
Hand, Arm und Bein zu bekommen, ohne { und ohne ;
Der on the fly Reg Tester ist eine große Hilfe, aber ich hab ein Problem, einen String effizient zu matchen.
Und zwar sieht der String folgendermaßen aus:
Horst
Ushi: {jedes zeichen ohne \n ; jedes zeichen ohne \n ;jedes zeichen ohne \n }
Kann man in einem Schritt (in zwei wüsste ich es selber) Ushi: {...;...;...;.....} filtern und gleichzeitig die werte in {} zwischen den ; ?
In zwei Stufen würde es gehen, aber in einer tu ich mich schon recht schwer, weil es beliebig viele sein können und sowas wie
.*[^;\n]
ist gierig, weil es mir in einem String ...;...;...;... matched
Ah, danke! 🙂
Aber was davon wäre besser?
Und kann man ohne VS nachgucken, ob Dictionary usw im CF 2.0 drin ist, oder nicht ?
Ich versuche mich in sowas wie einem Interpreter und frage mich gerade, wie man am elegantesten sowas löst wie "set(test,0)"
Ich will quasi der Variable test den Wert 0 zuweisen und später mit "kleiner(test,10)" prüfen können, ob test kleiner 10 ist oder nicht
Und das bei beliebig vielen solcher Variablen, was würde sich da am ehesten Lohnen?
Ich meine hier schon gesehen zu haben, dass man hier einen String mit & in einen Variablen namen pressen kann (kenne ich vom PHP her)
Oder würd sich eine Liste mit Strings eher anbieten? (Wobei ich nicht weiß, ob es ein Kostrukt gibt, das so ähnlich wie ein Array funktioniert und mit array[String] Werte referenzieren kann
Einen Roboter, der ein Verhaltensscript abarbeitet und auf seine Umwelt anhand der Zustände reagiert.
Am ende wird es ein richtiger Roboter werden, aber das Teil muss auf CF2.0 laufen 😠 und erstmal softwareseitig getestet werden.
Ich überblicke das Szenario selber nicht wirklich, ziel ist halt ein Programm, was autonom gemäß einem Script arbeitet zu erstellen, ideal wäre ein Framework, weil man sich nicht ebene eine Scriptsprache ausdenken kann, die sowas ideal abdeckt
Ich google nun schon seit einiger Zeit, aber ich finde keinerlei autonome Agenten für C#
Kennt jemand zufällig welche?
Gemeint sind Bibliotheken oder sowas in der Art, die quasi ein Script abarbeiten und selbständig nach diesem Muster verhslten ausführt.
Ich finde eine Menge Agenten, nur keine Liste von denen, die aber in TCL, java oder sonstiges geschrieben sind.
Bekannt sind Jade, Alice, Able, Akira usw nur helfen die mir nicht wirklich
Hui, das ist doch schonmal etwas.
Liegt der unterschied darin, dass ich bei using nicht alle Komponenten ins Namespace schieben kann?
Es sieht so aus, als müsste ich eventuell im normalen Framework was fürs CF schreiben und wen ich dass dann habe, wohl portieren.
Ist das halbwegs möglich wenn man kein Windows Napespace nutzt?
Ehm sind Reflections in dem Compact drin?
ah dachte ich mir, muss ich mir von der hochschule holen, schade, nutzloses Wochenende 😠
Danke
Ich hab ja VS 05 Express und mir die SDK für das Compact Framework geladen, aber wo kann ich denn ein Projekt mit dem Compact Framework erstellen?
Oder geht das nicht mit der Express?
An der Hochschule haben wir VS 05, dort kann man direkt im Dialog Compact wählen
Herzlichen dank 🙂
Hmpf 🙂
Aus irgendeinem Grund verwirren mic hdie unterstriche bei den Variablen andauernd, da ich parallel Flash programmiere, denke ich ich immer an bereits definierte Attribute bei den _
Danke
Ja aber dann habe ich keinen Border mehr, oder?
Also die Idee ist schon ziemlich gut
Hm, gut, aber kann ich irgendwie die Graphic Objekte mit Farben füllen?
Nur die losen Ränder bringen mir so garnichts
Hm, das wird schwierig, ich versuche eine Farbpalette zu erzeugen und würde sehr sehr ungerne auf die Canvas des Panels farbige Vierecke zeichnen müssen, weil ich das dann mit Drag&Drop nicht mehr gebacken bekomme.
Ich mein ich könnte Pixelfarbe beim Klick auslesen, aber das ist nicht so beqeuem wie Labels mit den jeweiligen Farben, zudem diese eh nen Rand haben usw
Ehm, warum sieht das so aus wie im Anhang?
Wenn ich auf den Button drücke, passiert nur
tabControl1.TabPages[0].VerticalScroll.Visible = true;
tabControl1.TabPages[0].VerticalScroll.Value = 99;
tabControl1.TabPages[0].Invalidate();
Sieht ja nicht so schön aus
Das ist ein Scherz.
Ich hab die ganze verdammte Zeit versucht das Teil sichtbar zu machen, aber es ging nicht, in einem neuen Projekt gehts auf einmal und Value auch
Argh!
Danke
Edit: aber wie kriegt man nun mitt, ob der Sichtbare Bereich nn 100 % ist oder ob gescrollt werden muss?
Wenn ich von einem Tab zu einem anderen wechsele, dann bauen sich die elemente dort ziemlich langsam auf (30 labels) kann man den Aufbau irgendwie beschleunigen?
Ich hab schon
SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true);
Das Hilft auch beim scrollen in dem vollen Panel ein wenig, aber dennoch kert man den langsamen Aufbau
Na sowas.
Ich brauche ein Tab mit ständig aktiver Scrollleiste, die enabled=false sein soll, wenn der Content nicht groß genollen ist.
Nur habe ich jetzt hier, in der Faq und im galileo openbook danach gesucht und nichts gefunden, wie man denn nun ein Panel scrollt. Das ist vielleicht seltsam 😠
Also es ist so, das AutoScroll Disabled ist, weil ich die Scrollbar pausenlos brauche(auch wenn diese nicht immer verfügbar sein soll, so soll sie ständig die Position einnehmen, weil sonst ClientSize != ClientSize mit Scrollbar ist
Ehm ja, aber dann muss ich den Client bereich und alles andere per Hand anpassen, was AutoSize da einem abnimmt, oder?
Hab hier gerade keine Möglichkeit das zu testen ,weil IDE nicht hier
Ich hab n Tab bei dem ich problemlos Controls auf die Fläche hinzufüge, der Tab hat autoscroll an.
Ich füge also Komponenten hinzu, bis ClientSize.Width nicht passt und fange eine neue Zeile an, das klappt.
Mein Problem, irgendwann passiert es, dass der vertikale Scroller auftaucht und dadurch einige Controls doch nicht vollständig sichtbar sind. Wie lös ich dass?
Ich kann ja schlecht das Ding neuzeichnen, weil dann ja die Controls wieder wegwären und der Scroller auch.
Gibt es nen Weg den vertikalen Scroller permanten an zu lassen? Das wäre der leichteste Workaround
Ehm danke, im Moment versuche ich Events zu verstehen 🙂
Aber es geht immernoch nicht, mittlerweile glaube ich, dass es an der Tatsache liegt, dass delegate und event in der einen und das hinzufügen des Events in der anderen partial Klasse mache
Ah, verdammt, das Buch hat ja doch was darüber stehen.
Schade dass man dort nicht Suchen kann 😠
Und ich probiere in der Tat. Ich kann Programmieren, alleridngs kenne ich die Eigenart von C# nicht und dann hab ich immer das Problem, das ich weiß, was ich will, aber nicht wie es in C# geht.
Das meiste, was im Buch steht behandelt ja auch generelles Programmieren und hin und wieder taucht was C# artiges auf, was ich auch mal übersehe 🙂
Ich glaub ich sollte mir das Buch laden und ein Tool nutzen, mit welchem ich mehrere Seiten durchsuchen kann 🙂
Danke fürs erste. Ich werd es mir angucken, allerdings ist es verwünderlich, dass diese Warnung daher kommt, dass ich das Event nicht aufrufe, sowas dürfte doch den Designer ncht blockieren, oder?
Und den Code habe ich von einem Projekt vom Codeproject, dort funktioniert es in der Tat fast genauso, nur bei mir eben nicht, weil ich ein leicht anderes Szenario habe und hier kommt dann noch das fehlnde Wissen über diese "Eigenart" 🙂
Ne ich kriege so im Form Designer diese Warnung, das es kei event mit dem Namen gibt, und wie initialisiert man das Ding? Im Testprojekt hab ich das genauso gemacht, und es lief.
Ich sehe nichts i Designer, außer der Fehlermeldung da oben
Ach edit: Du meintest mindestens einmal clrUpdated = new und nciht immer +=, das geht auch nicht
In einem Test-Projekt funktioniert es, aber in dem eigentlichen Projekt nicht, es kommt ein Warning und die Designer sicht wird nicht angezeigt.
Ganz simpel:
namespace Control_ColorImplement
{
public partial class ColorImplement : UserControl
{
public event EventHandler clrUpdated;
public delegate void EventHandler(object sender, EventArgs e);
private void txtHexColorUpdated(object sender, System.EventArgs e)
{
MessageBox.Show("Test");
}
}
}
namespace Control_ColorImplement
{
partial class ColorImplement
{
private void InitializeComponent()
{
//Textfeld
this.txtHexColor.Font = new System.Drawing.Font("Arial", 8F);
//Im Grunde sollte das auch ein txtHexColor Event sein, also txtHexColor soll
// das Event haben
this.clrUpdated += new EventHandler(txtHexColorUpdated);
}
}
}
Ehm, es lief im Testprojekt soweit, dass es nicht in der anderen Partial Class drin ist, ich muss ein Problem mit dem Namespace haben, aber ich finde die Lösung nicht.
Warnung:
Warning 1 The type 'System.Windows.Forms.UserControl' has no event named 'clrUpdated'.
Im Grunde wollte ich dss
Ehm ja, das kenne ich, aber kann man da nicht jeweils nur ein Event für eine Klasse registrieren?
Wird dann nicht nur eine Methode aufgerufen?
Wenn ich bei den 3 Labels und einem Button den Text ändern will, dann hab ich ein Event, das beim Auslösen eine Methode aufrufen, welche dann quasi für alle Elemente den Namen setzt, oder?
Ich hab den EventHandler so verstanden, dass dort eine Methode ausgelöst wird; wenn ich bei z.b. 3 Buttons das Event registriert habe, so kann jeder der buttons diese eine Methode auslösen wenn er ein Event erzeugt, aber die anderen Buttons haben davon dann so nichts, oder?
Ich wollte mir gerade einen Observer bastellt, scheitere aber an mangelndem Wissen
Und zwar würd ich gerne wissen, wie ich eine Liste von Objekten verwalten kann, die alle von verschiedenen Typen sein können, jedoch alle die Methode notify implementiert haben müssen.
Also sagen wir ich würd gerne 3 Labels und einen Button an der Observer klasse registrieren.
observer.Add(label1);
observer.Add(label2);
observer.Add(label3);
observer.Add(button1);
observer führt intern irgend eine liste vom Typ object ok, und hat eine Methode notifyAll, aber wie kann jetzt der observer, der die liste iteriert bei allen notify aufrufen?
Ach, ich hohlmeise, das ist es, danke 🙂
In der Help hab immer nur das this.object gesehen und nicht nach unten gescrollt um zu sehen, dass das Add unten ist.
Hi, das meinte ich garnicht
Also genau gesagt krieg ich ne List mit Buttons hin, beispiel
List<Label> ll = new List<Label>();
Label x = new Label();
x.Name = "lbl1";
x.Text = "horst";
ll.Add(x);
x = new Label();
x.Name = "lbl2";
x.Text ="zweiter horst";
ll.Add(x);
Nur wie plaziere ich diese jetzt? im Designer wird ja etwas mit this.compname = new blah gesetzt, ich habe aber compname nun nicht und es soll ja eh generisch sein.
Mir fehlt sowas wie this.attachObject(object) oder ähnliches.
(Edit ich guck mir die Faq nochmal an)
(Edit2: Nein dort finde ich nichts über das zur Laufzeit hinzufügen)
Hm, ich frage mich gerade, ob es Möglich ist, irgendwie 10 Labels oder sonst was mit selber definierten Namen generisch zu erzeugen.
Mein Problem ist ja, dass man diese referenzieren muss und ich sowas wie lbl1,lbl2 bis lbl10 in einer forschleife erzeugen möchte und alle labels dann irgendwohin plazieren will. Wie genau erreicht man sowas?
Ich meine mich zu erinnern, dass VS Express Hilfslinien hatte, die man selber positionieren konnte, leider find ich in der help nur die snaplines die automatisch erscheinen, wenn man was an anderen Elementen ausrichten will und ich find beileibe die normalen Hilfslinien für den Designer nicht 😠
Achso, dann fand ich die aussage irreführend, dass es in der Toolbox auftaucht.
Danke an alle und so gehts 🙂
Hallo,
verweis ist drin, ich sehe meine Komponente, aber egal wie oft ich das Projekt rebuilde, in der Toolbox taucht der Adobe Color Picker nicht auf
War mir klar, ich würde ja eh nichts sehen, wenn die Komponenten noch nicht gezeichnet worden ist, ne Klasse von Button abzuleiten bekomme ich noch hin, aber wie wird daraus eine Komponente, die ich nutzen kann, muss ich daraus eine Library bauen und es als DLL einbinden? Ich mein sowas wie eigene Stile würden mir wie User Controls im jeweiligen Projekt vollkommen ausreichen, aber wenn diese nicht von User Controls erben, dann hab ich auch keine wirkliche Komponente die ich so nutze?
Danke
Aber wie löst man das am besten im Designer? Muss ich mir eine eigene User Control schreiben? Oder muss ich nichtmal erben und kann direkt die Onpaints ändern?
Hallo,
ich hab mir den Artikel angesehen [Artikel] Custom Window Border für Form's
Dort wird beschrieben, wie man die NonClient Area selber erstellt, nur steht dort, das man auch Buttons so verändern kann, aber dragt man Buttons dort rein, behalten die den Skin.
Nun meine Frage, gibt es eine leichtere Möglichkeit, ohne in die WinApi einzugreifen, um Buttons und Formen zu skinnen ohne alle Eigernschaften und Methoden derer selber bauen zu müssen.
Also quasi das deaktivieren von Look and Feel von Windows selbst.
Vielleicht sowas wie ein Ableiten vom Button und das überschreiben der Paint Methode?
Komisch,ich hab jetzt ne DLL und diese ist als Resource im Projekt, aber bei der ToolBox taucht nichts auf
Soweit bin ich ja, nur ist die UserControl Komponenten im jeweiligen Projekt in der Toolbox, ich hätte es gerne generell
Also muss ich schon ein solches Projekt erstellen und kann ich da nicht einfach ein NEw User Control Item da rein schieben?
Ehm, ok, aber wo finde ich ein "Composite Control" welches ich im Bezüg zu der Library Brauche um Composite Componentes zu erzeugen.
Im Grunde will ich ein User Controll erstellen, welches für alle Projekte in der Toolbox auftaucht und nicht nur in dem Projekt, in dem ich das UserControll habe