C++ Anfänger(C# Umsteiger)braucht Stein des Anstosses! (GUI bzw Steuerelement);)
-
derkollo! Ich habe kein Problem.
Mein Posting war sicherlich kein rumgeschleime. Es war mehr eine allgemeine Aussage, die für jeden gilt, der Programmieren lernen will. Ich habe in deinem ersten Posting gelesen, das du PHP und C# gemacht hast. Und jetzt auf C++ umsatteln willst. D.h. du bist nicht komplett neu in Sachen Programmierung?Und eigentlich sollte mein Posting ein "Wachrütteln" sein. Denn C++ ist eine komplexe Sprache (nicht mit kompliziert verwechseln!), und da kommt man mit der Vorstellung "klicki bunti" nicht sehr weit. Man muß sehr viel lernen, nicht nur was das Programmieren angeht, sondern sogar wie man mit Tools umgeht. Alleine schon das Thema "Wie benutze ich eine Library in meinem C++-Projekt?" kommt hier im Forum fast täglich vor. Wie oft schaffen die Leute es nicht, die Boost Libs zu bauen, obwohl es eine sehr gute Anleitung dafür gibt? Obwahl man in wirklichkeit nur ein Kommando in der Kommandozeile eintargen muß, um das Build-Script zu starten. Da muß man nicht mal PC-Crack für sein, sondern nur gute PC-Kenntnisse haben, die etwas über dem einer Sekretärin liegen.
Da ist wirklich Know How nötig, wo man ohne Klicki Bunti auskommen und lernen muß.
Und das jeder klein anfängt ist mir auch bekannt. Ich helfe Anfängern sehr gerne und ohne Vorurteil. Vorallem bin ich kein Guru o.ä. Ich stelle heute noch Fragen im C++-Forum.
Also, mein Posting war nicht böse gemeint. Sondern ich habe versucht dich in die C++-Realität zu bringen. Die Wahrheit kann manchmal halt weh tun.

-
Was meinst du? Waren meine ursprünglichen Fragen unfreundlich? Ich habe mich sogar selbst "auf's Korn" genommen. Ebenso habe ich erwähnt, dass ich zuvor 4 Monate in C# programmiert habe. Also sehe ich micht natrülich nicht als Programmierer...
Ich verstehe, was du meinst mit Grundlagen. Es tut mir leid, dass ich als Grundlagen eben direkt etwas optisches brauche. Der Unterschied ist minimal. Ob ich eine Konsole habe, an der ich durch verschiedene Eingaben meinen Code teste, oder eine minimale grafische Oberfläche...
Oder sehe ich das falsch? Ich habe gute Bücher zum coding hier. Aber leider nur zum Coding.
Wie ich bereits schrieb, so heißt ja auch das Thread, brauchte ich einen "Anstoß". Ich habe nicht darauf spekuliert, dass mir jemand C++ beibringt.Wie ich ebenfalls bereits geschrieben habe, hat mir der erste Post von th69 schon enorm weitergeholfen. Im Grunde hat er simpel und gut meine Frage beantwortet.
Hätte ich seinen Link direkt gelesen, wäre mir aufgefallen, dass dort Programme aufelistet sind, hätte ich nur Dane gesagt und der Thread wäre "vorbei"...Den Tip mit dem Konsolenprogramm, kann ich gut verstehen. Aber entschuldigt, dass ich denke, dass man Grundlagen auch an einer grafischen Oberfläche lernen kann. Wenn das schon zu vermessen von mir ist, tut es mir leid.

Doch ich habe ja niemanden gebeten, mir dabei zur Seite zu stehen, oder?
Und warum denkst du, dass ich die Grundlagen gänzlich ignoriere? Weil ich keine HelloWorld Programm schreiben möchte? Weil ich keine Animal BaseClass erstellen möchte, in der ich dann virtuelle Funktionen erstelle um sie an meine CatClass zu vererben?
Warum unterstellt ihr mir, dass ich keine Grundlagen lernen möchte, nur weil ich denke, dass mir der Umgang mit cout weniger nützt, als direkt an grafischer Ausgabe zu arbeiten?Ich weiß, was du meinst. Ich weiß ebenfalls, dass ich den ersten Teil Archi's Antwort am Besten ignorieren hätte sollen.
Ich habe wirklich gute Bücher hier. Und das HelloWorld Programm schon zig mal gelsen und geschrieben. Das Prinzip der Klassenverebung ist mir auch geläufig. Natürlich ist der Umgang mit Alloc usw aber absolutes Neuland für mich, da in C# nicht nötig.
Wenn ich nun, vielleicht ein wenig vermessen, schreibe, dass ich glaube ein Konsolenprogramm kann mir nicht weiterhelfen, dann nicht, weil ich das nichtfür nötig halte, sondern weil ich dir grundlegensten Grundlagen schon verinnerlicht habe. Und wie gesagt, man kann auch Grundlegendes an einer GUI üben, oder nicht?
Ich brauche "optische" Ergebnisse. Wenn ich eine Klasse instanziere, möchte ich das optisch "bestätigt" bekommen.
Ich könnte Artchis Antwort verstehen, wenn ich wirkliche Hilfe ablehnen würde. Ich habe aber nie gesagt, dass ich die Basics nicht lernen möchte! Mir fällt es aber leichter, wenn ich zwischendurch etwas optisches habe...
Vielleicht hänge ich zuwenig in so Foren ab, um so hypersensibel wie ihr zu sein. Was nur heißen soll, dass ih vielleicht ech zuviele Posts lest, in denen dieses "Konsolenthema" vorkommt. Deswegen habe ich das sogar eigentlich schon ein wenig "entschärft" geschrieben.
Es tut mir leid, wenn ich damit einen Nerv getroffen habe.
Ich sehe es dennoch wie folgt: Man kann sich auch mit absoluten Grundlagen beschäftigen ohne reine Konsolenprogrammierung, oder liege ich da so falsch mit?
Um meiner GUI Sinn zu verleihen, muss ich mich mit den gleichen Grundlagen beschäftigen oder nicht?Es tut mir leid, wenn meine Fragen nicht exakt so gestellt waren, wie es anscheinend nötig war. Ich habe freundlich, vielleicht stellenweise gewollt naiv gefragt.
Ich denke, es gab keine zwingende Veranlassung mir ersteinmal unter die Nase zu reiben, was für ein "Nichtprogrammier" ich denn bin.Das ich danach verärgert war, ist m.E. verständlich, dass ich das auch schrieb, ist Zeichen meiner fehlenden Contenance.
Aber wirklich ernst gemeinte Frage:
Fandest du Artchis Antwort angemessen? Wurde ich davor ausfallend oder unverschämt? Muss ich soetwas als Fragesteller in einem Forum mit gesengtem Haupt über mich ergehen lassen?Wie gesagt, falls ich jemandem mit meiner Fragestellung auf die Füße getreten bin, tut es mir leid. Wenn ihr aber, weil ich ein Konsolenprogramm ablehne, mir was weiß ich unterstellt, ist das erstmal nicht mein Problem.
Für mich schließen sich GUI und Grundlagen nunmal nicht aus. Vielleicht hätte ich auch schreiben sollen ,dass ich die Grundlegenden Beispiele a la C++ in 21 Tagen, bereits "absolviert" habe, und deswegen nicht denke, dass mir ein Konsolenprogramm weiterhilft, weil ich mittlerweile 3 Bücher lese, bzw gelesen habe, in dem jedesmal wieder erklärt wird, wie man Konsolenprogramme schreibt, Klassen Namens Auto oder Fahrrad erstellt, Methoden ersellt usw...
Diese Grundlagen haben mir aber bei meiner ursprünglich gestellte Frage nicht weiterhelfen können. Vielleicht muss ich Die C++ Programmiersprache erst bis zum Ende lesen... Aber irgendwie glaube ich, dass dort auch keine Antwort darauf gewesen wäre, da ich ja, wie ich jetzt weiß, C++ per se nichtgrafisch ist.
Das heißt, selbst wenn ich das über die Grundlagen hinausgehende Buch von Stroustrup beendet habe, weiß ich daher nicht unbedingt was über GUI Entwicklung.Sind meine Annahmen bis hier korrekt?
Es tut mir leid, wenn ich die für eine Frage nötign 5 Seiten Hintergrundinformationen vergessen haben sollte.

Aber mal ehrlich, was meinst du eigentlich mit
"Dann merke dir das aber auch für deinen Stil der Antwort. "Weil ich verärgert auf Archi reagiert habe, oder wie?
Ich finde, ich muss, auch als Fragesteller, mich nich erst ernidriegen lassen um eine Antwort zu bekommen... Oder sehe ich das auch zu vermessen?Grüße
-
Artchi schrieb:
nachteule schrieb:
witzbold, wohl noch nie mit einer richtigen IDE gearbeitet. "Member umbenennen" zählt nicht zu den "State-of-the-Art" refactorings.
Und was ist "State-of-the-Art"?
Weiß ich nicht, darum hab ichs in Gänsefüßchen gesetzt. Der Volksmund würde wahrscheinlich "modern" oder der Englische Volksmund "sophisticated" sagen.
derkollo schrieb:
Was ist denn bitte dein Problem? Wo habe ich behauptet C++ Programmierer zu sein?
Können ja nicht alle so Oberflieger sein, wie du einer bist...Aber danke, oh mächtiger Artchi, dass du dich erniedrigt hast, einem Nichtprogramierer 2 Links zu posten... Mein Dank wird dir ewig nachschleichen.
Ja, willkommen in der C++ Community. Im Gegensatz zu anderen Programmierer-Communitys ist man hier fest davon überzeugt die Krone der (Programmierer-)Schöpfung zu sein, und dementsprechend ist hier auch der Ton der Mitglieder, denen ich dringend empfehlen würde mal in ein anderes Forum zu blicken, denn es geht auch anders. Ich weiß leider auch nicht woran das liegt, vielleicht sind die alle so gefrustet weil sie mit miesen IDEs arbeiten müssen, damit schließt sich der Kreis wieder

-
hey artchi

Cooles Posting! Wirklich. Ja, ich weiß ich habe überreagiert.
Du hast ja auch recht.
Ich finde, ich bin C++ Noob. Auf jeden Fall! Vier Monate C# machen einen nicht zum Programmierer. Und PHP macht einen nicht zum C Programmierer.Auch wenn dein Vorhaben mich in die harte Realität zu holen ja sehr löblich ist *hust*, denke ich, habe ich durchscheinen lassen, dass mir das sehr wohl bewusst ist. Ich wollte es nur nicht wahrhaben!

Allgemeingültige Aussagen. Ach ne.

Jemand der keine 3 Zeilen schreiben kann, ist kein Programmierer. ...klingt doch glatt nach nem Naturgesetz.

Hehe Klicki Bunti. Dann möchte ich mal deinen Ansatz sehen, einen MIDI StepSequencer in einer Konsole zu realisieren.
Würde ich auf KLickiKlicki wertlegen, hätte ich die "normalen" Elemtente von VC. Meine Bereitwilligkeit, den Mist selbst zu schreiben, zeigt doch das ich nicht nur KlickiKlicki machen will.
Es stimmt schon, die Positionierung in der ToolBox ist "überflüssig", solange das Element steht und funzt.Troztzdem wäre es geschmeidig das Dingen auch direkt als Vorlage in die ToolBox ziehen zu können, oder?

Ich denke schon wir verstehen uns. Wäre ich nicht vor dem Lesen deiner Message gerade erst aufgestanden, hätte ich auch anders reagiert.

Also sorry für den "Großkotz"!
Und dafür ein dickes Danke für die Links! Sehr informativ!P.S.
Ich habe mich dafür entschieden erstmal bei C# weiter zu programmieren. Zumindest bis ich eine akzeptable Version meines Programms habe, in dem alle Ideen verwirklicht sind. Währenddessen übe ich weiter C++.
Wenn meine C++ Kenntisse ausreichend sind, fange ich an, mein Projekt von C# auf C++ umzuschreiben.
Macht das Sinn?Grüße
-
Ich sehe schon, wenn das so weiter geht, sind wir auf fünf Seiten und jeder fragt den anderen, wie die Fragen und Antworten auszusehen haben. Deshalb back to Topic:
Wenn du also mittels "Fenster"-Programmen C++ lernen willst, gebe ich dir den Rat: programmiere diese Fenster. Vorallem werden doch die ersten Programme von dir eh nicht komplex sein. D.h. man kann diese Fenster auch in C++-Code formulieren. Wenn du Fenster zusammen klickst, wirst du den "grafischen Desigener" kennenlernen... aber nicht die C++-GUI-Library.
-
derkollo schrieb:
Hehe Klicki Bunti. Dann möchte ich mal deinen Ansatz sehen, einen MIDI StepSequencer in einer Konsole zu realisieren.
Hier hast du mich leider falsch verstanden. Ich bezog mich darauf "Wie man eine GUI erstellt". Ich meinte nicht, das man keine GUI-Prorgamme erstellen soll. Verstehste?
-
@nachteule
Glaubt nicht jeder etwas Besseres zu sein, der auf "seinem" Gebiet gut ist?

Ich kann es aber auch verstehen, wenn man täglich weiß ich wieviele "dummen" Fragen in so nem Forum liest, ist der Geduldsfaden irgendwann sehr kurz.

@artchi
Das hätte passieren können...
Ich merk schon, ich muss unbedingt eine Relasebare Version des Programm rausbringen...
"Vorallem werden doch die ersten Programme von dir eh nicht komplex sein"
Wenn du dich da mal nicht täuscht. Mein Programm nach 4 Monaten C# überfordert sogar schon manche C# Kenner! Was aber auch daran liegen mag, weil man musikalisches Verstädniss dafür haben muss. Man muss vor allem wissen was ein 4/4 Takt ist und was MIDI-Befehle sind.
Ich versuche mal, eine releasbare Version zu erstellen, dann können Interessierte dort mal reinschauen.
Ich arbeite dort bereits Klassenvererbung, Datenbankanbindung, Polymorphisums (oder wie sich dat schimpft ;), XML Datenspeicherung...
Deswegen bin ich vielleicht stellenweise wirklich ein wenig vermessen, denn was ich mit C# in der kurzen Zeit schaffen konnte, machte mich selbst stutzig!
Und selber programmieren wollte ich die Dinger doch eh! Deswegen ja meine Frage!
Ich möchte quasi wie bereits geschrieben, eine optische Oberfläche "malen", weil man direkt sieht, ob es gut aussieht oder nicht. Bei einer reinen Programmierung muss man jedesmal kompilieren und starten.
Die Methoden und Felder, usw möchte ich auf jeden Fall alles programmieren, da ich jeden unnötigen Ballast vermeiden möchte! Ich möchte zB keine CheckBox "umfunktionieren", weil da m.E. zuviel unnötiger Ballast dranhängt.Langfristig muss ich auf Perfomance achten, da Musikprogramme nunmal sehr taktempfindlich sind. Deswegen möchte ich mich ja auch mit C++ auseinandersetzen, auch wenn C# soviel leichter ist!
Also nix KlickiBunti für mich bitte!
Wenn dann nur aus eigener Produktion! Deswegen startete ich ja auch diesen Fred hier... 
Grüße
-
derkollo schrieb:
Also sorry für den "Großkotz"!
Kein Problem.
derkollo schrieb:
P.S.
Ich habe mich dafür entschieden erstmal bei C# weiter zu programmieren. Zumindest bis ich eine akzeptable Version meines Programms habe, in dem alle Ideen verwirklicht sind. Währenddessen übe ich weiter C++.
Wenn meine C++ Kenntisse ausreichend sind, fange ich an, mein Projekt von C# auf C++ umzuschreiben.
Macht das Sinn?Wenn du dein Programm (welches anscheinend doch umfangreicher wird) in C# "perfektionierst", wird es wenig Sinn machen, es wieder auf C++ zu portieren. Ich kann mir gut vorstellen, das man vielleicht in C# einen Prototypen[1] erstellt. Und dann "richtig" unter C++ loslegt. Wenn du wirklich C++ als Ziel hast, würde ich mich nicht mit C# "aufhalten". Nichts gegen C#... würde umgekehrt genauso sein. Aber realistisch betrachtet ist es kostbare Zeit, die da drauf geht.
[1] Prototypen schmeißt man weg.
-
Ja, so stelle ich mir das im Moment vor. In C# wäre ich "fast" fertig. Dann kann ich diesen Prototypen wenigsten schonmal nutzen um anderen mein Vorhaben zu präsentieren. Außerdem lassen sich dort recht schnell Ideen einbauen.
Realistisch betrachtet denke ich mittlerweile, dass ich erst in einem Jahr an dem Punkt sein werde mit c++ das zu basteln was ich bereits heute in C# erreicht habe.
Solange nutze ich C# um das ein oder andere Erfolgserlebniss abzugrasen.

-
Hallo @derkollo, es freut mich, daß dir die Links gefallen haben.
Und daß ich "Konsolenprogramme" erwähnt habe, liegt einfach daran, daß die meisten GUI-Frameworks ein tiefes Verständnis von C++ (z.B. templates, namespaces, Operatorüberladung etc.) voraussetzen.
Leider gibt es viele Programmieranfänger, die halt am Anfang gleich alles auf einmal wollen... und dann frustriert sind. Du scheinst jedoch schon ein gutes Verständnis für die Programmierung zu haben...Daß du schon einige C++ Bücher gelesen hast, ist auf jeden Fall schon mal sehr gut.
Viel Erfolg noch!
P.S: Ein wenig hast du jedoch überreagiert, denn Artchi hat es genauso gut gemeint. Aber dies scheint sich ja jetzt erledigt zu haben -)
Ich habe mich jedoch köstlich über euren Disput amüsiert - könnte ruhig öfter so sein -)
-
derkollo schrieb:
@artchi
Das hätte passieren können...
Ich merk schon, ich muss unbedingt eine Relasebare Version des Programm rausbringen...
"Vorallem werden doch die ersten Programme von dir eh nicht komplex sein"
Wenn du dich da mal nicht täuscht. Mein Programm nach 4 Monaten C# überfordert sogar schon manche C# Kenner! Was aber auch daran liegen mag, weil man musikalisches Verstädniss dafür haben muss. Man muss vor allem wissen was ein 4/4 Takt ist und was MIDI-Befehle sind.
Ich versuche mal, eine releasbare Version zu erstellen, dann können Interessierte dort mal reinschauen.
OK, d.h. du hast in C# eine größere Anwendung in der Mache, die schon eine komplexere GUI besitzt?
derkollo schrieb:
Ich arbeite dort bereits Klassenvererbung, Datenbankanbindung, Polymorphisums (oder wie sich dat schimpft ;), XML Datenspeicherung...
Deswegen bin ich vielleicht stellenweise wirklich ein wenig vermessen, denn was ich mit C# in der kurzen Zeit schaffen konnte, machte mich selbst stutzig!
Ich sehe schon. Genau da liegt der Hund begraben. Wie gesagt, C++ ist sehr komplex. Und auch die Tools dazu. Es gibt auch in C++ Fallstricke, ganz klar. Du wirst auch viel umdenken müssen.
derkollo schrieb:
Und selber programmieren wollte ich die Dinger doch eh! Deswegen ja meine Frage!
Ich möchte quasi wie bereits geschrieben, eine optische Oberfläche "malen", weil man direkt sieht, ob es gut aussieht oder nicht. Bei einer reinen Programmierung muss man jedesmal kompilieren und starten.Gut, hier muß man wieder eine Anmerkung machen, was in diesem Topic nicht klar wurde: wenn hier alle von "Konsole", "selber Machen" usw. schreiben, geht es immer um das Lernen. Bleiben wir bei deinem Beispiel. Du hast eine komplexe GUI. Du kannst natürlich diese coden aber auch im Designer zusammen klicken. Das zusammen klicken ist hier ja nicht "verboten". Es geht ja nur darum, das du als C++-Anfänger nicht klicken sollst. Und man geht davon aus, das ein Anfänger "kleine Beispielprogramme" schreibt. Denn nur so kann ein Anfänger das System überschauen.
Für gewöhnlich sagt man sich irgendwann: ich verstehe jetzt C++ soweit ganz gut. Ich kann jetzt ein größeres Projekt angehen, und kann auch einen Designer benutzen. Weil ich schon meinen "Gesellenbrief" habe.
Wenn jemand eine Werkzeugmechaniker-Ausbildung anfängt, wird man ihm zu erst eine Feile und einen Metallblock in die Hand drücken. Und dann soll er erstmal machen! Selbst wenn er im Berufsleben fast nie eine Feile benutzen wird. Und wenn er mit der Feile umgehen kann, wird man ihn an die großen Maschinen lassen. Die, die wirklich in der Produktion eingesetzt werden. Weil er dann aus der Erfahrung mit der Feile weiß, wie und was die Maschine macht. Er wird sie viel besser bedienen können und Fehler in der Produktion einfacher finden.
Programmieren ist auch nur ein handwerk. C++ ist ein Tool.
Ich selber benutze auf Arbeit einen GUI-Designer für komplexe Apps. Nur der Unterschied ist, ich weiß, was der GUI-Designer am Ende für Code ausspuckt. Ich kann es sogar vorhersagen!
Niemand will dich davon abbringen, deine GUIs zu designen. Aber besonders bei C++ ist es wichtig, die Basics zu können. Weil die Fehler und Fehlermeldungen manchmal echt "krass" sein können.
EDIT: zu dem immer wieder Kompilieren, wenn man die GUI coded und nicht zusammen klickt. Richtig erkannt. Aber bei Übungsaufgaben ist das ja irrelevant, weil diese ja immer so klein sind. Du hast Recht, das wenn du sehr komplexe GUIs hast, das es da günstiger ist, alles live im Designer zu gestalten. Deshalb haben ja auch die meisten GUI-Libs einen grafischen Designer.

