[Playlisten] [Impressum und Datenschutzerklärung]

S01 C#, WPF, erstes Programm


CC-BY-NC-SA 3.0

Tempo:

Anklickbares Transkript:

das erste Programm in sie scharf mit dem Windows passen technisch Framework solldieses Tunhätte gerneeinen Klecks der durchsFenster fliegtKugelsondern was ausmachenweilich möchtedie Kugelanklicken könnenPunkt ?? machenPunktdas sollmöchte die Waffen schalten könnenBeistrichklickenatürlich nicht gezählt werden das es ja einfachdas ?? das Programm ?? werdengebaut mitStudiumeinneues Projektundzwarnicht irritieren lassen ?? nicht Visual Basicbeschreibt sie SharpWindowseineWindows befindlichen FrameworkAnwendunganeiner sinnvollen Stelle ablegenBeistrich es auf Desktopwas anderes wählenden Vornamen gebenKugelokaymuss ich sofort die beiden HauptbestandteiledesProjekts dass es einmal die sorgsameDatei eine XML Beschreibungfür dieOberflächegrafisch wiedergegebenund hierals Listezum Ausfüllenwiedergegebenunddie eigentliche Logik steckt hier drin das es die ProgrammdateiPunkt CSfür sie Sharpoder früher Punkt sie hatten fürzehnich fange damit anein paar Bedienelementeauf die Fläche zu zieheneinmal auf diese Fläche klicken ?? eine richtige Toolboxda kommt zum Beispiel ein Buttonbezogen auf die Flächeeine Checkbox wollte ich haben muss schnell und langsamzu schalten und ich wollte dreiRadio Buttons habenRadiobuttonsvon wegenden Knöpfen am RadiodieStationsknöpfeam Radioes ist immer nur eine Station aktivMandatder Checkbox die Checkbox sagt ja alleinzehnCheckboxen nebeneinander sagt jede für sich alleine die bei dir Buttonsheben sich gegenseitig auf wenn ich eins anklicken gehen die anderen auswenn ich mehrere Gruppen von relevanten Sammelgruppenbilden aber ?? reichtdas in der Form das meine Bedienelementedie heißen jetzt erst mal nochstandardmäßigeher ungeschickt gegenüber den ordentlichen NamentypischerweiseContent zu finden ?? schon einsortiertwas da geklickt habeButton hat den ContentButtonzur Startstopp heißt doppelklicken und Süchtige eingehendie Checkbox soll schnell heißenich könnte das hier eingeben kann auch hier zum Eigenschaft FensterContentdahingehendzuLdas wird hier dannübernommeneins zu einsderVideobuttonder erste sollrot heißen ?? als Strippenziehereinzugebender zweit sollheißenund stellt soll blau heißenMann siehtwie das schön zusammen spielt was sich hier in die XML-Dateieintragewird hier sichtbar an dem Eigenschaftsfensterrücken was ich im Eigenschaftsfensterdirekt hier sichtbar wenn ich ?? oben etwasSchiebekraftrichtigen Schiebereingehenderüber das wenn ich den Kopf durch die Gegend schiebendas auch noch ändertall diese drei Dachfenster eng miteinander zusammenin irgend eins fehltdas sehr beliebigzusammenstellenbesser zu machen Fenster fest binganz viel an der falschen Stelle verborgen ist im Ansichtsmenüdie das mal unter Einsatz von Zellen wieder findensichdass meine Bedienelementedie möchte ich aus demProgrammtextaber auch aufrufenkönnenamButton eins ist ein bisschen BilderrahmenvielleichtStartstoppund die Checkbox kann ich vielleicht mal Checkboxwarstkönnte ich auf Deutsch benennenund kann mich was zu machen aber auf Englischder erste VideobuttonPunktokay der letzte Radiobuttonheißt dannruhtder hierwirdzwischenderStadtWienundistnunvielleicht doch in die übliche Reihenfolge bringen den Blau nach unten und nach oben man sieht nebenbei des Visual Studioviel hilftes die Anordnunganbelangt damit das aber wirdso Kommajetzt brauche ichihnwohl wieder das Fenster schließtdas isteine Ellipsedie finde ich nicht in der Toolboxab Werk nicht in der Toolboxdannstattdessen trage ich die zu Fuß ein mitistdie Fensterflächehierdas innere Fensterflächewird automatisch was da drinnen istin einem Raster angeordnet deshalb miteiner ?? umschaltendas waren die Einträge da drinund jetzt kommt das ?? Google werden sollich zu FußPhilipserweisen sich nur die ersten beiden Buchstaben ticken Beistrich ?? Lips einmal Tabulatorkomplettwas soll diese Ellipse habendie soll eine breite und eine Höhe haben sinnvollerweisenicht einfach Weitergeburtstagswitzzwanzig breitLeerzeichenkommt wieder die Auswahlliste?? ich brauch eine HöhemitTabulatorzwanzig hochdas Ding sollFarbe habendas heißt in diesem Spielwilldas willund zwargut mitAnfangist ordentlich auch Einnahmen nicht mitreden kanndasRollenund erstmals Ende hierEnde dieses Elements ist XMLbis letztes Semester eine schon kurz dran kanndie Elementeschwitzen Klammer auf und wenn einer mit keinen Inhalt hatSchrägstrichspitze Klammer zuendenoder wenn ein Element Inhalt hatwie jedes Skriptvornesagen was es sein soll dann die ganze Liste und hier kommt dann das Entdeckfür dieses Element genauso bei dem Fenster der unten ist das Fenster zu EndeJugend das Fenster andie Ellipse wichtigesZentrumBeistrich was er tun soll saisonal bewegt werden deshalb auch an andere Sortean Layoutelementhier das Grid hilft mir nicht so vieldas in Sachenreihen und Spaltenanordnungan Campbells ist was ich brauchedie Leinwandmit dem Element kann ich dann tatsächlichfrei platzierenPlatzierungpassiertüber das kennen müsste denn was weißwo seineKinderobjekte drin hängen deshalb kann ich jetzt sie jetzt bei der Ellipsesagen okayzu dem kennen was zu dem du gehörst und stelle dannzum Beispiel den Abstand vom linken Rand einhundert fünfzigund geht zu dem ?? Klammer zu denken müsse den ?? gehörstund den Abstand vom oberen Rand einpaarhundertda sind wir das an die grafischenElementespeicherndieerste Funktionalitätgleich sofort nämlich diese verknüpft mit Leben füllen aber wir können schon anguckendas Programmlaufen lassenso saß er letztes Semester auch schon aus in zehnjähriger Programmfensterchendas auch schonMausklicks entgegenbringtabernichts tutdas kommt nundas erste wird sein die?? baten sie mit Leben zu füllenKomma denroten Knopfdiese Elemente habenEigenschaftendie hier aufgelistet sind wahlweisehierarchischals was Text gehörtzu Sichtbarkeit gehört und so weiteroder alphabetischsie habenEreignisseespassierenSachen über die diese Elemente informieren könnenist das Ding angeklickt?? abgehakt soll ich sagenwir das Ding angeklickt?? geht dann mit der Maus reingetan mit der Maus rausdass man etwas drauf falleneine Riesenlistewas mich interessiert ist das Klickereigniskönnte jetzt hier hintenwas eintragen kann ?? auch hier hingehenzu privatenLeertasteKlickund damit sage ich was passieren soll wenn dieser Button angeklickt wirddass es verdächtig ähnlich zudem gewanner in HTMLund Javascript arbeitet auf Webseitenalso wenn dieser Videobuttonangeklicktwird so etwas passieren was da stehtdann einfach hier ?? Ereignis hinter Doppel klicken dann erzeugte Visual Studioautomatisch die Funktionaufgerufen wirdalso nun gibt es eine Funktion wird über den Wettklickautomatisch genannt ?? Button etwa der Name von dem Button Klick ist der Name des Ereignissesund mein Programm Codefür das anderenhier sind wirdiese Funktion wird aufgerufenwenn der rote rede Button geklickt wird Komma soll dann passieren?? ich möchte mir die Kugel nehmennur noch ?? genanntist sieals die Kugeletwas mit der Kugelanstaltenmöchten ähm??will die Füllung ist an die Füllung umstellen aufrotrote Knopf angeklickt worden istda muss man jetzt wissen es gibt eine Sammlung an Füllungenraschesund in dieser Sammlung gibt eseine rotdie andernPrivaten sollen ähnlich arbeitenklicken ?? in der Tatdas sicher einfacher aus als es tatsächlich istdie Maschine muss sichnicht nur merken dass das jetzt Begründung für grüne Füllung hat es muss auchin den Speicher übertragen werden damitviele Zwischenschritte die man jetzt einfachignorieren darf es funktioniert so wie es funktionieren sollnun kommt die Animationich möchte dass dieser Ball durch die Gegend fliegtan könnt ihr es probierennuneinfache for-Schleifeeinzubauenwäre haarsträubendüber dasPersonal in der sich niemand mehr den Stadt Stoppknopfindem eine KlickmethodeundEreignishändlernEreignis hinternaiv könnte man glauben?? Animationichfor-SchleifePunktanimieren das ganz in der for-Schleife setzt irgendwelche Werte der for-Schleifeimmerfort tippen zweimal Tabulatorversteht dann schon die for-Schleife damansich nimmer nicht in sonder Punkt damit die for-Schleifebeschäftigt werden kannPunktund dann malfor-Schleifevorstellen ?? hier drin könnte ?? jetzt ?? mirgesehen kennen was weiß seineKinderplätze liegenkein setLeftrollauf die Modulozwei hundertPositionkönnte man glauben??falschschreibenman könnte glauben dass das so funktioniert?? ich drücke auf den Startstoppknopfdannwirklich Erzieherelend lange den Ball zum Beispiel verstärkt das was ich will das er am Randzurückgeworfenwird ?? getroffen das ich wirklich was bewegtleider nicht in ?? jetztbis dahin ist alles in Ordnung ich kannumschaltenund nun kommtDruckshopundnichts geht das Programms eingefroren ?? richtig gar nichtsungeschickt ungeschicktdas ganze maldas Problem ist das Programm in der for-Schleife fest hängtbis die for-Schleifebeendet ist es tut nicht anders es führt nicht mal dieses Kopieren in den sichtbarenBildschirmspeicheraus gesehen nicht mal das hier was verstellt wird Punkt es muss ganz anders funktionierenwieder von diesenEreignishändlerndarf nur ganz kurz laufen muss wieder zurückkehrenund senkt das Programmauch dieses jedoch nur ganz kurz laufen muss wieder zurückkehrenwas ich vielmehr brauchenist ein Zeitgeberdem erregelmäßig Bescheid sagt das die Animation erstellt werden muss ich kann das nicht in einer einzigen for-SchleifeFußnote mit List und Tücke kann man schon in einer for-Schleife machen aber das ist eher ungewöhnlichwas ich brauche ist ein Teilnehmerin dieser Klasse drinsteckt an folgender StelleSystemWindowszwei Dingenum das alles ?? Lehrstelle steckt und woandersspäterauf jeden Fall lässt er sich irgendwo findennurfleißig sucht Dispatchertimerist ich suchedass wir Mannheimer werdendas ist jetzt die Klasse soll die Sachen von TimerTimer selbst solldurch diese Variante namens Timerreferenziert werdenein neuer Timerund folgendermaßennochTabulatorso ?? Komma dass ein Funktionsaufrufohne ArgumenteKlärung demnächstder sogenannte Konstruktordamit baue ich einen neuen Timerund in der variablen Timersteht drin oder zu finden istda muss ich noch einstellenmüsse sagenwas er denn auslösen soll und wie auf der das Auslösen soll das einfachste ist natürlich erstmals derTimer angeschaltetsein sollenistPunktschondann sage ich nochdabei sein soll?? den erBescheid sagtdieses Intervallist dann ablesen kann ?? ein Times denn eine Zeit dauern?? Timespendas möchte ich gerne inSekundenzum Beispiel angeben er soll fallennull Kommanull fünf Sekundenfeuernund nun muss ich Ihnen noch sagen was er denn vonTimer Punktgibt sich ganze Fehlermöglichkeitenein einziges Ereignis sieht man diesem jetzt dasEreignis mit den Bits davon ein einziges Artistikdas ist das Ereignis was gefeuert wirdwenn die Zeit rum ist jedes Mal immer wiederund muss ich angeben welche Funktionen aufgerufen werden sollwenn der Timereindeutig gemacht hat?? das geht mit ?? ist gleichdamit was hier eineFunktion zu zu diesem Ereignis eine Funktion die aufgerufenwerden soll plus gleicher in C alswasdazu addieren ?? DatenspeicherNablus gleich fünf heißt in die Variable Radio fünf drauf Beistrich wieder zurück das ist jetztgeborgtmit einer etwas anderen Bedeutung ?? ziemlich ähnlichdiese Funktion wird jetzt angehängtim Handel an das Ereignissoll immer aufgerufen werdendas eigene stattfindet funktioniertKomma für sechssechsdie Musikalitätall dieses hier hab ichin die Funktion eingeschrieben die automatischbei Start des Fensters aufgerufen wird der KonstruktorDetails späterdas nach dem alle grafischen Komponenten da sind dann der Timer eingestellt wirdnächste ?? besitzt diese Funktion für Sixt zu bauenliefert nichts zurücksechsdas einfachste wäre wenn die so aussiehtdas es leidernichtso möglichwäre das einfach seine Physik die nicht eine Funktion namens für Sixt die nichts nimmt Semesterauf heute ein Schreiben C++ nichteine Funktion für sechs Dinge nichts nimmt und nicht zurückliefertund dann jetzt in der die Animation nachSeite etwas mehr mitgebendas istin Java ebenfalls so solche Ereignisbehandlungsfunktionensollen immer auch wissenwer denndas Ereignisverschickt hat Sendervom Typ Objektund sollen auchwissen was denn so an Details noch mit Komma zum Beispiel wo die Maus geklickt worden sein ?? auf dem Bildschirmwelche Maustaste rechte linke mittleregeklickt worden ist der steckt hier drin typischer PentaxName ebendiese Funktion wird jetzt alsoallenull Komma null fünf Sekunden das heißt zwanzig Mal pro Sekunde aufgerufendas billigste was ich jetzt machen kannist einfach mal die aktuelle Positionvon mehr Google nehmen uns etwas verstellen ich hole mal die aktuelle PositionX ist gleichKenntnis weiß PunktKenntnis weiß wo dieSachen sindGeldLeftwie weit bin ich vom linken Randund zwar mit meinem UI Element das istund wie weit der linken Handamangegebenen ?? ?? fünf draufund speichern das wieder zurück kennen wastausend vier setLeftjetzt unser Wissenfür welches Element denn und wohinwollen??und X ist vorhinerzeugt ?? tatsächlich eine Animation sehen daszwanzigmal pro Sekunde die X Koordinator von verstellt wird das Ding wird dann irgendwannrechts aus dem Bild verschwindenist ja und läuft und läuft und läuftPunktdann stoppte doch nicht das kann ich es einbauen dasdort auch noch wirktganz einfachüber dasSNA Bild bei Startsetzt sich den Timer aufgepäppeltund bei Stopp setz ich ihn aufDisplay wird dieses Jahr vorzeitigklar das hierdas mache ich nicht ein Programmstartsondern das mache ichwenn jemand auf denKnopf klickt Daten schon das ist der Startstoppknopfentwickelt sich jedes Mal angehensoll jemandjedes Malsein Zustand wechselnnicht immer auf zu Sonnenwindes auf Schuhe soll sofort gestellt werdenkopiere das einfachsagePunktund sagen Sie das Gegenteil von dem aktuellbist du derzeitzu oder fallsdas logisch GegenteilAusrufezeichenPCund das ist der neue Zustand und damit Geist an und ausschaltenPunkt anundaus Designsjetzt muss ich noch hinkriegendass diese Physik wirklich amRand umkehrt am rechten Rand umkehrte und umkehrt und dann am linken Rand wieder umkehrtdas heißt ich muss wissen in welche Richtungder Ball fliegt das merk ich mirmit weiteren Elementen in dieserKlasseTimerelementder zu der Klasse gehörtund ich merke mir obendrein ob ich gerade auf dem Weg nach linksnach links und rechts bin natürlich nach unten oderoben gewinnen underscorehängen Punkt Sonntagweitzu sagen ich bin gerade auf dem Weg nach rechts und nicht nach links am Anfangbin ich auf dem Weg nachWittlich auf dem Weg nach rechtsundgenau sowas noch maloben und unten geräumigenRaumsoll sagen ob ich mit nach unten bin zu odernach obenabsomal sehen wenn ich auf dem Wegnachrechtserhöhtum fünf Pfennig auf dem Weg nach links bin muss ich ihn um fünf verringern also ihr stehtbin ich auf dem Weg nach rechts ist die Fragedannfünf dazuansonstenfünfwenigeralsminus gleichfünfdasselbepassiert nachher bei untenoben mit Ywas sich jetzt aber noch nicht geprüft habe istglaube ich den rechten Rand erreicht habe wenn ich nach rechts gehe und irgendwann Rechnern erreicht habe muss ich umschalten ??ich prüfe also folgendesbin ich dem jenseits vom rechten Randder ?? wenn die aktuelle Positionplus die Breite des Ballsrolldas ist die ?? ?? ist der rechte Rand des Balls X Fußball ist der rechte Rand X ist der linke Rand wenn ich die Breite dazu zehn habe ich den Rechner ?? wenn dasgrößer istals dietatsächlicheBreitedes Innenbereich meines Fenstersdann muss ich umschaltenkritisiert ?? die Breite Hinweis meines Fenstersokay aber zurück in XML-Dateidenken was geht ?? noch einen Namen und kann nicht auf ?? drauf zugreifenkann washier nämlich fragenwas istandersPunktExcelist das mehr als die tatsächlicheBreite?? nicht die aktuelle Breite tatsächlich bereitenwenn das der Fall istabhängigjenseits vom rechten Randund muss Punkt also habe ich dann dasbereitsausHolz seinobendrein kann ich ein Stückchen zu weit sein Genf überschrittenich werde wahrscheinlich nicht genau den ?? getroffen haben sondern schon Stückchen zu weit gegangen sein deshalb gilt auch das Gleichheitszeichenim allgemeinen nichtich werde nur selten Gleichheit erreichen es wird höchstwahrscheinlichschon zu groß sei zu weit gegangen bindann deshalb muss ich dafür sorgendass die Positiongenau am Rand sitzen ?? drüber hinaus geht dasXistdietatsächlicheBreiteminusminus die Breite desalsgesetzlich genau anerkanntedas ist der rechte Randund der linken HandPunktdas kann ?? nur dann auftreten wenn ich nicht am rechten Randmit dem rechten Rand kollidieren kann undnur dann kann Business sich mit dem linken Rand kollidieren ?? Elsschreibenmit dem Elster vorso kollidieren mit dem linken ?? noch viel einfacherwenn meine Position null ist und ?? istder linke Rand hat dieXso weit verringert habe er sich unter null binich über den linken Rand hinaus dann muss ich natürlichwieder rechts gehen Komma weilduund ich mussX auf null setzen weil Access wahrscheinlichso einiges treiben was Negatives istals die Google schon etwas älter und verschwindetgleichNullauf das es links rechtsguckenrechtszitiert werdenokayging auch nicht unter dem Rand weg und er sollte links reflektiert werden?? okayStoppdasselbe machen wir für YKopieren Per isteigentlich eine schlechte Idee kopieren kopieren Beistrich heißt nämlichdass wenn ich Fehler korrigiere oder Anpassungen mache dass ich allesdoppelt und dreifach machen muss und höchstwahrscheinlicheinmal vergesseanders ist es kein gutes VorbildeinfachstenPapiere das ganze und das noch mal fürdie y-AchsePolen Yund das ist dann natürlich Geldtopfhier brauche ichPunktCorinne Daunund hier auchdannebenfallsihr YYund die Höhe des Balls auch wenn sie gleich der Breite war aber vielleicht stellt es einer umlaufendeneinförmigenbald wirklich Ellipsen verbringen beiihrer durch dieHöheder nundarumwechseln ich hätte einfach alles auswählen sollen und X und Y ersetzenschicktund hier ist es doch mal die aktuellennicht die aktuelle seine tatsächlicheHöhe und dieHöhe desBallsund hier unten sitze ich selbstTopfaufYmit viel Glück sollte das funktionierensogutokayjetzt möchte ich noch die Geschwindigkeiteinstellensie die fünf Komma null?? Werte hart reinzuschreibenfünf Komma null gleich an vier Stellen ist keine gute Idee sowiesosollten Konstante sein ?? hier sollte esein variabel sein möchte Geschwindigkeit umstellenund soV ist gleichfünfdir wenn ich überFrau anFrauundFraubis jetzt passiert dasselbe wie vorherBeistrich aber in der Checkbox nachder Checkbox hierCheckbox hastob die angeklickt es und wenn die angeklickt istan das abgehackte soll ich sagen ?? abgehakt istsollte ich eine andere GeschwindigkeitderCheckboxsiePunkt fastwas ist deren Zustandfraglich Punkt es checkt abereine Wunschvariableja oder nein wenn dieangekreuztistsetze ich meine Geschwindigkeitaufzehndass ich ein Problem habeähmes checkt ist noch keinegroße Variablesondernvielleicht auch gar nichts wenn die Checkboxden dritten Zustand hatdas?? sind okayPunkt deshalb muss ich hier nun ausdrücklich nach demWertfragenaber nun einePunktdas sollte funktionierenoffenwahrscheinlich schnelldas schneller Ausrufungszeichenschnellsoweit das gut aus dochjetzt wollte ich nochzählen wie viele Klicksauf demBallen landenBeistrich brauchen hier noch einAusgabeElementein fast ein labelnwasauffälligerals daethischundzweiunddreißigPunkt undunsdas Gerätstreitig warPunktdas sieht doch schonklar ausich möchte mit dem Label reden sollte das einen vernünftigen Namen habendas Labeldannda ist der Nebel eins nicht vorhandenenLebenskornund den Ball möchte ich anklicken könnendas ?? schon gesehen wie das gehtclick EreignisKlickbei den Ball einer ?? gucktkein click Ereignis Klick heißtausdrückenund wieder loslassen auf diesen ElementzweiTeiledrücken loslassenandas kann die Liebste nicht aber die Ellipse kann ich fragenob die Maus denngedrückt worden ist Ausdauer ein hundertwieder losgelassen worden istMonzadie Einzelfragensind es Ausdauer oder die Maus draufgedrücktunabhängig davon wo sie jetzt losgelassenausdauerndeEreignishändlerund da drinzählenwie viele Klicks passiert sindwieder ein Element in derKlasseins Kornzeltwirdam Anfang steht auf null automatisch und es sind schreibejedes Mal wenn ich klickesollte ein zweiter zählensie aus zehnund dann möchte ich diesesErgebnis in das Label reinsetzendas hieß LabelScorederInhaltder Mail ist ContentContent von dem Label möchte ich setzenaufdiese Zahlund damit solche Zellenkönnenhier häufig getroffen wurdenallerdingsimmerdas ist natürlich noch nicht im Sinne des Erfindersich muss dafür sorgen dass nur dann gezählt wirdwenn tatsächlich auch die Animation läuftaußerdem ?? sie nicht das Label nochloswerdensoll und technischen Label stehen das heißt was am Anfang als Content drin zu seinsowasnichtskönnte auch einfachleer lassenokay soll nur dann gezählt werdenwenn die Animation läuftdie Animation läuft wenn der Timer läuftdieser Formtrainierensie jetztBeistrichokaydas letzte Satzwenn derBall mit dem Rand kollidiert möchte ich einen Sound produzierennunhier die Kollision mit dem rechten Randbei der Kollision mit dem rechten Randein Soundsystemnachschlagenmediadas System sonstnoch eigenes Hausnehmenaufdeshalb die kurze VarianteistPunkt Claysoll es auch heißen Clay natürlich eine Funktionohne Argument das wird aufgerufenund rechten Rand erreichtwenn sie den linken Rand erreichtKomma daswaren Windows istmanhier machen zum BeispieleinExcel Menschendessen ?? die Sounds die bei den jeweiligenDialogboxengespielt werden von Windowssechs kleinen Menschenschien mir nämlich ??hältdann sollte das Problemchen fertig seinKommaeinsBetasystems?? undschnellgrünblauklickeneines Arztes aufgefallender gute Radiobutton soll so fortgesetztsein das war gerade nichtergänzenihrgebratenes ist der roteTeppichist checktdas der sofortTools sieht man auch keinen dritten Zustand ??mit dem weltweit von der soll soforttu seinund nun solljetztder Route anschnelllangsamklickenoder zweimalokayfertig