Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

17.02.2012, 12:49

Projekt: 2D Strategiecup als Browsergame

Hallo zusammen,

ich will ein eigenes Brettspiel für 2 bis 8 Personen als Browsergame umsetzen; man kann (und sollte wohl) erstmal mit einem Spieler anfangen, und wenn dat läuft, auf 2 - und später 8 - ausweiten. Vorab wäre eine Information erstmal wichtig: auf welche Programmiersprache darf ich mich da stürzen? Anders gefragt: ist C# auch für Browsergames sinnvoll? Habe tatsächlich nichts dazu im Internet gefunden; denke aber, dass ich manches grundlegend neu programmieren müsste; theoretisch habe ich auch schon konkrete Ideen (Programmierlogik) dazu; jedoch fehlt es mir noch an der Sprache.

Damit es nicht zu allgemein bleibt, hier mal ein Video zu dem Spiel, dass euch helfen sollte, mich auf den "rechten Pfad" zu bugsieren:

http://youtu.be/2P2js-RonvA

Bei Fragen... einfach Fragen.
Hoffe auf hilfreiche Antworten... und ja, ich weiß, es dürfte ein langer Weg sein; aber habe ich außer Pflichtarbeit etwas besseres zu tun? Denke nicht... Zudem: dieses Projekt lässt sich ganz ganz klein Anfangen und dann nach und nach zu voller Größe und Kompletxität ausweiten; also durchaus etwas, was meiner Meinung nach auch als Einsteiger möglich ist... zumindest theoretisch. Ihr seht schon: ohne fundierte Weichensteller und Wegweiser, wie ich sie mir hier zu finde hoffen, läuft es nicht ^^

Danke an alle, die sich die Mühe machen

Grüße

Asa

P.S. lasst euch vom Schlusstext im Video nicht irritieren; habe das Video erstellt, um es verschiedenen Browsergame-Entwicklern/Anbietern zuzuschicken... doch diese haben die irritierende Eigenschaft, nicht zu antworten. Also will ich mich selbst daran versuchen, damit mein Brettspiel mal irgendwann zur Anwendung kommt und nicht für alle Zeiten vor sich hinstaubt :D

2

17.02.2012, 13:51

Du könntest nahezu jede Sprache nutzen, auch C#!
CGI ist das Stichwort.

MfG
Check

3

17.02.2012, 13:57

Es gibt ja verschiedene Varianten wie ein Spiel im Browser gespielt werden kann. Mit C# kann man Silverlight und Unity Projekte programmieren, die dann im Browser mit einem entsprechendem Plugin ausführbar sind. http://brettspielwelt.de benutzt einen Java Applet. Flash wird mit AS3 entwickelt und ansonsten ginge ja noch eine normale HTML Seite mit interaktiven Elementen, die z.B. mit javascript entwickelt werden. Für alle Varianten ist zudem ein Server sicher wichtig um Interaktionen zwischen den Spielern zu vermitteln bzw. um als Lobby-Server zu dienen. Im Singleplayer-Modus kann man darauf allerdings verzichten. Wenn das ganze als normale Webseite angeboten wird, kann die Entwicklung fast ausschließlich den Server betreffen.