-
th69
Hehe, danke direkt 2 mal. Einmal für die Gute Wünsche und dann noch für die Anmerkung zu dem Disput!

Das bestätigt doch die alte Weisheit: Disput tut gut.
Eine größere Sache würde ich es auf jeden Fall nennen. Allein durch die gegebene und ausbaufähige Komplexität. Stichwort Reason (Musikprogramm) Jedoch nutze ich keine Klangerzeugung, sondern lediglich MIDI. Also eine Instrumentsteuerung.
Man kann in einem oder mehreren StepSequencern Takte programieren und die an externe Instrumente senden. In Echtzeit natürlich. 4 mögliche Takte pro Pattern, 32 Pattern pro Gerät. Automatische Patternwechsel, Wiederholungen, Start- Stoppunkte, Aufnahmemöglichkeit, etc etc...
Komplexe GUI? Hmm... viele Buttons und ChecBoxes, fallst du das meinst.
Sich wiederholende Elemente habe ich in Benutzersteuerelemten zusammengefasst.
Aber alles rein VisualC# style...Ich weiß, dass es bei der Konsole ums Lernen geht. Doch wie du siehst, kann ich mit der Feile schon umgehen.

Wie gesagt, ich wollte keinen seitenlangen Hintergrund schreiben, nur um die Konsole mE gerechtfertig Ablehnen zu können.
Und wie du schreibst, man muss wissen, was bei einem GUI Editor an Code rauskommt! Und darum geht es mir!
Ich muss es für meine Zwecke wissen. Gegenbenfalls muss ich den Code auch anpassen. Alles bewusst und gewollt.Aber ich möchte nicht für jeden Schritt meinen Code erneut kompilieren müssen, um zu sehen ob alles dort sitzt wo es gut aussieht.

