Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Eigene TglColor Klasse (https://www.delphipraxis.net/89452-eigene-tglcolor-klasse.html)

Masterj44 31. Mär 2007 10:57


Eigene TglColor Klasse
 
Hi,

Ich möchte eine "Klasse"(kann auch was anderes sein) TglColor haben, welches die Eigenschaft hat eine bestimmte Farbe wie glgreen oder $00FFFFFF in drei zahlen umwandelt.

z.B.: $00FFFFFF (weiß) in 1, 1, 1
$00000000 (schwarz) in 0, 0, 0

bis jetzt habe ich es so gemacht, dass zB glgreen eigegeben wurde und mit if-Abfrage die dazu gehörigen Zahlen wiedergegeben wurde.

Aber das ist zu zeitaufwendig alle Farben einzeln anzugeben, deshalb hoffe ich ihr könnt mir da weiter helfen.

3_of_8 31. Mär 2007 11:08

Re: Eigene TglColor Klasse
 
Also das umwandeln eines TColor-Farbwerts ($AABBGGRR) in OpenGL-Farbwerte ist nicht schwer.

Delphi-Quellcode:
type
  TABGR=record
    A, B, G, R: Byte;
  end;

  PABGR=^TABGR;

  TglColor=record
    R, G, B, A: Single;
  end;

//...

function ColorToGlColor(AColor: TColor): TglColor;
var abgr: PABGR;
begin
  abgr:=PABGR(@AColor);
  Result.A:=abgr.A/255;
  Result.B:=abgr.B/255;
  Result.G:=abgr.G/255;
  Result.R:=abgr.R/255;
end;
Die Farbe glGreen u.a. kannst du als Konstante nehmen:
Delphi-Quellcode:
const
  glBlack: TglColor=(R: 0; G: 0; B: 0; A: 1);
  glRed: TglColor=(R: 1; G: 0; B: 0; A: 1);
  glGreen: TglColor=(R: 0; G: 1; B: 0; A: 1);
  glBlue: TglColor=(R: 0; G: 0; B: 1; A: 1);
  glWhite: TglColor=(R: 1; G: 1; B: 1; A: 1);

Masterj44 31. Mär 2007 11:25

Re: Eigene TglColor Klasse
 
Danke für die schnelle Antwort.

Aber Delphie erkennt PABGR (undefinierte Bezeichner)nicht

Masterj44 31. Mär 2007 11:29

Re: Eigene TglColor Klasse
 
Fehler gefunden es heist ^PABGR und nicht ^PAGBR

3_of_8 31. Mär 2007 14:20

Re: Eigene TglColor Klasse
 
Hoppala, Tippfehler.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:30 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