Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Farbenanzahl (https://www.delphipraxis.net/107429-farbenanzahl.html)

Qwert Zuiopü 27. Jan 2008 16:53


Farbenanzahl
 
hallo

in einem Programm wird bei einem bestimmtem Ereignis einem Objekt eine zufällige Farbe zugewiesen, ungefähr so:
Delphi-Quellcode:
procedure ColorChange;
if x <10 then
 begin
 Object.Color:=random(163777215);//so ungefähr
end;
ich habe vorher kein Array oder sowas festgelegt.
Wenn man die Zahl zu klein bestimmt, werden vorallem Farben im Bereich rot-gelb-braun angezeigt.
Wenn man die Zahl zu groß bestimmt, wird vermehrt scharz angezeigt.

Bei welcher Zahl erhählt man zwar alle Farben, aber nicht zu oft schwarz?
Ich vermute dass diese Zahl von meinem PC abhängt, wie kann ich sie dann herausbekommen?

Gruß Qwert

DeddyH 27. Jan 2008 17:04

Re: Farbenanzahl
 
Du weißt aber, wie sich Farben zusammensetzen und Dinge wie RGB sind Dir nicht fremd?

bitsetter 27. Jan 2008 17:24

Re: Farbenanzahl
 
Darum wäre es wohl so besser
Delphi-Quellcode:
Color:= RGB(Random(256), Random(256), Random(256));
Edit: Wenn du lieber helle Farben möchtest, kannst du es noch ein bisschen eingrenzen.
Delphi-Quellcode:
var
  r, g, b: Byte;
begin
  r:= Random(156)+ 100;
  g:= Random(156)+ 100;
  b:= Random(156)+ 100;
  Color:= RGB(r, g, b);

Thorben_Ko 27. Jan 2008 17:29

Re: Farbenanzahl
 
[oder

Delphi-Quellcode:

Color:= Random(256*256*256);

grenzgaenger 27. Jan 2008 17:39

Re: Farbenanzahl
 
Zitat:

Zitat von Thorben_Ko
[oder

Delphi-Quellcode:

Color:= Random(256*256*256);

das sprengt dir aber den nummernrange ;-)

Qwert Zuiopü 27. Jan 2008 18:48

Re: Farbenanzahl
 
Die möglichkeiten kannte ich einfach noch nicht, aber es sind schon eine gute ideen, v.a. mit
Delphi-Quellcode:
Color:= RGB(Random(256), Random(256), Random(256));
:thumb:
ich kennzeichne die frage als beantwortet , wenn nicht noch andere Ideen kommen

Neutral General 27. Jan 2008 18:58

Re: Farbenanzahl
 
Zitat:

Zitat von Qwert Zuiopü
Die möglichkeiten kannte ich einfach noch nicht, aber es sind schon eine gute ideen, v.a. mit
Delphi-Quellcode:
Color:= RGB(Random(256), Random(256), Random(256));
:thumb:
ich kennzeichne die frage als beantwortet , wenn nicht noch andere Ideen kommen

Das ist keine Idee, das ist die Lösung ;)
Unwahrscheinlich das es dafür irgendeine gute/bessere Alternative gibt.

Gruß
Neutral General

Dax 27. Jan 2008 19:22

Re: Farbenanzahl
 
Zitat:

Zitat von grenzgaenger
Zitat:

Zitat von Thorben_Ko
[oder

Delphi-Quellcode:

Color:= Random(256*256*256);

das sprengt dir aber den nummernrange ;-)

Wieso? Das ist 2^8 * 2^8 * 2^8 = 2^24 < 2^32, und selbst wenn nicht gibt es immer noch Extended ;)

grenzgaenger 27. Jan 2008 20:29

Re: Farbenanzahl
 
Zitat:

Zitat von Dax
Zitat:

Zitat von grenzgaenger
Zitat:

Zitat von Thorben_Ko
[oder

Delphi-Quellcode:

Color:= Random(256*256*256);

das sprengt dir aber den nummernrange ;-)

Wieso? Das ist 2^8 * 2^8 * 2^8 = 2^24 < 2^32, und selbst wenn nicht gibt es immer noch Extended ;)

256 = 2^9 = 0x0100
255 = 2^8 = 0xff

hier: 2^9*2^9*2^9

Dax 27. Jan 2008 20:34

Re: Farbenanzahl
 
Zitat:

Zitat von grenzgaenger
256 = 2^9 = 0x0100
255 = 2^8 = 0xff

hier: 2^9*2^9*2^9

Er möge sich genötigt fühlen, sich das Dualsystem nochmal genauer anzusehen und den Windowstaschenrechner mit der beinahe unlösbaren Aufgabe "2^8" zu bemühen.

Du sagst, 256 = 2^9 - falsch, 256 ist 16 * 16 ist 4*4 * 4*4 ist (2*2)*(2*2) * (2*2)*(2*2), also 2^8. 256 ist auch nicht 255*2, sondern 255+1. Und selbst wenn es so sei, 2^27 < 2^32 -> 2^27 passt in Cardinal, und da TColor = type Cardinal...


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 Uhr.
Seite 1 von 2  1 2      

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