So, ich muss jetzt leider los. (Abendschule, denn man bildet sich ja nicht nur auf einem Gebiet weiter!

Wenn du interesse hast, kann ich dir ja mal den Code von meinem Programm zukommen lassen. Aber natürlich nur mit der dringenden Bitte, dass der Code nicht plötzlich im Netz auftaucht. Ich habe mich noch nicht 100% für ein OpenSourceProjekt entschieden!

-
derkollo schrieb:
Ich verstehe, was du meinst mit Grundlagen. Es tut mir leid, dass ich als Grundlagen eben direkt etwas optisches brauche. Der Unterschied ist minimal.
Unter C# vielleicht, aber da bei C++ keine Standard-UI existiert, und sich die Programmierung der diversen UI-Frameworks teilweise auf grundsätlich unterschiedliche Paradigmen stützen, sollte man zumindest schon einmal erste Schritte mit C++ ohne diese Probleme gemacht haben.
Davon abgesehen sollte - wenn man ein sinnvolle Projektgliederung vornimmt - ein Großteil des Codes zwischen Console und Klicki-Bunti austauschen lassen. Unter C++ lässt sich vieles auch schneller ohne UI testen, wenn man gerade etwas experimentiert.
derkollo schrieb:
Oder sehe ich das falsch? Ich habe gute Bücher zum coding hier. Aber leider nur zum Coding.
Weil alle Bücher (zumindest die guten) die sich mit UI unter C++ beschäftigen, schon gewisse Grundlagen voraussetzen. Selbst in den Büchern, die einen Einstieg in C++ und die UI-Programmierung geben wollen, habe ich selten UI-spezifisches in der ersten Hälfte des Buches gesehen.
derkollo schrieb:
Den Tip mit dem Konsolenprogramm, kann ich gut verstehen. Aber entschuldigt, dass ich denke, dass man Grundlagen auch an einer grafischen Oberfläche lernen kann.
Wie gesagt sehe ich dies sprachabhängig (Aber selbst in C#, Java und Co würde ich zumindest die absoluten Grundlagen ohne UI erwarten), in C++ mangelt es halt daran, das sich kein UI-Framework wirklich in die Sprache integriert (wo andere Sprachen dies als Bestandteil ihrer Sprachbibliothek integrieren, und sich dieser Teil auch als "Sprachbestandteil" anfühlt).
derkollo schrieb:
Und warum denkst du, dass ich die Grundlagen gänzlich ignoriere? Weil ich keine HelloWorld Programm schreiben möchte? Weil ich keine Animal BaseClass erstellen möchte, in der ich dann virtuelle Funktionen erstelle um sie an meine CatClass zu vererben?
In C++ muss man auch Pointerarithmetik verstehen und man sollte sich vielleicht auch die Sprachkonzepte ansehen, die C++ von C# unterscheidet (z.B. welche Konzepte die Standardbibliothek abbildet, und wie in etwa diese funktioniert - da hier andere Paradigmen gelten als z.B. beim .Net Framework).
derkollo schrieb:
Natürlich ist der Umgang mit Alloc usw aber absolutes Neuland für mich, da in C# nicht nötig.
Wenn du in einen C++ Buch "alloc" siehst, ist es wahrscheinlich eher ein "C mit Klassen"-Buch. Die meisten C++ Bücher sind in der Qualität eher ... mässig, und waren schon zum Zeitpunkt der Veröffentlichung veraltet.
Falls du aber wirklich schnell, schnell, schnell in UI-Programmierung einsteigen willst, wäre wohl der C++ Builder etwas für dich. Dieser ist aber a) recht teuer und b) hat er einige Probleme mit der Sprache... Die kostenlose Variante (ich glaube Turbo C++ 2006 oder so) ist leider sehr mangelhaft, wenn es darum geht einigermaßen aktuelle C++ Bibliotheken zu verwenden (wie Boost).
-
Danke auch dir nochmal für die ausführliche Antwort. Mittlerweile wurde mir auch bewusst, das meine Art auf jeden Fall etwas zu blauäugig wirkte.

