Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Farbe ändern per "Color Bar" (https://www.delphipraxis.net/35337-farbe-aendern-per-color-bar.html)

Gast 5. Dez 2004 18:20


Farbe ändern per "Color Bar"
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
entschuldigung, dass ich euch noch einmal stören muss. Habe aber eine kleine Frage. Vorher muss ich aber sagen, dass ich wirklich nicht viel Ahnung von Delphi habe und wollte nur fragen ob mir einer von euch helfen kann. Aber bei mir reichts noch nicht wenn ihr mir einfach ein paar Zeilen schreibt.. wäre nett wenn ihr auch direkt sagt wo die dann hinmüssen.

Wir müssen eine Art Minipaint machen und ich möchte nun von dem Stift die Farbe per "Color Map" changen. Habe aber keinen Plan wie ich das mache.

Habe meine Vorstellung hier mal geaddet. Wenn man da auf eine Farbe klickt, dann soll diese im unteren Feld zu sehen sein und der Stift (paintbox1.canvas.pen.color) diese Farbe bekommen.

Wäre gut wenn man nur in diesem Feld klicken könnte und nicht wo anderes im Fenster.

VIELEN Dank schon einmal im Voraus !


Gr33tz!
Tigerhead

fkerber 5. Dez 2004 18:24

Re: Farbe ändern per "Color Bar"
 
Hi!


Verwende die Komponente ColorDialog von der Registerkarte Dialogs.
Hier ein Anwendungsbeispiel:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if ColorDialog1.Execute then
Form1.Color:=ColorDialog1.Color;
end;

Das umbauen auf deinen Pen schaffst du bestimmt :wink:


Ciao Frederic

Pr0g 5. Dez 2004 18:27

Re: Farbe ändern per "Color Bar"
 
Wenn du nicht viel Ahnung von Delphi hast, wäre es wohl am leichtesten das Bild mit der Farbpalette in einem TImage zu laden und dann mit "Pixels[]" den Fabwert unter dem Mauszeiger zu ermitteln. Definiere dazu eine Variable namens "MouseDown" vom Typ Boolean im "private" Abschnitt. Ins "OnMouseDown" Ereignis packst du folgenden Code:
Delphi-Quellcode:
MouseDown := True;
PaintBox1.Canvas.Pen.Color := Image1.Picture.Bitmap.Canvas.Pixels[X, Y];
in das "OnMouseUp" Ereignis folgenden Code:
Delphi-Quellcode:
MouseDown := False
und in das "OnMouseMove" Ereignis folgenden:
Delphi-Quellcode:
if MouseDown then
  PaintBox1.Canvas.Pen.Color := Image1.Picture.Bitmap.Canvas.Pixels[X, Y];
Nun kannst du die Maus drücken und die gewünschte Farbe durch Ziehen auswählen.

MfG Pr0g

Gast 5. Dez 2004 18:36

Re: Farbe ändern per "Color Bar"
 
Von fkerber die Variante habe ich gerade schon probiert, finde nur doof, dass es ein Dialof ist ..

fkerber 5. Dez 2004 18:37

Re: Farbe ändern per "Color Bar"
 
Hi!

Naja, aber das ist in vielen Programmen Standard. Ähnlich wie ein OpenDialog zum Öffnen von Dateien.


Ciao Frederic

Gast 5. Dez 2004 18:38

Re: Farbe ändern per "Color Bar"
 
Okay trotzdem Vielen Dank :)

Muetze1 5. Dez 2004 20:57

Re: Farbe ändern per "Color Bar"
 
Moin!

Ich könnte sonst in dem Zusammenhang mal auf ein Projekt von mir verweisen: TColorSelector / TValueSelector

MfG
Muetze1


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz