Laden...

Frage zur Erstellung von Windows-Anwendungen

Erstellt von Weyoun vor 18 Jahren Letzter Beitrag vor 18 Jahren 4.803 Views
W
Weyoun Themenstarter:in
71 Beiträge seit 2006
vor 18 Jahren
Frage zur Erstellung von Windows-Anwendungen

Hallöchen, allerseites!

Ich hoffe, ich bin hier im richtigen Unterforum (für das Projekte-Forum ist mein Programm meiner Meinung nach noch nicht würdig genug). 😁

Folgendes Problem:
Nachdem ich mich nun mit der Erstellung von Konsolen-Programmen unter Microsoft Visual C# 2005 Express vertraut gemacht habe, will ich nun meine erste Windows-Anwendung erstellen.

Dies soll ein Programm à la "Wer wird Millionär" werden.

Ich habe nun bereits diverse Links besucht und mich in die Materie eingelesen, doch wird irgendwie nirgends (verständlich) beschrieben, wie man es z.B. schafft, durch Drücken eines bestimmten Buttons den Bildschirminhalt eines der enthaltenen Text-Fenster zu verändern.

So soll z.B. Beim Drücken von "Start" der Begrüßungstext der ersten Frage weichen.

Es wäre wirklich sehr nett, wenn ihr einem Newbee mal kurz und verständlich erklären könntet, wie man das am besten anstellt.

Das mitgeschickte Programm ist erstmal nur ein "Skelett" (nur die äußere Form der Windows.Anwendung ist fertiggestellt).

Vielen Dank schon mal im Voraus!

Gruß, Martin!

PS: Falls dieser Thread doch lieber ins Projekte-Forum gehört, hätte ich nichts gegen ein "Verschieben" einzuwenden.

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo Weyoun,

sorry, wenn ich mir den Rahmen angucke, bist du vom Verständnis noch ziemlich weit weg von dem, was du willst. Natürlich hat jeder man klein Angefangen, dagegen ist gar nicht zu sagen. Aber eine Einfühung in Windows Programmierung zu geben, kann aber ein Forum nicht leisten. Deshalb kann ich dir nur dringed raten, dich anhand eines Buches in die Materie einzuarbeiten (Ich kenne keine Web-Site, die wirklich ein Buch ersetzt). Buchempfehlungen findest du wenn du nach diesem Begriff und seinen Abwandlungen (Buch empfehlen ü.ä.) suchst hier im Forum suchst.

herbivore

W
Weyoun Themenstarter:in
71 Beiträge seit 2006
vor 18 Jahren

Danke für deine Meinung!

Ich habe folgendes Buch recherchiert, dass für das Erlernen der Programmierung unter Visual C# geeignet ist:
Buch
Was haltet ihr davon? Bei Amazon war leider keine Rezension darüber zu finden.
PS: Eigentlich brauche ich nur das Buch, Visual C# 2005 Express habe ich ja bereits, aber dieses Buch wird halt nur mit CD verkauft, oder gibt es das in ähnlicher Form auch ohne CD?

Danke und Gruß, Martin!

564 Beiträge seit 2006
vor 18 Jahren

Hi Weyoun!

Du kannst auch erstmal die aktuellen Ausgaben der c't hinzunehmen. Da gibts zurzeit eine Einsteigerserie für C# mit Visual C# Express, wo dir grundsätzliche Sachen der OOP geklärt werden! Aktuell ist es Teil 2/5.

Viel Spaß! 🙂

Gruß, der Marcel

:] 😄Der größte Fehler eines modernen Computers sitzt meist davor 😁 :]

1.271 Beiträge seit 2005
vor 18 Jahren

Perfekt wäre eine Buch zur Windows-Forms-Programmierung, das dir den Umstieg von Konsolen- auf Windows-Forms-Anwendungen erklärt. Du könntest z.B. eins von MSPress nehmen: Windows Forms-Programmierung mit Visual C# 2005. Das Buch bietet dir einen kompletten Überblick über Windows Forms.

A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.

3.728 Beiträge seit 2005
vor 18 Jahren
Einarbeiten

@Weyoun: Hast Du Dir schon mal Guide to C# angesehen: http://www.mycsharp.de/guide/ ?

Wenn Bücher mit CDs angeboten werden, bedeutet das nicht, dass die Software (in Deinem Fall Visual Studio) um die sich das Buch dreht, automatisch auch auf der CD ist. Meistens sind dort die Quellcodes der Beispiele drauf. Manschmal vielleicht eine 30 Tage Testversion.

Zu Deiner Frage, wie man durch drücken eines Buttons die Anzeige verändert:

Windows-Anwendungen sind aus Fenstern (Forms) und Steuerelementen (Controls) gebaut. Die Steuerelemente werden auf den Fenstern plaziert. Man kann sie auch unsichtbar machen (Um z.B. dem Benutzer bestimmte Funktionen erst zu einerm bestimmten Zeitpunkt zur vefügung zu stellen). Wenn der Benutzer bei laufender Anwendung auf einen Knopf (Button) drückt, wird ein Ereignis (Event) ausgelöst. Ereignis bedutet, dass etwas passiert und automatisch die dafür vorgesehene Prozedur (Ereignisprozedur) in Deinem Quellcode ausgeführt wird. Von dieser Prozedur aus, kannst Du das weitere Geschehen bestimmen. Du kannst z.B. Steuerelemente sichtbar machen oder verstecken, oder neue Steuerelemente hinzufügen. Alles was mit C# machbar ist, kannst Du tun.

Besorg Dir aber AUF JEDEN FALL ein GEEIGNETES BUCH!

W
Weyoun Themenstarter:in
71 Beiträge seit 2006
vor 18 Jahren

Aha, Danke!

Das "Windows.Forms-Programmierung" Buch von M$ ist mit 40 Euronen etwas happig gemessen. mal sehen, ob ich es in der TU-Bibliothek oder auch der Stadtbibliothek bekomme.

Zu dem anderen Buch von M$ (steht in meiner Frage) könnt ihr nichts sagen?
Kostet "nur" 19.90 und ist für Einsteiger konzipiert -> es besitzt eine DVD mit Visual C# 2005 Express sowie diverse Programmbeispiele auf CD.

Gruß, Martin

PS: Den Guide zu C# habe ich durchgelesen, doch leider ist er nicht vollständig (nach Teil 3 geht es nicht weiter). Außerdem konnte ich dort keine befriedigenden Antworten finden. =)

1.271 Beiträge seit 2005
vor 18 Jahren

Das Buch, das du meinst, ist halt nur ein Schnelleinstieg. Es beschreibt zudem auf den nur ~210 Seiten auch noch VS C# Express. D.h. du weißt danach von allem ein bisschen, aber nicht gescheit.

Wenn du ein wirklich gutes Buch haben willst, von dem du auch auf lange Zeit gesehen etwas hast, solltest du dich von 40€ nicht abschrecken lassen und auch mal tiefer in die Tasche greifen. Das ist im Vergleich zu einigen Büchern noch billig!

EDIT: Noch ein Buch: Microsoft Visual C# 2005 - Schritt für Schritt. Das kostet genauso viel, es steht aber mehr drin. Das gibt dir einen Überblick über C#, OOP, .NET-Framework und Win-Forms. Und es ist auch noch eine Version von VS 2005 Prof, die du 1/2 Jahr nutzen kannst, dabei!

A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.

W
Weyoun Themenstarter:in
71 Beiträge seit 2006
vor 18 Jahren

OK, danke!

Ich werde morgen gleichmal in die TU- sowie die Stadtbibliothek gehen und versuchen, die Bücher auszuleihen.
Dann kann ich mir in Ruhe ein Bild über die Thematik machen und später immer noch das eine oder andere Buch kaufen (wenn es mir gefällt).