Andererseits fühle ich mich in meinem Denken bestärkt, denn wenn eine GUI maßgelblich mitentscheidend für den Programmierstil ist, sollte man doch direkt von Anfang an schauen, dass man in "die richtige Richtung" lernt. Richtig?
Es bringt einem ja nichts nach Bequemlichkeit zu gehen. Und das passiert, wenn man mit "kleinen" Sachen anfängt. Man gewöhnt sich unter Umständen an Programmiertechnicken, die in größeren Projekten dann wieder eher kontraproduktiv wirken können. Zum Beispiel hat mich ein "simples" Array in meinem Projekt viel Zeit gekostet, da ich alle Daten in Arrays abgelegt habe, welche beim Patternwechsel zu timingproblemen führten. Auf jeden Fall habe ich mir dann ein DataSet geschnappt und gemerkt wie angenehm das Handling von sich wiederholenden Arrays sein kann....
Ich versuche ja schon mir den optimalsten Weg zu suchen. Und damit meine ich nicht den den leichtesten Weg....
Ich denke aber, bei den Büchern eine gute Wahl getroffen zu haben:
- Maximum MIDI - Music Applications in C++ (zwar fast so alt wie die Sprache, aber immer noch eine Referenz in Sachen MIDI-Programmierung)
- Die C++ Programmiersprache von Stroustrup (Als mächtiges Nachschlagewerk und für Hintergrundwissen)
Und - Moderne C++ Programmierung (günstiges Schnäppchen)
Darüberhinaus blättere ich online in Thinking in C++.
Auch wenn sich Anfangs viel überschneidet, stehen halt in einem Informationen die im anderen außen vor gelassen werden.Angesichts dieser recht guten "Grundausrüstung" war ich ja auch so erstaunt über das Minimum an Infos über UI-Programmierung.
Das wiederum, war Anlass zu meinem Post hier.Wo ich speziell das alloc gelesen habe, kann ich dir spontan nicht sagen. Aber ich glaube es kam in der Tat, nach dem Pointer der ebenfalls für mich neu ist.

Und
AHHHHH schnell, schnell, schnell, will ich hier schon mal garnichts! 
Habe ich nie behauptet! Ich habe behauptet, dass ich (aufgrund meiner verdrehten Art, die keinen hier etwas angeht
) effektiver lernen kann, wenn ich mit der Programmierung einer UI anfange. Einer simplen kleinen UI mit 16 harmlosen Lämpchen, deren einzige Funktion sein soll, gewünschtes Lämpchen "leuchten" zu lassen. Oder einer Reihe von CheckBox ähnlichen Buttons...
Diese UI hätte ich dann nutzen können um direkt optisch meinen Code zu testen.
Nach und nach, hätte ich dann Stück für Stück, das aufbauen können, was ich als Ziel vor Augen habe...Ich wollte mir niemals Arbeit ersparen, oder eine rein bequeme Möglichkeit finden!
Ich möchte nur wissen, in welche Richtung ich arbeiten muss, um mein Ziel qualitativ umzusetzen! Würde es mir um eine andere Geschwindigkeit als die der Laufzeit meines Programmes geben, hätte ich die 0815-Elemente von VisualC++ genommen und damit auf biegen und brechen mein Ding durchgezogen!
Nein, garnicht wahr. Ich wäre bei C# geblieben!
Auch wenn ich mein "UI-Ergebnis" gerne in der ToolBox gesehen hätte, dann nicht um es mit wenigen Klicks irgendwo einfügen zu können, sondern um:
1. Eine langfristig gute Übersicht über die in meinem Projekt verwendeten UI-Elemente zu behalten (Es werden ca 10-20 einzelne Elemente)
2. Ein gewisses Gefühl von "Professionalität" zu haben. Denn auch wenn per Code eingefügte Elemente das selbe Ergebnis liefern, macht sich ein Karteireiter mit eigens erstellten Elementen in der ToolBox doch um einiges netter.Es war nie geplant, dass als "Abkürzung" zu nuzten, sondern um das Ganze angemessen abzurunden. Denn was nutzt der beste Code, wenn die UI wie ein 0815 Windowsfenster aussieht? Fast jeder User wird ein Programm mit "gepimpter" Optik, aber minimal schlechterem Code, einem schlecht aussehendem Programm vorziehen. Zumindest die meisten Nutzer. Nur HardcoreFrickler mögen natürlich minimale Optik und wissen den mächtigen Code zu schätzen.

