Autor Beitrag
Ebil
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 131



BeitragVerfasst: Sa 09.04.11 23:12 
Abend,

Ich suche etwas wie TColorDialog, aber es soll dauerhaft die farbe an das programm weitergeben können / es nicht komplett aufhalten.
Will also einfach ein farbfeld mit allen farben, das mir die farbwerte als RGB wiedergeben kann, und indem man die maus frei bewegen kann, wärend es die werte weitergibt.
Anwendung: Die Daten werden über eine serielle schnittstelle an meine RGB-LED lampe gesendet, und das soll möglichst in echtzeit geschehn, ohne , das man wie bei dem Dialog, erst auf "ok" klickt nachdem man eine Farbe gewählt hat.

LG Ebil
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Sa 09.04.11 23:22 
Im OnMousemove die Farbe eines Pixels eine speziell aufbereiteten Bitmap abfragen.
Um alle Farbe darzustellen bräuchtest Du aber 255*255*255 Pixel, Du wirst Dir also eine sinnvolle Reduktion ausdenken müssen.

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
beastofchaos
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 247
Erhaltene Danke: 4



BeitragVerfasst: Sa 09.04.11 23:56 
Ich würde auch erst mal mit MouseMove anfangen, am besten über einer Paintbox ( ist sauberer, find ich :D ).
Hier mal ein Bild, wie ein Programm von den Machern eines Delphibuchs aussieht.
s1.directupload.net/.../110409/8bykgw74.png

Das enthält leider nicht eine ganz Palette gleichzeitig ( kann man selber einstellen )
Meine Idee für eineganze Palette der Farben: Du zeichnest ein Dreieck, das in jeder Ecke rot/grün/blau hat. Und dann gehste für jeden Punkt in dem Dreieck die Entfernung zu den Ecken durch. Abhängig von der Entfernung skalierst du die Farbe - hätte da auch schon eine entsprechende Funktion zum Farbskalieren an der Hand :p
Wie man die einzelnen Pixel des Dreiecks durchgeht wäre sehr umständlich, aber ginge ;)

Dann lieste einfach die Farbe der Stelle aus, wo gerade die Mouse ist ("MyColor := Canvas.Pixels[X,Y]") und drehst noch Rot und Blau aus ( in Delphi ist es das "BGR-Modell" statt RGB )


Hoffe ich konnte helfen, Grüße Thomas
Ebil Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 131



BeitragVerfasst: So 10.04.11 01:04 
Mh die idee von bummi klingt recht simpel und reicht mir glaube ich zur genüge.
Dennoch wenn jemand zufällig so eine komponente kennt, mit mehr einstellungen, wäre auch ganz nett :)
Werd wohl noch einen Extra regler für helligkeit reinmachen, dann sind direkt wieder mehr möglichkeiten da.

Danke euch.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 10.04.11 07:40 
Hier bei Microsoft findest du eine Anleitung (+ Beispiel) wie du ein solches Control selbst bastelst. ;-)
msdn.microsoft.com/e...gazine/cc164113.aspx
Und zwar ohne Bitmap oder so, sondern ganz normal selbst gezeichnet. ;-)
beastofchaos
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 247
Erhaltene Danke: 4



BeitragVerfasst: So 10.04.11 15:32 
Kennste die Komponente "ColorDialog" ?

Damit könnste auch ganz leicht so ne Darbauswahl steuern ohne das selbst zu zeichnen.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 10.04.11 16:03 
user profile iconbeastofchaos hat folgendes geschrieben Zum zitierten Posting springen:
Kennste die Komponente "ColorDialog" ?
Die Frage hast du aber gelesen? :gruebel:
user profile iconEbil hat folgendes geschrieben Zum zitierten Posting springen:
Ich suche etwas wie TColorDialog, aber es soll dauerhaft die farbe an das programm weitergeben können / es nicht komplett aufhalten.
[...]
und das soll möglichst in echtzeit geschehn, ohne , das man wie bei dem Dialog, erst auf "ok" klickt nachdem man eine Farbe gewählt hat.


// EDIT:
Ach ja, hier auch ein wenig was in Delphi, leicht zu finden:
www.torry.net/quicks...picker&Title=Yes ("TColorPicker v.3.0" und "ThkColorPicker v.1.0")
delphi.about.com/od/...ects/l/aa012704a.htm
home.hccnet.nl/david...lorsel/getcolor.html
beastofchaos
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 247
Erhaltene Danke: 4



BeitragVerfasst: So 10.04.11 17:25 
ICH <-- doof :P Sorry