Wenn es nicht geht, werde ich es bei Amazon bestellen (der Rückkaufwert bei ebay und Amazon Market Place ist ja nicht zu verachten (fast kein Wertverlust).

Bei welchem Buch steht mehr (und natürlich verständlich) über Windows Forms drin:

  1. Microsoft Visual C# 2005 - Schritt für Schritt oder
  2. Windows Forms-Programmierung mit Visual C# 2005?

Gruß, Martin

3.728 Beiträge seit 2005
vor 18 Jahren
Schritt für Schritt

Die "Schritt für Schritt" Bücher kannst Du vergessen. Das sind nur Bilderbücher. Klicken jetzt auf das zweite Menü links oben ....

Nimm die MSPress mit festem Einband und dem schwarzen Streifen drauf. Außerdem sind Addison-Wesley und O`Reily (Bin mir nicht sicher, ob es so geschrieben wird.) noch gute Verlage.

V
60 Beiträge seit 2006
vor 18 Jahren

Glaub mir, das ganze ist echt kein Ding der Unmöglichkeit.

Lade dir einfach mal das Visual Studio Express C# bei MS Germany , da ist eine Integrierte Einführung in alle möglichen Probleme der programmierung, die auch ANfänger verstehen.

Ist echt was tolles wenn du noch kein Geld Ausgeben willst.

W
Weyoun Themenstarter:in
71 Beiträge seit 2006
vor 18 Jahren

Das Programm habe ich doch bereits (siehe meine "Entwicklungsumgebung) von der vorletzten DVD der c't.
Und die Hilfe dort ist "mäßig". =)

Ich gebe jetzt erstmal in die beiden Bibliotheken und leihe mir die beiden Bücher von Microsoft aus (wenn sie nicht gerade entliehen sind).

Gruß, Martin

V
60 Beiträge seit 2006
vor 18 Jahren

Guckst du hier , ist zwar English aber Grundlagen sind Grundlagen...

http://www.physics.drexel.edu/courses/Comp_Phys/General/C_basics/c_tutorial.html

W
Weyoun Themenstarter:in
71 Beiträge seit 2006
vor 18 Jahren

Häh?
Das ist doch C und nicht C#!!!
C kann ich doch. 😁

2.082 Beiträge seit 2005
vor 18 Jahren

Hallo Weyoun,

Das ist doch C und nicht C#!!!

ja das ist c.

Aber wie du ja sicherlich schon bemerkt hast, baut c# an c auf. Und wenn du c schon kannst dann wirds dir leicht fallen, dich in c# einzuarbeiten.

Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de

V
60 Beiträge seit 2006
vor 18 Jahren

Eigentlich ist das doch ganz einfach.

Du musst eben ein paar Variablen Definieren, den Wert zuweisen z.B Hallo Gast

Dann definierst du eine andere Variable , in der du die Antwort Speicher kannst.

Dann brauchst du ein Windows Form und einen Eventhandler, Eventlistener, der die Knopfdruck Aktionen ausführt und dann noch ein paar Funktionen für die jeweiligen Aktionen die er ausführen soll.

Das sollte eigentlich grob der Umfang sein den du brauchst um sowas zu machen.

Was genau musst du denn machen?

W
Weyoun Themenstarter:in
71 Beiträge seit 2006
vor 18 Jahren

Was genau ich machen will, ist eigentlich dem beigefügten Programm zu entnehmen:
Ich will ein "Wer wird Millionär" Spiel erstellen, bei dem durch Drücken bestimmter Buttons unterschiedliche Texte in den unterschiedlichen Textausgabefenstern erscheinen soll.

Bsp. 1:
Drücken vom "Start-Button" -> der Begrüßungstext soll verschwinden -> dafür soll die erste Frage erscheinen, sowie die 4 Antwortmöglichkeiten erscheinen
Bsp.2:
Drücken von "50:50 Joker" -> 2 der 4 Antworten sollen verschwinden -> gleichzeitig soll der Joker für die Dauer des Spieles gesperrt sein (ist nur einmal nutzbar)

Ich denke mal, das Programm ist ziemlich komplex und ohne ein gut geschriebenes, leicht erklärendes Buch nicht zu schaffen ist (zumindest nicht von einem Newbee wie mir, der bisher immer nur mit Konsolenprogrammen (C und Assembler) zu tun hatte und für den die Programmierung von "Windows-Forms" Neuland ist).

Gruß, Martin

V
60 Beiträge seit 2006
vor 18 Jahren

Schau mal , die 2. Antwort auf deine Frage war dfas du dem Ansatz nach der Lösung nahe bist, du weisst doch genau was de machen willst, und du weist wie man die Variablen Definiert, das würde ich als erste machen, alle Variablen definieren.

Wenn alle Variablen vorhanden sind , musst du dir deine Fuinktionen schreiben, das ist auch ganz einfach.

Am besten du startes eine Konsolen Applikation, nicht gleich ein Windows Fenster , das ist schwer, zu Handhaben, aber wenn dann musst du in deiner Dokumentation nach dem Eventhandler suchen , der wartet bis du klickst und führt dann das aus was du ihm gesagt hast.

Even = ereigniss und Handler ist Handhaber oder Ausführer .

Also , Variablen , dann Funktionen , und dann Eventhandling.

Stichwort Array um mehrere Fragen in einer Variable zu defineiren , Random für zufalls Zahlen also Zufallsgenerator für die Fragen ,eine Funktion zum vergleichen deiner Antworten usw.

Also denken musst du , aber damit dir deine Fragen nach was ist was bei C# nicht die Lust nehmen , ist hier noch ein tolles Kostenloses Buch für dich.

http://www.galileocomputing.de/openbook/csharp/

W
Weyoun Themenstarter:in
71 Beiträge seit 2006
vor 18 Jahren

Danke für den Link!

Da ich jeztz in den nächsten Minuten eh zur "Bibo" fahren muss (habe noch Bücher abzugeben), kann ich ja nachfragen, ob sie die beiden Bücher haben, dann habe ich sie ja auch kostenlos. 😁

Gruß und Tschüß (ich muss jetzt weg), Martin! 😁

W
Weyoun Themenstarter:in
71 Beiträge seit 2006
vor 18 Jahren

Hallöchen, da bin ich wieder!

Hatte in letzter Zeit wenig Zeit, doch nun habe ich mal in den beiden obigen Büchern ("Schritt für Schritt" sowie "Windows-Forms") geschmökert. Die Bibliothek hatte die Bücher noch nicht, doch sie hat sie bestellt, nachdem ich diesen Wunsch geäußert habe. Das nenne ich echt Service!!! Das hat nicht jede Stadtbibliothek zu bieten. 1 Woche später konnte ich die Bücher ausleihen. 😉

NUn gut, das "Millionärs-Programm" ist zur Zeit fast fertig (ich muss mir bloß noch entsprechende Fragen sowie deren Antworten "einfallen lassen").

Dazu habe ich noch eine Frage an die Experten:
Wenn ich z.B. das falsche Antwortfeld anklicke, soll

  1. Ein Popup aufgehen, dass die Antwort falsch ist UNS

  2. Anschließend soll das Programm terminiert werden (komplette Beendigung)

  3. habe ich hinbekommen, aber 2) nicht. Ich habe zwar zwei Befehle (Form.Close bzw. Application.Exit) herausgefunden, doch gibt es jedesmal Fehlermeldungen beim Compilieren

Anbei ein kleiner Code-Ausschnitt:


private void AntwortA_Click(object sender, EventArgs e)
        {
            if (AntwortButtonZaehler == 50) { MessageBox.Show("Bitte klicken Sie erst auf Start, um das Programm zu beginnen!"); }
            if (AntwortButtonZaehler <= 0) { MessageBox.Show("Sie haben diese Frage bereits korrekt beantwortet! Bitte klicken Sie auf 'nächste Frage'!"); goto SchlussA; }
            if (Fragenzaehler == 1) { MessageBox.Show("Leider falsch! Somit ist das Programm beendet! Probieren Sie es später doch noch einmal");/*Programmabbruch*/ }



        SchlussA: ;
        }

Nun hätte ich gern gewusst, was ich anstelle von /Programmabbruch/ schreiben soll?!?

Vielen Dank und liebe Grüße, Martin

379 Beiträge seit 2004
vor 18 Jahren

Was bringt er dir denn beim compilieren für einen Fehler?

Also zuerstmal was grundlegendes... Bitte verwende niemals "goto", das war das erste was unser Informatik-Dozent uns im 1. Semester C beigebracht hat... Rufe dort einfach eine Methode auf, die dann halt entsprechenden Code ausführt.

Verwende if-else-Schleifen, dann muss er nicht was prüfen was eh nicht der Fall sein kann, denn entweder ist AntwortButtonZaehler gleich 50, oder es ist kleiner gleich 0, es kann aber nie beides sein 😉


private void AntwortA_Click(object sender, EventArgs e)
        {
            if (AntwortButtonZaehler == 50)
           {
                 MessageBox.Show("Bitte klicken Sie erst auf Start, um das Programm zu beginnen!");
            }
            else if (AntwortButtonZaehler <= 0)
            {
                  MessageBox.Show("Sie haben diese Frage bereits korrekt beantwortet! Bitte klicken Sie auf 'nächste Frage'!");
                  SchlussA(); // Aufuf einer Methode statt GoTo
            }
            else
            {
                  MessageBox.Show("Leider falsch! Somit ist das Programm beendet! Probieren Sie es später doch noch einmal");
                  Application.Exit();
             }
        } 

ciao Anke

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo Weyoun,

  1. Ein Popup aufgehen, dass die Antwort falsch ist UND
  2. Anschließend soll das Programm terminiert werden (komplette Beendigung)

das sind ja harte Sitten! 🙂

Wenn das Form, in dem AntwortA_Click definiert ist, das Hauptfenster ist, dann sollte Close (); reichen. Wenn das geht, wäre es auch besser als Application.Exit.

herbivore

W
Weyoun Themenstarter:in
71 Beiträge seit 2006
vor 18 Jahren

Vielen Dank! Mit Close () klappt es -> ich hatte gedacht, dass man Form.Close() eingeben muss. 😉

Es war mir übrigens klar, dass sich gleich über meine goto's beschwert wird.
Ich sage dazu immer folgendes: Wenn sie zu nichts taugen würden, dann wären sie nicht erfunden wurden.
Und das Programm läuft doch absolut fehlerfrei, also was soll's?

Wenn ich jetzt als Programmierer arbeiten würde, dann könnte ich mir vorstellen, einen anderen Stil zuzlegen, aber dieses Programm ist doch bloß Hobby. 😉

Na gut, ich werde mal sehen, wenn ich etwas Zeit habe überarbeite ich das ganze nochmal à la hurricane. 😉

PS: Wenn das Programm fertig ist, stelle ich es mal hier ein (aber erst die Fragen lösen und dann den Code begutachten!!!) 😉

Gruß, Martin

564 Beiträge seit 2006
vor 18 Jahren

Hi Weyoun!

Wenn ich jetzt als Programmierer arbeiten würde, dann könnte ich mir vorstellen, einen anderen Stil zuzlegen, aber dieses Programm ist doch bloß Hobby. 😉

Dann wollen wir das mal so stehen lassen 🙂 Auch wenn man ein Freeware-Autor ist, ist das arbeiten mit den Tipps aus dem Forum doch sehr nützlich 🙂

zu den gotos:

Meiner Meinung nach sind sie unübersichtlich und können leicht durch übersichtlicheres und eleganteres Programmieren ersetzt werden. Wozu benötigt man goto? Um zum ende zu springen? Dazu kann man besser gleich ein richtiges return setzen. Um nur bestimmte teile des Codes einer methode auszuführen? Man kommt besser, wenn man dann in mehreren Methoden schachtelt, da dabei Fehler reduziert werden können.

der Marcel

:] 😄Der größte Fehler eines modernen Computers sitzt meist davor 😁 :]

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo Weyoun,

Ich sage dazu immer folgendes: Wenn sie zu nichts taugen würden, dann wären sie nicht erfunden wurden.

Wie fast alles, was erfunden wurde, kann man gotos gebrauchen oder missbrauchen. Deine Verwendung ist missbräuchlich, sorry. Es gibt nur sehr wenige Stellen, an denen man goto gebrauchen kann. Und auf diese Stellen wirst du als Hobby-Programmierer vermutlich nicht stoßen. Deshalb vergiss am besten, dass es goto gibt.

Davon abgesehen wurden gotos zu Assemblerzeiten erfunden, mittlerweile gibt es besseres. Du würdest ja vermutlich auch nicht wollen, dass du mit Medikamenten aus den 50ern behandelst wirst, wenn es heute wesentlich bessere gibt.

Und das Programm läuft doch absolut fehlerfrei, also was soll's?

Programme mit "misbrauchten" gotos sind i.d.R. schwerer zu verstehen. Und da Programme auch im Hobbybereich öfter gelesen als geschrieben werden, sollte es sich auch für dich lohnen umzusteigen.

herbivore

564 Beiträge seit 2006
vor 18 Jahren

hi herbivore!

Davon abgesehen wurden gotos zu Assemblerzeiten erfunden, mittlerweile gibt es besseres. Du würdest ja vermutlich auch nicht wollen, dass du mit Medikamenten aus den 50ern behandelst wirst, wenn es heute wesentlich bessere gibt.

Der Vergleich ist wirklich gut 😁 👍

der Marcel

:] 😄Der größte Fehler eines modernen Computers sitzt meist davor 😁 :]

W
Weyoun Themenstarter:in
71 Beiträge seit 2006
vor 18 Jahren

Original von herbivore
Hallo Weyoun,

Davon abgesehen wurden gotos zu Assemblerzeiten erfunden, mittlerweile gibt es besseres. Du würdest ja vermutlich auch nicht wollen, dass du mit Medikamenten aus den 50ern behandelst wirst, wenn es heute wesentlich bessere gibt.

Deshalb kommen mir die goto's so bekannt vor. 😁
Im Studium haben wir viel mit Intels 8086-er sowie Motorola-DSP's in Assembler programmiert. Und da waren goto's üblich. (bei der C-Programmieung haben wir sie dann nicht mehr so oft benutzt).

Na, gut, ich werde mir den Tipp zu herzen nehmen.

Erst werde ich das Programm aber im jetzigen Stil beenden (viel fehlt ja nicht mehr) und anschließend werde ich es gemäß euren Tipps "modifizieren"

Alles Klar? 😉

Gruß, Martin

W
Weyoun Themenstarter:in
71 Beiträge seit 2006
vor 18 Jahren

So, ich habe im Projekte-Forum nun mein Millionärs-Programm veröffentlicht!

Vielleicht interessiert es ja den ein oder anderen (die Fragen sind nicht ganz einfach). 😉

Gruß, Martin

564 Beiträge seit 2006
vor 18 Jahren

Alles klar, ich räum jetzt die Million ab 🙂

:] 😄Der größte Fehler eines modernen Computers sitzt meist davor 😁 :]