Also, für mich erstmal abschließend, Danke für die Aufklärung!!
Meine ursprünglichen Fragen sind definitv fürs erste geklärt.

Wenn der Prototyp vorzeigbar ist, werde ich das Ding hier einmal posten. Ich wäre dann wirklich für eure Tipps und Ratsschläge dankbar, wie ich das Ganze am besten in C++ realisiere...
Allein schon in Bezug auf Performance....Aber das alles zu seiner Zeit.
Grüße
-
derkollo schrieb:
Andererseits fühle ich mich in meinem Denken bestärkt, denn wenn eine GUI maßgelblich mitentscheidend für den Programmierstil ist, sollte man doch direkt von Anfang an schauen, dass man in "die richtige Richtung" lernt. Richtig?
Nach meiner Meinung sollte man sich nie zu sehr von einem UI-Framework abhängig machen (sinnvolle Schichtentrennung), da nach meiner Erfahrung am ehesten der UI-Teil ersetzt wird (sei es durch eine Migration auf ein anderes Betriebssystem, falls man ein OS spezifisches Framework gewählt hat, sei es weil der Support eingestellt wird...).
Logik - wenn sinnvoll getrennt - ist meist weitgehend portabel.
-
asc schrieb:
Nach meiner Meinung sollte man sich nie zu sehr von einem UI-Framework abhängig machen (sinnvolle Schichtentrennung), da nach meiner Erfahrung am ehesten der UI-Teil ersetzt wird (sei es durch eine Migration auf ein anderes Betriebssystem, falls man ein OS spezifisches Framework gewählt hat, sei es weil der Support eingestellt wird...).
Logik - wenn sinnvoll getrennt - ist meist weitgehend portabel.
Ok, dass klingt logisch. Den Aspekt der Portabilität habe ich bis jetzt noch nicht genug bedacht... Ich werde mich wohl echt erst noch ein paar Wochen durch diverse Artikel und Tutorials lesen müssen, bevor ich ernsthaft daran denken kann, mein Programm in C++ umzusetzen...

