![]() |
DelphiX - Farbe
Wenn ich mit Fill von DxDraw.Surface arbeite wird der Bildschirm in einen bestimmtem Farbton getaucht, jedoch nut Schwarz-, Blau-, Grau-, und Gelbtöne. Wir kriege ich bspw. Rot hin?
Danke, Czapie. |
Re: DelphiX - Farbe
Hallo czapie,
setzt die Farbe in die du färben willst in die Klammern der Funktion "Fill". Die Farbe rechnest du wie folgt aus: Die Zahl ist im Prinzip im 256-er Zahlensystem gespeichert. Rotanteil (zahl zwischen 0 und 255) mal 65536 plus Grünanteil mal 256 plus Blauanteil. Das klappt bei mir zumindest ganz gut. Grüße Seniman |
Re: DelphiX - Farbe
Hä :?:
Sorry hab grad ne Woche harten Winterurlaub hinter mir vielleicht sind meine grauen Zellen noch nicht wieder auf der Höhe. Gib mir doch bitte mal ein Beispiel für ein Argument, für die Farben:
Nur damit ich dich verstehe und die Unterschiede erkenne, danke, Czapie. |
Re: DelphiX - Farbe
Hi,folgendes !
Delphi-Quellcode:
So gibt man im RGB Code die Farbe an die dann dxdraw1.surface besitzt!
Form1.DXDraw1.Color:=RGB(0,16,176);
Vermutlich aus Performencegründen wird die Farbe aber nur im Zusammenhang mit einer Draw oder canvas Funktion angezeigt,auch release nütz nach miener Erfahrung nix! Dieser Code bring den gewünschten Effekt! [delphi] procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer); begin Form1.DXDraw1.Color:=RGB(0,16,176); Form1.DXDraw1.Surface.Canvas.LineTo(1,1);//<--irgendetwas was man zeichnet, das macht man ja eh! Form1.DXDraw1.Flip; end; [/dp] @wardz |
Re: DelphiX - Farbe
Hallo,
ich meinte das so: Angenommen du willst die Farbe rot malen. Rot =RGB(255,0,0), hat also den Rotanteil von 255, Grünanteil 0 und Blauanteil 0. Die Zahl für (reines) Rot ist dann 255*65536+0*256+0. Bei Blutrot ist das etwa 180*65536+0*256+0. Giftgrün ist reines Grün, also 0*65536+255*256+0. Babyblau: 100*65536+100*256+255. Da musst du einfach ein bißchen rumprobieren. Falls du immer die gleiche Farbe benutzt solltest du die Zahl unbedingt ausrechnen und eintippen und nicht bei jedem Frame von Delphi neu berechnen lassen! Grüße Seniman |
Re: DelphiX - Farbe
ja genau das ist ja eigentlich das was ich geschrieben habe!
Im Objektinspektor kann man halt nur die vorgegebenen Farben wählen! Aber die Farbe wird ja so oder so bei jedem Frame neugezeichnet also ist das schnuppe! @wardz |
Re: DelphiX - Farbe
Wunderbar!
Danke, @seniman , ich hab nen Augenblick gebraucht, um zu begreifen, dass die anteilsmäßige Berechnung auch wirklich ein-eindeutig, daher mein Unverständnis, Czapie. |
Re: DelphiX - Farbe
Trotzdem noch ein kleines Problem:
Ich habe jetzt den typischen Windowsgrauton genommen (192, 192, 192) und das eben ausgerechnet, also 192 * 65536 +192 * 256 +192 ------------- =12632256 Aber herauskommen, kommt es eher dunkeles rot? Czapie. |
Re: DelphiX - Farbe
Hallo,
Zitat:
Grüße Seniman |
Re: DelphiX - Farbe
Nein ohne Scheiß!
Code:
Das ergibt bei mir bei Klick ein Formular in Rot!
procedure TForm1.DXDraw1Click(Sender: TObject);
begin DXDraw1.Surface.Fill(12632256); DXDraw1.Flip; end; Czapie. |
Re: DelphiX - Farbe
Hallo czapie,
da bin ich echt verblüfft. Dann weiß ich auch nicht weiter. Sonst probier doch mal folgendes aus: Mach drei Edit-Felder, wo man Zahlen eingeben kann, jeweils für Rot, Grün und Blau und einen Button. Wenn man den Button klickt, dann färb die DxDraw in der Farbe aus den Edit-Feldern, so kannst du ein wenig herumprobieren. Vielleicht haben wir ja verschiedene Versionen von Delphi oder DelphiX. Grüße Seniman |
Re: DelphiX - Farbe
Mh ich hab jetzt einfach mal wirklich kurz was zum Probieren geschrieben,
und da klappts. Naja wenn ich den Fehler hab, dann Poste ich wenn es was aufregendes war. Czapie. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:46 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