Ich würde das ganze an deiner Stelle mit Flash, Java oder Unity (+C#) ohne Server als Prototyp entwickeln und dann später einen Client+Server für einen Mehrspielermodus in einem neuen Projekt entwickeln. Clientseitig/Für Einzelspielerspiele im Browser ist Flash wohl am weitesten verbreitet und am zugänglichsten. Außerdem unterstützt es Sockets. Das ist bei einem Spiel mit Echtzeit-Interaktionen sicher recht wichtig. HTML5 hast du ja bestimmt auch schon mal gehört, davon würde ich momentan allerdings noch abraten.

Serverseitig kannst du, wie Checkmateing schon erwähnt hat, alles einsetzen. Allerdings eignen sich für Echtzeit-Interaktionen nicht unbedingt alle Sprachen, die auch für die Webentwicklung gerne eingesetzt werden. Da solltest du dann zu C# oder Java greifen. Dazu kannst du dir vielleicht mal den Photon Server oder SmartFox Server anschauen.

Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »Chromanoid« (17.02.2012, 14:06)


4

17.02.2012, 15:17

Danke euch beiden.

Also werde ich mich erstmal in C# reinschmeißen und schauen, wie dat dort im Allgemeinen gelöst ist sowie im Speziellen mal mit Visual Studio befassen. Dürfte bekanntlich einige Zeit dauern, eine Sprache zu verinnerlichen, sodass man auch kapiert, was da warum wie gelöst ist und folglich damit umgehen kann.

Das mit dem "Offline"-Prototyp ist eine Idee, die ich mir auf jedenfall vornehme. Zumindest von der Logik her sollte "Schritt 1 - Streckeneditor" nicht allzu schwer sein; aber leicht täuscht der Enthusiasmus von Anfängern. Also lass ich mich mal überraschen...

Ein kleiner Trost, der mich positiv nach vorne schauen lässt: zumindest ist die komplette Datenbank inklusive Felder, Ausgaben, Rückfragen, Auswertungen, Meldungen und sonstige Scripts (was, wann, wie, wo, warum... und was passiert dann wo, wie, warum) etc. schon mal mit "FileMaker" (bitte nicht schreien ^^) erstellt (sichtbares Ergebnis = siehe Video), sodass ich mir da keine großen Gedanken mehr um "wie fange ich es an" machen muss... sondern "nur" noch sinnvoll in eine vorhandene Sprache übersetzen. Ob ich mir da zuviel vornehme?

Es wäre nicht das erste Projekt, in das ich mich schmeiße. Da ich aber gerne stundenlang tüfftle und genau weiß, wo ich hin will, sollte es gehen. Und mit den üblichen Frustmomenten, die immer wieder mal auftauchen und bei denen man am liebsten alles in die Ecke schmeißen und aufgeben möchte, weiß ich auch umzugehen.

Bekanntlich gilt aber nicht das Reden von heute, sondern die Tat bis morgen.

In diesem Sinne werde ich mich also erstmal vom Acker machen, das Reden einstellen und Gas geben. Schaue dennoch regelmäßig rein und werde antworten, sollten hier neue Tipps, Tricks oder Fragen auftauchen... oder von meiner Seite ein Update vorhanden sein.

Zudem bleibt zu hoffen, dass ich wirklich durchhalte und nicht irgendwann total gefrustet das Handtuch schmeiße; das vorweg auszuschließen wäre natürlich vermessen. In diesem abschließenden Sinne grüßt euch der (noch) hochmotivierte Asa ^^

5

17.02.2012, 15:46

Wenn du dir es leichter machen willst könntest du dir mal den "GameMaker HTML5" (99$) oder "Stencyl Works" (für Browser als Zielplattform kostenlos, iOS 149$/Jahr) anschauen. Bei beiden hat man die Möglichkeit später den Multiplayer-Part nachträglich einzubauen. Dann allerdings mit JavaScript bzw. AS3. Damit kommst du sicher schneller zum Ziel als erst C# zu lernen, da du mit diesen Tools nur wenig programmieren musst.

6

17.02.2012, 16:19

Danke. Du kannst Gedanken lesen; irre hier auf die Schnelle gerade durch die Weiten des Internets und wird immer konfuser. Werde mich gleich mal da drauf stürzen; auch, weil die Preise human klingen. Und "wenig programmieren" klingt für den Anfang auch besser; ähnlich wie bei FileMaker. Mit Hintergrundwissen wäre es wohl besser... aber das kann ja auch nach und nach kommen. Ich befürchte halt, dass gewisse "fixe" Programme evtl für manche Problemstellungen keine Lösung, wie ich sie im speziellen bräuchte, bieten... aber das wird sich dann zeigen...

7

20.02.2012, 06:01

Kurzes Update, bevor ich für längere Zeit im Nirwana des Lernens absinke:

Wie befürchtet sind die "leichteren" Programme so was von gar nichts für mich (wenn auch die eine oder andere Idee hängen geblieben ist), weswegen ich doch wieder auf den Anfangsgedanken "Visuell Studio C#" zurückgekommen bin. Ich bevorzuge einfach den Gedanken, dass ich Vorhandenes jederzeit an eigene Ansprüche individuell anpassen kann... und weniger die Vorgabe, meine Ideen an die vorhandenen, meist reduzierten Möglichkeiten anzupassen.

Also mal die Tesversion gezogen, ein Buch bestellt und mich derweil gleich mal im Internet eingelesen; einiges davon in der Demo getestet sowie das eine oder andere Tutorial in Visual Studio Schritt für Schritt nachgestellt. Fazit: Visual Studio macht einfach nur Spaß. Viel Arbeit? Sicherlich! Aber genau das, was ich gesucht habe.

Ergo: werde wohl etliche Zeit in Visual Studio C# versinken und vieles, vieles, vieles lernen und viel ausprobieren. Allein schon die Versuchung, meine komplexe Datenverwaltung mit FileMaker komplett neu als eigenes Programm zu erstellen, zieht mich stark an... werde aber versuchen, mich dennoch primär am Leitfaden "Strategiecup" vorwärts zu hangeln. Leider gibt es da auch schon genug Verlockungen; bspw. das Simple Labyrinth-Spiel mit Timer und Bestenlisten auszubauen; ggf. um Interaktionselemente wie "Beamer" erweitern; vielleicht noch eine kleine Prise aus "Das verrückte Labyrinth" hinzufügen und alles zusammen zu einem neuen Cocktail mixen?

Aber am Anfang steht erstmal der Fleiß, sich mit den vielen Grundkenntnissen von C# vertraut zu machen... und ggf. mal eine Datenbank anlegen, in die man nach und nach die einzelnen Möglichkeiten mit Spielideen verknüpft.

Man wird sehen. Zumindest ist der erste Schritt getan; aus dem "Wo soll ich anfangen" ist ein ganz klares "Visual Studio C#" geworden... und die Welt sieht doch gleich mal viel besser aus :D

8

28.02.2012, 17:43

Erste eigene Übungsanwendung „Bewegungstest“

Nach einer Woche Beschäftigung mit Visual Studio C# und "Einstieg in Visual Studio C# 2010" von Thomas Theis habe ich mir eine eigene Anwendung überlegt, um die einzelnen gelernten Dinge in einer Anwendung gesammelt zum Einsatz zu bringen und dadurch meine „Wissen“ zu testen. Diese Übung sollte einfach nur folgendes in einem sinnvollen Kontext bringen:

Steuerelemente:
Label (lbl)
Buttons (cmd)
NumericUpDown (num)
PictureBox (pic)
RadioButton (opt)
CheckBox (chk)

Container:
Panel (pnl)

Darüber hinaus noch:
Visible bzw. Enable von einzelnen Elementen, um nur jene freizugeben, die auch Sinn machen
Die eine oder andere Kontrollabfrage
if-else Verzweigungen
for Schleifen

Sinn und Zweck:
Für sich genommen ist die Anwendung sinnfrei, was an dieser Stelle aber unwichtig ist; es ging nur um eine Übung, dass das bisher Gelernte kombiniert in einer Anwendung aufeinander loslässt, damit ich prüfen kann, ob ich es wirklich kapiert habe.
Ansonsten dient diese Anwendung einzig und allein dem Zweck, die Panel „Grün“ und „Rot“ in Position und Größe einzeln oder kombiniert nach eigenen Angaben zu verändern.

Ergebnis:
Was das letztlich kann (nicht viel, daher sinnfrei ^^), könnt ihr nachfolgend hier sehen
Video

Fragen:
Dazu habe ich auch gleich mal eine Reihe an Fragen an euch, da ich trotz suchen nicht fündig geworden bin...

1. ist es möglich, NumericUpDown-Elementen auch automatisch Namen (Text nebendran) zuzuweisen (wie bei opt oder chk; bei „Eigenschaften“ habe ich nix gefunden)?
... oder muss ich diese tatsächlich immer so lösen, wie in dieser Anwendung; also für jedes numFeld ein eigenes Label, dass dann auch noch umständlich mit dazugehörigem numFeld gesperrt/entsperrt wird? Erscheint mir etwas umständlich...

Bsp Ausgabe Textname neben Numeric-Button auch ohne Label möglich?

C#-Quelltext

1
2
3
4
5
6
7
8
9
10
            // Pixelangaben Grün sperren
            lblNameGrün.Enabled = false; // Txt "GRÜN"
            lblGrünGrößeBreite.Enabled = false; // Text "Größe Breite"
            numGrünGrößeBreite.Enabled = false; // Auswahlfeld Zahl "Größe Breite"
            lblGrünGrößeHöhe.Enabled = false; // Text "Größe Höhe"
            numGrünGrößeHöhe.Enabled = false; // Auswahlfeld Zahl "Größe Höhe"
            lblGrünPosBreite.Enabled = false; // Text "Position Breite"
            numGrünPosBreite.Enabled = false; // Auswahl Zahl "Position Breite"
            lblGrünPosHöhe.Enabled = false; // Text "Position Höhe"
            numGrünPosHöhe.Enabled = false; // Auswahl Zahl "Position Höhe"


2. Ist es möglich, mehrere Elemente in Form1.cs(Entwurf) zu „Gruppieren“, um diese in einer einzigen Anweisung sperren/entsperren zu können?
Konkret gehören bspw. GrünGrößeBreite und GrünGrößeHöhe inklusive deren Namens-Label immer zusammen, sodass diese aus meiner Sicht theoretisch auch als grafische Elemente gruppiert werden könnten, womit man nur diese Gruppe sperrt oder entsperrt... und nicht jedes einzelne numFeld und dessen Text-Label separat. Auch dies will mir umständlich erscheinen vor allem hinsichtlich größerer Anwendungen.

Bspw. folgende zwei numericFelder gruppieren und nur diese "Gruppe" sperren möglich?

C#-Quelltext

1
2
3
4
                lblGrünGrößeBreite.Enabled = false; // Text "Größe Breite"
                numGrünGrößeBreite.Enabled = false; // Auswahlfeld Zahl "Größe Breite"
                lblGrünGrößeHöhe.Enabled = false; // Text "Größe Höhe"
                numGrünGrößeHöhe.Enabled = false; // Auswahlfeld Zahl "Größe Höhe"


3. Wie kommt es, dass zum Programm-Start (plötzlich) ein Opt-Feld schon ausgewählt ist? Gehört zwar laut Autor zum guten Ton... hatte ich anfänglich in meiner Anwendung aber nicht. Ich betrachte das als „Problem“, weil ich bei den beiden opt-Feldern nichts wissentlich verändert habe, weswegen eigentlich beide nach wie vor leer sein müssten... und nicht von jetzt auch nachher einfach mal verändert. Aus dem Grund habe ich auch nachfoglende Abfrage konstruiert (die nun keinen Sinn mehr macht):

C#-Quelltext

1
2
3
            else if (lblAuswahlKästchen.Text != "" && lblAuswahlPosGröße.Text == "")
            {
                lblInfo.Text = "Bitte Änderungswahl (Größer ODER Position) vornehmen.";


4. Die beiden Panels Grün und Rot wurden ebenfalls „automatisch“ mit dem Hintergrund-Panel Schwarz „verknüpft“ o.ä.. Was ist da passiert... und wo finde ich entsprechende Einstellungen dazu?
Auch hier ist das Ergebnis eigentlich positiv (Grün und Rot „verschwinden“, wenn man sie aus dem schwarzen Bereich bewegt); aber es ist immer ein schlechtes Zeichen, wenn man sich mit nicht-beabsichtigten Dingen einfach zufrieden gibt, ohne zu verstehen, was da passiert ist. Besser man merzt solche potenziellen Fehlerquellen gleich von Anfang an aus ^^

5. Welche Tipps habt ihr noch zum Quellcode; ist ja nicht ausgeschlossen, dass manches eleganter geht oder besser gelöst werden kann... auch wenn es nur ein sinnfreie Übungsanwendung ist.

Danke für eure Hilfe

Grüße

ASA

P.S. Nachfolgend noch der komplett Quellcode; damit ihr mich auf etwaige Fehler in Stil oder Sinn (oder was auch immer) hinweisen könnt.

C#-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Bewegung_1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            lblInfo.Text = "Wählen Sie die FARBE(n) sowie deren gewünschte ÄNDERUNG (Position ODER Größe) \n und bestätigen Sie Ihre Auswahl mit 'OK'."; //Infotext anfang
            
            // Buttons Auswahl ausblenden
            cmdJaAuswahl.Visible = false; // wird noch nicht benötigt = Button "Ja" für "Auswahl Farbe/Veränderung übernehmen"
            cmdNeinAuswahl.Visible = false; // wird noch nicht benötigt = Button "Nein" für "Auswahl Farbe/Veränderung übernehmen"
            
            // Pixelangaben Grün sperren
            lblNameGrün.Enabled = false; // Txt "GRÜN"
            lblGrünGrößeBreite.Enabled = false; // Text "Größe Breite"
            numGrünGrößeBreite.Enabled = false; // Auswahlfeld Zahl "Größe Breite"
            lblGrünGrößeHöhe.Enabled = false; // Text "Größe Höhe"
            numGrünGrößeHöhe.Enabled = false; // Auswahlfeld Zahl "Größe Höhe"
            lblGrünPosBreite.Enabled = false; // Text "Position Breite"
            numGrünPosBreite.Enabled = false; // Auswahl Zahl "Position Breite"
            lblGrünPosHöhe.Enabled = false; // Text "Position Höhe"
            numGrünPosHöhe.Enabled = false; // Auswahl Zahl "Position Höhe"
            
            // Pixelangaben Rot sperren
            lblNameRot.Enabled = false; // Txt "ROT"
            lblRotGrößeBreite.Enabled = false; // Text "Größe Breite"
            numRotGrößeBreite.Enabled = false; // Auswahlfeld Zahl "Größe Breite"
            lblRotGrößeHöhe.Enabled = false; // Text "Größe Höhe"
            numRotGrößeHöhe.Enabled = false; // Auswahlfeld Zahl "Größe Höhe"
            lblRotPosBreite.Enabled = false; // Text "Position Breite"
            numRotPosBreite.Enabled = false; // Auswahl Zahl "Position Breite"
            lblRotPosHöhe.Enabled = false; // Text "Position Höhe"
            numRotPosHöhe.Enabled = false; // Auswahl Zahl "Position Höhe"

            // Pixelangaben Buttons ausblenden
            cmdPixelOk.Visible = false; // noch nicht benötigt = Button "OK" für Prüfen Zahl
            cmdErneut.Visible = false; // Noch nicht benötigt = Button für weitere Änderung
            cmdAuswahlÄndern.Visible = false; // =Button Zurück zur Auswahl
            cmdClose.Visible = false; // noch nicht freigeben

            // Bilder Ok ausblenden
            picOk1.Visible = false;
            picOk2.Visible = false;
        }


        // SCHRITT 1 = OBJEKTE UND VERÄNDERUNGSART AUSWÄHLEN UND PRÜFEN
        // 1. Button "cmdAuswahlOk" = Prüfen der Auswahl "Farbe" und "Änderung" sowie individuelles Anzeigen jeweils benötigter Buttons
        // erzeugt bei korrekter Auswahl Rückfrage, ob man die Auswahl übernehmen möchte
        private void cmdAuswahlOk_Click(object sender, EventArgs e)
        {
            //Textauswertung Farbwahl Grün/Rot (CheckedBox)
            if (chkGrün.Checked == true && chkRot.Checked == false)
                lblAuswahlKästchen.Text = "GRÜN";
            else if (chkGrün.Checked == true && chkRot.Checked == true)
                lblAuswahlKästchen.Text = "GRÜN und ROT";
            else if (chkGrün.Checked == false && chkRot.Checked == true)
                lblAuswahlKästchen.Text = "ROT";
            else if (chkGrün.Checked == false && chkRot.Checked == false)
                lblAuswahlKästchen.Text = "";

            //Textauswertung Option Größe oder Position (RadioButton)
            if (optGröße.Checked == true && optPosition.Checked == false)
                lblAuswahlPosGröße.Text = "GRÖSSE";
            else if (optGröße.Checked == false && optPosition.Checked == true)
                lblAuswahlPosGröße.Text = "POSITION";
            else if (optGröße.Checked == false && optPosition.Checked == false)
                lblAuswahlPosGröße.Text = "";

            //Auswerten Infotext und Anzeige entsprechender Buttons
            if (lblAuswahlKästchen.Text == "" && lblAuswahlPosGröße.Text == "")
            {
                lblInfo.Text = "Bitte mindestens eine Farbe wählen und Änderungswahl (Größe ODER Position) vornehmen.";
                cmdAuswahlOk.Visible = true; //Prüfung nicht ok, Button kann nicht ausgeblendet werden
                cmdJaAuswahl.Visible = false; //Prüfung nicht ok, Auswahl übernehmen Button "Ja" wird nicht benötigt
                cmdNeinAuswahl.Visible = false; //Prüfung nicht ok, Auswahl übernehmen Button "Nein" wird nicht benötigt
            }
            else if (lblAuswahlKästchen.Text != "" && lblAuswahlPosGröße.Text == "")
            {
                lblInfo.Text = "Bitte Änderungswahl (Größer ODER Position) vornehmen.";
                cmdAuswahlOk.Visible = true; //Prüfung nicht ok, Button kann nicht ausgeblendet werden
                cmdJaAuswahl.Visible = false; //Prüfung nicht ok, Auswahl übernehmen Button "Ja" wird nicht benötigt
                cmdNeinAuswahl.Visible = false; //Prüfung nicht ok, Auswahl übernehmen Button "Nein" wird nicht benötigt
            }
            else if (lblAuswahlKästchen.Text == "" && lblAuswahlPosGröße.Text != "")
            {
                lblInfo.Text = "Bitte mindestens eine Farbe wählen.";
                cmdAuswahlOk.Visible = true; //Prüfung nicht ok, Button kann nicht ausgeblendet werden
                cmdJaAuswahl.Visible = false; //Prüfung nicht ok, Auswahl übernehmen Button "Ja" wird nicht benötigt
                cmdNeinAuswahl.Visible = false; //Prüfung nicht ok, Auswahl übernehmen Button "Nein" wird nicht benötigt
            }
            else if (lblAuswahlKästchen.Text != "" && lblAuswahlPosGröße.Text != "")
            {
                lblInfo.Text = "Wollen Sie die " + lblAuswahlPosGröße.Text + " der Farbe(n) " + lblAuswahlKästchen.Text + " ändern?";
                cmdAuswahlOk.Visible = false; //Prüfung ok, Button kann ausgeblendet werden
                cmdJaAuswahl.Visible = true; //Prüfung ok, Auswahl übernehmen Button "Ja" wird benötigt
                cmdNeinAuswahl.Visible = true; //Prüfung ok, Auswahl übernehmen Button "Nein" wird benötigt

                // Anzeige Auswahl sperren
                cmdJaAuswahl.Visible = true; //Button "Ja" für Auswahl-Übernahme wird nicht mehr benötigt
                cmdNeinAuswahl.Visible = true; //Button "Nein" für Auswahl-Übernahme wird nicht mehr benötigt
                chkGrün.Enabled = false; //Auswahlfeld Farbe Grün wird nicht mehr benötigt
                chkRot.Enabled = false; //Auswahlfeld Farbe Rot wird nicht mehr benötigt
                optGröße.Enabled = false; //Optionsfeld Größe wird nicht mehr benötigt
                optPosition.Enabled = false; //Optionsfeld Position wird nicht mehr benötigt
            }
        }

        // 1.a) Auswahl übernehmen = Nein -> getätigte und geprüfte Auswahl NICHT übernehmen; zurück zum Auswahl-Menü
        private void cmdNeinAuswahl_Click(object sender, EventArgs e)
        {
            lblInfo.Text = "Passen Sie Ihre Auswahl der Farbe(n) und deren Änderungswunsch (Größe ODER Position) an \n und bestätigen Sie diese mit 'OK'.";
            cmdAuswahlOk.Visible = true; //Prüfung nicht ok, Button kann nicht ausgeblendet werden
            cmdJaAuswahl.Visible = false; //Prüfung nicht ok, Auswahl übernehmen Button "Ja" wird nicht benötigt
            cmdNeinAuswahl.Visible = false; //Prüfung nicht ok, Auswahl übernehmen Button "Nein" wird nicht benötigt

            // Anzeige Auswahl sperren
            chkGrün.Enabled = true; //Auswahlfeld Farbe Grün wird nicht mehr benötigt
            chkRot.Enabled = true; //Auswahlfeld Farbe Rot wird nicht mehr benötigt
            optGröße.Enabled = true; //Optionsfeld Größe wird nicht mehr benötigt
            optPosition.Enabled = true; //Optionsfeld Position wird nicht mehr benötigt
        }

        // 1.b) Auswahl übernehmen = ja -> getätigte und geprüfte Auswahl übernehmen, wechseln zur Ansicht "Veränderung einstellen"
        private void cmdJaAuswahl_Click(object sender, EventArgs e)
        {
            // Infotext anpassen
            lblInfo.Text = "GRÖSSE: Für Vergrößerung (+) klicken Sie den 'nach oben'-Pfeil (maximal +5),\nfür Verkleinerung (-) klicken Sie den 'nach unten'-Pfeil (maximal -5) \n\nPOSITION: Verschieben: Breite verschiebt seitlich, Höhe nach oben oder unten.\nBREITE: 'nach links' (-) maximal -5; nach rechts (+) maximal +5 \nHÖHE: 'nach oben' (-) maximal -5, nach unten (+) maximal +5";

            // Anzeige Auswahl sperren
            cmdJaAuswahl.Visible = false; //Button "Ja" für Auswahl-Übernahme wird nicht mehr benötigt
            cmdNeinAuswahl.Visible = false; //Button "Nein" für Auswahl-Übernahme wird nicht mehr benötigt
            chkGrün.Enabled = false; //Auswahlfeld Farbe Grün wird nicht mehr benötigt
            chkRot.Enabled = false; //Auswahlfeld Farbe Rot wird nicht mehr benötigt
            optGröße.Enabled = false; //Optionsfeld Größe wird nicht mehr benötigt
            optPosition.Enabled = false; //Optionsfeld Position wird nicht mehr benötigt

            // Anzeigen Pixel freigeben
            cmdPixelOk.Visible = true; // noch nicht benötigt = Button "OK" für Prüfen Zahl
            cmdErneut.Visible = false; // Noch nicht benötigt = Button für weitere Änderung
            cmdAuswahlÄndern.Visible = true; // =Button Zurück zur Auswahl

            //Bild "Ok1" freigeben
            picOk1.Visible = true;


            // Wenn gewählt, Pixelangaben Grün freigeben

            if (lblAuswahlKästchen.Text == "GRÜN" | lblAuswahlKästchen.Text == "GRÜN und ROT"
                && lblAuswahlPosGröße.Text == "GRÖSSE")
            {
                lblNameGrün.Enabled = true; // Txt "GRÜN"
                
                lblGrünGrößeBreite.Enabled = true; // Text "Größe Breite"
                numGrünGrößeBreite.Enabled = true; // Auswahlfeld Zahl "Größe Breite"
                lblGrünGrößeHöhe.Enabled = true; // Text "Größe Höhe"
                numGrünGrößeHöhe.Enabled = true; // Auswahlfeld Zahl "Größe Höhe"

                lblGrünPosBreite.Enabled = false; // Text "Position Breite"
                numGrünPosBreite.Enabled = false; // Auswahl Zahl "Position Breite"
                lblGrünPosHöhe.Enabled = false; // Text "Position Höhe"
                numGrünPosHöhe.Enabled = false; // Auswahl Zahl "Position Höhe"
            }
            else if (lblAuswahlKästchen.Text == "GRÜN" | lblAuswahlKästchen.Text == "GRÜN und ROT"
                    && lblAuswahlPosGröße.Text == "POSITION")
            {
                lblNameGrün.Enabled = true; // Txt "GRÜN"
                
                lblGrünGrößeBreite.Enabled = false; // Text "Größe Breite"
                numGrünGrößeBreite.Enabled = false; // Auswahlfeld Zahl "Größe Breite"
                lblGrünGrößeHöhe.Enabled = false; // Text "Größe Höhe"
                numGrünGrößeHöhe.Enabled = false; // Auswahlfeld Zahl "Größe Höhe"

                lblGrünPosBreite.Enabled = true; // Text "Position Breite"
                numGrünPosBreite.Enabled = true; // Auswahl Zahl "Position Breite"
                lblGrünPosHöhe.Enabled = true; // Text "Position Höhe"
                numGrünPosHöhe.Enabled = true; // Auswahl Zahl "Position Höhe"
            }
            else
            {
                lblNameGrün.Enabled = false; // Txt "GRÜN"
                
                lblGrünGrößeBreite.Enabled = false; // Text "Größe Breite"
                numGrünGrößeBreite.Enabled = false; // Auswahlfeld Zahl "Größe Breite"
                lblGrünGrößeHöhe.Enabled = false; // Text "Größe Höhe"
                numGrünGrößeHöhe.Enabled = false; // Auswahlfeld Zahl "Größe Höhe"

                lblGrünPosBreite.Enabled = false; // Text "Position Breite"
                numGrünPosBreite.Enabled = false; // Auswahl Zahl "Position Breite"
                lblGrünPosHöhe.Enabled = false; // Text "Position Höhe"
                numGrünPosHöhe.Enabled = false; // Auswahl Zahl "Position Höhe"
            }


            // Wenn gewählt, Pixelangaben Rot freigeben

            if (lblAuswahlKästchen.Text == "ROT" | lblAuswahlKästchen.Text == "GRÜN und ROT"
                && lblAuswahlPosGröße.Text == "GRÖSSE")
            {
                lblNameRot.Enabled = true; // Txt "ROT"
                
                lblRotGrößeBreite.Enabled = true; // Text "Größe Breite"
                numRotGrößeBreite.Enabled = true; // Auswahlfeld Zahl "Größe Breite"
                lblRotGrößeHöhe.Enabled = true; // Text "Größe Höhe"
                numRotGrößeHöhe.Enabled = true; // Auswahlfeld Zahl "Größe Höhe"

                lblRotPosBreite.Enabled = false; // Text "Position Breite"
                numRotPosBreite.Enabled = false; // Auswahl Zahl "Position Breite"
                lblRotPosHöhe.Enabled = false; // Text "Position Höhe"
                numRotPosHöhe.Enabled = false; // Auswahl Zahl "Position Höhe"
            }
            else if (lblAuswahlKästchen.Text == "ROT" | lblAuswahlKästchen.Text == "GRÜN und ROT"
                    && lblAuswahlPosGröße.Text == "POSITION")
            {
                lblNameRot.Enabled = true; // Txt "ROT"
                
                lblRotGrößeBreite.Enabled = false; // Text "Größe Breite"
                numRotGrößeBreite.Enabled = false; // Auswahlfeld Zahl "Größe Breite"
                lblRotGrößeHöhe.Enabled = false; // Text "Größe Höhe"
                numRotGrößeHöhe.Enabled = false; // Auswahlfeld Zahl "Größe Höhe"

                lblRotPosBreite.Enabled = true; // Text "Position Breite"
                numRotPosBreite.Enabled = true; // Auswahl Zahl "Position Breite"
                lblRotPosHöhe.Enabled = true; // Text "Position Höhe"
                numRotPosHöhe.Enabled = true; // Auswahl Zahl "Position Höhe"
            }
            else
            {
                lblNameRot.Enabled = false; // Txt "ROT"

                lblRotGrößeBreite.Enabled = false; // Text "Größe Breite"
                numRotGrößeBreite.Enabled = false; // Auswahlfeld Zahl "Größe Breite"
                lblRotGrößeHöhe.Enabled = false; // Text "Größe Höhe"
                numRotGrößeHöhe.Enabled = false; // Auswahlfeld Zahl "Größe Höhe"

                lblRotPosBreite.Enabled = false; // Text "Position Breite"
                numRotPosBreite.Enabled = false; // Auswahl Zahl "Position Breite"
                lblRotPosHöhe.Enabled = false; // Text "Position Höhe"
                numRotPosHöhe.Enabled = false; // Auswahl Zahl "Position Höhe"
            }
        }

        // SCHRITT 2 = VERÄNDERUNGSWERTE EINSTELLEN, PRÜFEN UND AUSFÜHREN
        // 2.a) Trotz Auswahl übernehmen = ja -> optional Button für Rückkehr zum Auswahl-Menü
        private void cmdBack_Click(object sender, EventArgs e)
        {
            // Buttons Auswahl ausblenden
            cmdJaAuswahl.Visible = false; // wird noch nicht benötigt = Button "Ja" für "Auswahl Farbe/Veränderung übernehmen"
            cmdNeinAuswahl.Visible = false; // wird noch nicht benötigt = Button "Nein" für "Auswahl Farbe/Veränderung übernehmen"

            // Pixelangaben Grün sperren
            lblNameGrün.Enabled = false; // Txt "GRÜN"
            lblGrünGrößeBreite.Enabled = false; // Text "Größe Breite"
            numGrünGrößeBreite.Enabled = false; // Auswahlfeld Zahl "Größe Breite"
            lblGrünGrößeHöhe.Enabled = false; // Text "Größe Höhe"
            numGrünGrößeHöhe.Enabled = false; // Auswahlfeld Zahl "Größe Höhe"
            lblGrünPosBreite.Enabled = false; // Text "Position Breite"
            numGrünPosBreite.Enabled = false; // Auswahl Zahl "Position Breite"
            lblGrünPosHöhe.Enabled = false; // Text "Position Höhe"
            numGrünPosHöhe.Enabled = false; // Auswahl Zahl "Position Höhe"

            // Pixelangaben Rot sperren
            lblNameRot.Enabled = false; // Txt "ROT"
            lblRotGrößeBreite.Enabled = false; // Text "Größe Breite"
            numRotGrößeBreite.Enabled = false; // Auswahlfeld Zahl "Größe Breite"
            lblRotGrößeHöhe.Enabled = false; // Text "Größe Höhe"
            numRotGrößeHöhe.Enabled = false; // Auswahlfeld Zahl "Größe Höhe"
            lblRotPosBreite.Enabled = false; // Text "Position Breite"
            numRotPosBreite.Enabled = false; // Auswahl Zahl "Position Breite"
            lblRotPosHöhe.Enabled = false; // Text "Position Höhe"
            numRotPosHöhe.Enabled = false; // Auswahl Zahl "Position Höhe"

            // Pixelangaben Buttons ausblenden
            cmdPixelOk.Visible = false; // noch nicht benötigt = Button "OK" für Prüfen Zahl
            cmdErneut.Visible = false; // Noch nicht benötigt = Button für weitere Änderung
           
            //Felder Auswahl freigeben
            chkGrün.Enabled = true; //Auswahlfeld Farbe Grün wird nicht mehr benötigt
            chkRot.Enabled = true; //Auswahlfeld Farbe Rot wird nicht mehr benötigt
            optGröße.Enabled = true; //Optionsfeld Größe wird nicht mehr benötigt
            optPosition.Enabled = true; //Optionsfeld Position wird nicht mehr benötigt

            // Button Auswahl freigeben
            lblInfo.Text = "Passen Sie Ihre Auswahl der Farbe(n) und deren Änderungswunsch (Größe ODER Position) an \n und bestätigen Sie diese mit 'OK'.";
            cmdAuswahlOk.Visible = true; //Prüfung nicht ok, Button kann nicht ausgeblendet werden
            cmdJaAuswahl.Visible = false; //Prüfung nicht ok, Auswahl übernehmen Button "Ja" wird nicht benötigt
            cmdNeinAuswahl.Visible = false; //Prüfung nicht ok, Auswahl übernehmen Button "Nein" wird nicht benötigt

            // Bild "ok1" ausblenden
            picOk1.Visible = false;

            // Bild "ok2" ausblenden
            picOk2.Visible = false;

            // Button "Zurück" ausblenden
            cmdAuswahlÄndern.Visible = false; // =Button Zurück zur Auswahl

            //Numeric zurücksetzen
            numGrünGrößeBreite.Value = 0;
            numGrünGrößeHöhe.Value = 0;
            numGrünPosBreite.Value = 0;
            numGrünPosHöhe.Value = 0;
            numRotGrößeBreite.Value = 0;
            numRotGrößeHöhe.Value = 0;
            numRotPosBreite.Value = 0;
            numRotPosHöhe.Value = 0;
        }

        // 2.b) Auswahl prüfen und ausführen
        private void cmdPixelOk_Click(object sender, EventArgs e)
        {
            
            // NumericFelder auswerten
            int WertGrünGrößeBreite = (int)numGrünGrößeBreite.Value;
            int WertGrünGrößeHöhe = (int)numGrünGrößeHöhe.Value;
            int WertGrünPosBreite = (int)numGrünPosBreite.Value;
            int WertGrünPosHöhe = (int)numGrünPosHöhe.Value;

            int WertRotGrößeBreite = (int)numRotGrößeBreite.Value;
            int WertRotGrößeHöhe = (int)numRotGrößeHöhe.Value;
            int WertRotPosBreite = (int)numRotPosBreite.Value;
            int WertRotPosHöhe = (int)numRotPosHöhe.Value;

            int Bewegung;
            int Zoom;

            // Prüfen Wertveränderung
            if (WertGrünGrößeBreite == 0 & WertGrünGrößeHöhe == 0 & WertGrünPosBreite == 0 & WertGrünPosHöhe == 0 & WertRotGrößeBreite == 0 & WertRotGrößeHöhe == 0 & WertRotPosBreite == 0 & WertRotPosHöhe == 0)
            {
                lblInfo.Text = "Sie haben keine Veränderungswerte eingegeben";
            } 
            else
            {
                picOk2.Visible = true;// Bild "ok2" einblenden
             
                // Grün vergrößern/verkleinern (zoom)
                if (WertGrünGrößeHöhe > 0)
                    for (Zoom = 1; Zoom <= WertGrünGrößeHöhe; Zoom++)
                    {
                        pnlGrün.Size = new Size(pnlGrün.Size.Width, pnlGrün.Size.Height + WertGrünGrößeHöhe);
                    }

                else if (WertGrünGrößeHöhe < 0)

                    for (Zoom = -1; Zoom >= WertGrünGrößeHöhe; Zoom--)
                    {
                        pnlGrün.Size = new Size(pnlGrün.Size.Width, pnlGrün.Size.Height + WertGrünGrößeHöhe);
                    }

                if (WertGrünGrößeBreite > 0)
                    for (Zoom = 1; Zoom <= WertGrünGrößeBreite; Zoom++)
                    {
                        pnlGrün.Size = new Size(pnlGrün.Size.Width + WertGrünGrößeBreite, pnlGrün.Size.Height);
                    }

                else if (WertGrünGrößeBreite < 0)
                    for (Zoom = -1; Zoom >= WertGrünGrößeBreite; Zoom--)
                    {
                        pnlGrün.Size = new Size(pnlGrün.Size.Width + WertGrünGrößeBreite, pnlGrün.Size.Height);
                    }

                // Grün verschieben
                if (WertGrünPosHöhe > 0)
                    for (Bewegung = 1; Bewegung <= WertGrünPosHöhe; Bewegung++)
                    {
                        pnlGrün.Location = new Point(pnlGrün.Location.X, pnlGrün.Location.Y + WertGrünPosHöhe);
                    }
                
                else if (WertGrünPosHöhe < 0)
   
                    for (Bewegung = -1; Bewegung >= WertGrünPosHöhe; Bewegung--)
                    {
                        pnlGrün.Location = new Point(pnlGrün.Location.X, pnlGrün.Location.Y + WertGrünPosHöhe);
                    }
                    

                if (WertGrünPosBreite > 0)
                    for (Bewegung = 1; Bewegung <= WertGrünPosBreite; Bewegung++)
                    {
                        pnlGrün.Location = new Point(pnlGrün.Location.X + WertGrünPosBreite, pnlGrün.Location.Y);
                    }

                else if (WertGrünPosBreite < 0)
                    for (Bewegung = -1; Bewegung >= WertGrünPosBreite; Bewegung--)
                    {
                        pnlGrün.Location = new Point(pnlGrün.Location.X + WertGrünPosBreite, pnlGrün.Location.Y);
                    }

                // Rot vergrößern/verkleinern (zoom)
                if (WertRotGrößeHöhe > 0)
                    for (Zoom = 1; Zoom <= WertRotGrößeHöhe; Zoom++)
                    {
                        pnlRot.Size = new Size(pnlRot.Size.Width, pnlRot.Size.Height + WertRotGrößeHöhe);
                    }

                else if (WertRotGrößeHöhe < 0)

                    for (Zoom = -1; Zoom >= WertRotGrößeHöhe; Zoom--)
                    {
                        pnlRot.Size = new Size(pnlRot.Size.Width, pnlRot.Size.Height + WertRotGrößeHöhe);
                    }

                if (WertRotGrößeBreite > 0)
                    for (Zoom = 1; Zoom <= WertRotGrößeBreite; Zoom++)
                    {
                        pnlRot.Size = new Size(pnlRot.Size.Width + WertRotGrößeBreite, pnlRot.Size.Height);
                    }

                else if (WertRotGrößeBreite < 0)
                    for (Zoom = -1; Zoom >= WertRotGrößeBreite; Zoom--)
                    {
                        pnlRot.Size = new Size(pnlRot.Size.Width + WertRotGrößeBreite, pnlRot.Size.Height);
                    }

                // Rot verschieben
                if (WertRotPosHöhe > 0)
                    for (Bewegung = 1; Bewegung <= WertRotPosHöhe; Bewegung++)
                    {
                        pnlRot.Location = new Point(pnlRot.Location.X, pnlRot.Location.Y + WertRotPosHöhe);
                    }

                else if (WertRotPosHöhe < 0)

                    for (Bewegung = -1; Bewegung >= WertRotPosHöhe; Bewegung--)
                    {
                        pnlRot.Location = new Point(pnlRot.Location.X, pnlRot.Location.Y + WertRotPosHöhe);
                    }


                if (WertRotPosBreite > 0)
                    for (Bewegung = 1; Bewegung <= WertRotPosBreite; Bewegung++)
                    {
                        pnlRot.Location = new Point(pnlRot.Location.X + WertRotPosBreite, pnlRot.Location.Y);
                    }

                else if (WertRotPosBreite < 0)
                    for (Bewegung = -1; Bewegung >= WertRotPosBreite; Bewegung--)
                    {
                        pnlRot.Location = new Point(pnlRot.Location.X + WertRotPosBreite, pnlRot.Location.Y);
                    }

                // InfoText anpassen
                lblInfo.Text = "Button 'erneut' = neue Veränderungenswerte in vorhandener Auswahl einstellen und ausführen\n\nButton 'Auswahl ändern' = zurück zur Auswahl\n\nButton 'Close' = Programm schließen";

                // Buttons anpassen
                cmdPixelOk.Visible = false; // nicht benötigt = Button "OK" für Prüfen Zahl
                cmdErneut.Visible = true; // benötigt = Button für weitere Änderung
                cmdClose.Visible = true; // ab jetzt freigeschalten

                // Pixelangaben Grün sperren
                lblNameGrün.Enabled = false; // Txt "GRÜN"
                lblGrünGrößeBreite.Enabled = false; // Text "Größe Breite"
                numGrünGrößeBreite.Enabled = false; // Auswahlfeld Zahl "Größe Breite"
                lblGrünGrößeHöhe.Enabled = false; // Text "Größe Höhe"
                numGrünGrößeHöhe.Enabled = false; // Auswahlfeld Zahl "Größe Höhe"
                lblGrünPosBreite.Enabled = false; // Text "Position Breite"
                numGrünPosBreite.Enabled = false; // Auswahl Zahl "Position Breite"
                lblGrünPosHöhe.Enabled = false; // Text "Position Höhe"
                numGrünPosHöhe.Enabled = false; // Auswahl Zahl "Position Höhe"

                // Pixelangaben Rot sperren
                lblNameRot.Enabled = false; // Txt "ROT"
                lblRotGrößeBreite.Enabled = false; // Text "Größe Breite"
                numRotGrößeBreite.Enabled = false; // Auswahlfeld Zahl "Größe Breite"
                lblRotGrößeHöhe.Enabled = false; // Text "Größe Höhe"
                numRotGrößeHöhe.Enabled = false; // Auswahlfeld Zahl "Größe Höhe"
                lblRotPosBreite.Enabled = false; // Text "Position Breite"
                numRotPosBreite.Enabled = false; // Auswahl Zahl "Position Breite"
                lblRotPosHöhe.Enabled = false; // Text "Position Höhe"
                numRotPosHöhe.Enabled = false; // Auswahl Zahl "Position Höhe"
             }
        }

        // 2.c) Veränderungswerte erneut einstellen und ausführen
        private void cmdErneut_Click(object sender, EventArgs e)
        {
            //Numeric zurücksetzen
            numGrünGrößeBreite.Value = 0;
            numGrünGrößeHöhe.Value = 0;
            numGrünPosBreite.Value = 0;
            numGrünPosHöhe.Value = 0;
            numRotGrößeBreite.Value = 0;
            numRotGrößeHöhe.Value = 0;
            numRotPosBreite.Value = 0;
            numRotPosHöhe.Value = 0;

            // Buttons anpassen
            cmdPixelOk.Visible = true; // nicht benötigt = Button "OK" für Prüfen Zahl
            cmdErneut.Visible = false; // benötigt = Button für weitere Änderung

            
            // Wenn gewählt, Pixelangaben Grün freigeben

            if (lblAuswahlKästchen.Text == "GRÜN" | lblAuswahlKästchen.Text == "GRÜN und ROT"
                && lblAuswahlPosGröße.Text == "GRÖSSE")
            {
                lblNameGrün.Enabled = true; // Txt "GRÜN"
                
                lblGrünGrößeBreite.Enabled = true; // Text "Größe Breite"
                numGrünGrößeBreite.Enabled = true; // Auswahlfeld Zahl "Größe Breite"
                lblGrünGrößeHöhe.Enabled = true; // Text "Größe Höhe"
                numGrünGrößeHöhe.Enabled = true; // Auswahlfeld Zahl "Größe Höhe"

                lblGrünPosBreite.Enabled = false; // Text "Position Breite"
                numGrünPosBreite.Enabled = false; // Auswahl Zahl "Position Breite"
                lblGrünPosHöhe.Enabled = false; // Text "Position Höhe"
                numGrünPosHöhe.Enabled = false; // Auswahl Zahl "Position Höhe"
            }
            else if (lblAuswahlKästchen.Text == "GRÜN" | lblAuswahlKästchen.Text == "GRÜN und ROT"
                    && lblAuswahlPosGröße.Text == "POSITION")
            {
                lblNameGrün.Enabled = true; // Txt "GRÜN"
                
                lblGrünGrößeBreite.Enabled = false; // Text "Größe Breite"
                numGrünGrößeBreite.Enabled = false; // Auswahlfeld Zahl "Größe Breite"
                lblGrünGrößeHöhe.Enabled = false; // Text "Größe Höhe"
                numGrünGrößeHöhe.Enabled = false; // Auswahlfeld Zahl "Größe Höhe"

                lblGrünPosBreite.Enabled = true; // Text "Position Breite"
                numGrünPosBreite.Enabled = true; // Auswahl Zahl "Position Breite"
                lblGrünPosHöhe.Enabled = true; // Text "Position Höhe"
                numGrünPosHöhe.Enabled = true; // Auswahl Zahl "Position Höhe"
            }
            else
            {
                lblNameGrün.Enabled = false; // Txt "GRÜN"
                
                lblGrünGrößeBreite.Enabled = false; // Text "Größe Breite"
                numGrünGrößeBreite.Enabled = false; // Auswahlfeld Zahl "Größe Breite"
                lblGrünGrößeHöhe.Enabled = false; // Text "Größe Höhe"
                numGrünGrößeHöhe.Enabled = false; // Auswahlfeld Zahl "Größe Höhe"

                lblGrünPosBreite.Enabled = false; // Text "Position Breite"
                numGrünPosBreite.Enabled = false; // Auswahl Zahl "Position Breite"
                lblGrünPosHöhe.Enabled = false; // Text "Position Höhe"
                numGrünPosHöhe.Enabled = false; // Auswahl Zahl "Position Höhe"
            }


            // Wenn gewählt, Pixelangaben Rot freigeben

            if (lblAuswahlKästchen.Text == "ROT" | lblAuswahlKästchen.Text == "GRÜN und ROT"
                && lblAuswahlPosGröße.Text == "GRÖSSE")
            {
                lblNameRot.Enabled = true; // Txt "ROT"
                
                lblRotGrößeBreite.Enabled = true; // Text "Größe Breite"
                numRotGrößeBreite.Enabled = true; // Auswahlfeld Zahl "Größe Breite"
                lblRotGrößeHöhe.Enabled = true; // Text "Größe Höhe"
                numRotGrößeHöhe.Enabled = true; // Auswahlfeld Zahl "Größe Höhe"

                lblRotPosBreite.Enabled = false; // Text "Position Breite"
                numRotPosBreite.Enabled = false; // Auswahl Zahl "Position Breite"
                lblRotPosHöhe.Enabled = false; // Text "Position Höhe"
                numRotPosHöhe.Enabled = false; // Auswahl Zahl "Position Höhe"
            }
            else if (lblAuswahlKästchen.Text == "ROT" | lblAuswahlKästchen.Text == "GRÜN und ROT"
                    && lblAuswahlPosGröße.Text == "POSITION")
            {
                lblNameRot.Enabled = true; // Txt "ROT"
                
                lblRotGrößeBreite.Enabled = false; // Text "Größe Breite"
                numRotGrößeBreite.Enabled = false; // Auswahlfeld Zahl "Größe Breite"
                lblRotGrößeHöhe.Enabled = false; // Text "Größe Höhe"
                numRotGrößeHöhe.Enabled = false; // Auswahlfeld Zahl "Größe Höhe"

                lblRotPosBreite.Enabled = true; // Text "Position Breite"
                numRotPosBreite.Enabled = true; // Auswahl Zahl "Position Breite"
                lblRotPosHöhe.Enabled = true; // Text "Position Höhe"
                numRotPosHöhe.Enabled = true; // Auswahl Zahl "Position Höhe"
            }
            else
            {
                lblNameRot.Enabled = false; // Txt "ROT"

                lblRotGrößeBreite.Enabled = false; // Text "Größe Breite"
                numRotGrößeBreite.Enabled = false; // Auswahlfeld Zahl "Größe Breite"
                lblRotGrößeHöhe.Enabled = false; // Text "Größe Höhe"
                numRotGrößeHöhe.Enabled = false; // Auswahlfeld Zahl "Größe Höhe"

                lblRotPosBreite.Enabled = false; // Text "Position Breite"
                numRotPosBreite.Enabled = false; // Auswahl Zahl "Position Breite"
                lblRotPosHöhe.Enabled = false; // Text "Position Höhe"
                numRotPosHöhe.Enabled = false; // Auswahl Zahl "Position Höhe"
            }
        }

        // 3. Programm schließen
        private void cmdClose_Click(object sender, EventArgs e)// Button "Close"
        {
            Close(); //beendet Programm
        }
    }
}

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »ASA 73« (28.02.2012, 17:49)


Werbeanzeige