-
derkollo schrieb:
Denn was nutzt der beste Code, wenn die UI wie ein 0815 Windowsfenster aussieht? Fast jeder User wird ein Programm mit "gepimpter" Optik, aber minimal schlechterem Code, einem schlecht aussehendem Programm vorziehen.
nö, von mir aus kann ein programm 'ne super-schäbige gui haben, hauptsache es ist stabil und macht immer was es soll. und gerade bei GUIs ist weniger mehr. sinnvoll angebrachte und funktionierende steuerelemente etc. sind besser als künstlich aufgeblähter grafischer firlefanz. bunt, kitschig sinnlose animationen usw. verwirren nur und bringen überhaupt nix. mit webseiten ist es genauso.

-
;fricky schrieb:
nö, von mir aus kann ein programm 'ne super-schäbige gui haben, hauptsache es ist stabil und macht immer was es soll.
Ausnahmsweise etwas wo unsere Meinungen mal relativ nah beieinander liegen.
Wobei ich persönlich Programme besser finde, die zumindest eine gewisse "Grundoptik" haben. Damit meine ich das sie Optisch zumindest grundlegend zu dem OS-üblichen optischen Umfeld passt, und auch die Steuerung sollte sich möglichst ähnlich anfühlen.
Wobei Optik erst nach Stabilität (\flamewar=on Warum ich C++, C vorziehe ;p \flamewar=off) kommt.
cu André
-
asc schrieb:
Wobei Optik erst nach Stabilität (\flamewar=on Warum ich C++, C vorziehe ;p \flamewar=off) kommt.
ah, endlich ist er da, der flamewar *fg*
wie kann C++ stabiler sein als C? bei beiden sprachen sorgt fast ausschliesslich der programmierer für stabilität oder instabilität. dass C++ code im verhältnis zu C robuster oder sicherer ist, ist nichts als ein hartnäckiges gerücht. ich behaupte sogar, dass die chance, schlechte software zu basteln, mit C++ weitaus grösser ist, als mit C.

-
nachteule schrieb:
Ja, willkommen in der C++ Community. Im Gegensatz zu anderen Programmierer-Communitys ist man hier fest davon überzeugt die Krone der (Programmierer-)Schöpfung zu sein, und dementsprechend ist hier auch der Ton der Mitglieder, denen ich dringend empfehlen würde mal in ein anderes Forum zu blicken, denn es geht auch anders. Ich weiß leider auch nicht woran das liegt, vielleicht sind die alle so gefrustet weil sie mit miesen IDEs arbeiten müssen, damit schließt sich der Kreis wieder

Es liegt am
Smily.