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

23.03.2015, 12:49

C# colorDialog Auswahl

Hallo zusammen,
ich habe folgendes Problem:
Programmiert wird in C#

Ich möchte die aktuell ausgewählte Farbe eines ColorDialoges auslesen/übergeben, ohne den Dialog zu schliessen. Also bei Klick auf eine Farbe soll der Farbwert an eine Variable übergeben werden um mit dieser Variablen eine Vorschau zu aktualisieren. Ich hab das gane mit einem Timer programmiert, nur leider finde ich im ColorDialog kein Mous_Click Event oder ähnliches. Ich wäre sehr dankbar über Hilfe!
MFG Lex

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »lexteks« (23.03.2015, 13:02)


2

23.03.2015, 13:39

Soweit ich das überschaut habe geht das nicht direkt. Da musst du wohl Hooks Einsetzen (guck mal hier.)

3

24.03.2015, 15:15

Also, nur das ich das richtig verstehe. Wenn ich in einem ColorDialog eine Farbe anklicke, wird diese nicht direkt als Variable ColorDialog.Color gespeichert?? Sondern erst in dem Augenblick, wenn ich den Button OK klicke???

4

24.03.2015, 15:20

Keine Ahnung, probiers doch mal aus ;)

5

25.03.2015, 08:42

Ganz großes Kino :))) Hab ich doch, aber beim klicken bekomm ich kein Feedback an meine Variable..
Kann denn keiner sonst eine Aussage dazu machen??
Steh echt aufem Schlauch Oo

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

6

25.03.2015, 08:57

Hab ich doch, aber beim klicken bekomm ich kein Feedback an meine Variable..

Und wie sieht der Code dazu aus?
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

7

25.03.2015, 09:12

C#-Quelltext

1
2
3
4
5
6
7
private void timer1_Tick(object sender, EventArgs e)
        {            
            rahmenVorschauFarbe = colorDialog1.Color;
            spielfeldVorschauFarbe = colorDialog2.Color;
            pictureBox1.BackColor = spielfeldFarbe;
            pictureBox1.Refresh();
        }


So sieht der Timer aus, der alle 0,1 Sek tickt, aktiviert wird er sobald der ColorDialogButton öffnen angeklickt wird.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Schorsch« (26.03.2015, 21:03) aus folgendem Grund: Codetags eingefügt


8

25.03.2015, 09:15

Ich hab mittels Debugger die Variablen ausgelesen, nachdem ich eine Farbe angeklickt habe, der Wert hat sich nicht geändert... Bin echt Ratlos... Meine frage ist ob der Farbwert beim anklicken der Farbe oder erst wenn ich den OK Button klicke eingestellt wird??
Es geht erstmal nur darum die angeklickte Farbe in eine Variable zu bekommen, den Rest mit der Vorschau usw. hab ich ja schon fertig...

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

9

25.03.2015, 10:42

Da der ColorDialog darauf ausgelegt ist, als modales Fenster angezeigt zu werden, wurde er wahrscheinlich auch so implementiert, dass er erst nach dem Schließen (also erst kurz bevor das Programm ab der aufrufenden Stelle weiterläuft) den ausgewählten Wert beinhaltet. Wenn im Hintergrund bereits Daten (bzw. die Visualisierung) angepasst werden soll, dann ist ein modaler Dialog sehr wahrscheinlich ohnehin nicht der richtige Ansatz und es sollte eher ein nicht modaler Dialog verwendet werden, auch wenn man diesen erst selbst implementieren muss. (Auf der verlinkten Seite ist wiederum eine Seite verlinkt, die das Implementieren eines eigenen Farbauswahldialogs beschreibt.) Wenn man sich den Dialog selbst implementiert, kann man auch eigene Events definieren, die bspw. bei der Anpassung der ausgewählten Farbe gefeuert werden.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

10

26.03.2015, 08:50

Ok, vielen Dank für deine schnelle Antwort. :thumbsup:

Werbeanzeige