From 8bc7da6f93562a965dc1e6573c092b4d250cf01a Mon Sep 17 00:00:00 2001 From: wp_xxyyzz Date: Tue, 30 May 2023 14:26:52 +0000 Subject: [PATCH] jvcllaz: Add unit JvRGBToHtml to the JvNet package git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8823 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- components/jvcllaz/packages/jvnetlazr.lpk | 6 +- components/jvcllaz/run/JvNet/jvrgbtohtml.pas | 108 +++++++++++++++++++ 2 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 components/jvcllaz/run/JvNet/jvrgbtohtml.pas diff --git a/components/jvcllaz/packages/jvnetlazr.lpk b/components/jvcllaz/packages/jvnetlazr.lpk index 641664899..574d7b750 100644 --- a/components/jvcllaz/packages/jvnetlazr.lpk +++ b/components/jvcllaz/packages/jvnetlazr.lpk @@ -15,7 +15,7 @@ - + @@ -32,6 +32,10 @@ + + + + diff --git a/components/jvcllaz/run/JvNet/jvrgbtohtml.pas b/components/jvcllaz/run/JvNet/jvrgbtohtml.pas new file mode 100644 index 000000000..20c848ca9 --- /dev/null +++ b/components/jvcllaz/run/JvNet/jvrgbtohtml.pas @@ -0,0 +1,108 @@ +{----------------------------------------------------------------------------- +The contents of this file are subject to the Mozilla Public License +Version 1.1 (the "License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/MPL-1.1.html + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for +the specific language governing rights and limitations under the License. + +The Original Code is: JvRgbToHtml.PAS, released on 2001-02-28. + +The Initial Developer of the Original Code is Sébastien Buysse [sbuysse att buypin dott com] +Portions created by Sébastien Buysse are Copyright (C) 2001 Sébastien Buysse. +All Rights Reserved. + +Contributor(s): Michael Beck [mbeck att bigfoot dott com]. + +You may retrieve the latest version of this file at the Project JEDI's JVCL home page, +located at http://jvcl.delphi-jedi.org + +Known Issues: +-----------------------------------------------------------------------------} +// $Id$ + +unit JvRgbToHtml; + +interface + +uses + LCLIntf, SysUtils, Classes, Graphics; + +type + TJvRGBToHTML = class(TComponent) + private + FHTMLColor: string; + FRGBColor: TColor; + procedure SetRGBColor(const Value: TColor); + procedure SetHTMLColor(const Value: string); + public + constructor Create(AOwner: TComponent); override; + published + property RGBColor: TColor read FRGBColor write SetRGBColor default clBlack; + property HTMLColor: string read FHTMLColor write SetHTMLColor; + end; + +function RgbToHtml(Value: TColor): string; +function HtmlToRgb(const Value: string): TColor; + +implementation + +function RgbToHtml(Value: TColor): string; +begin + with TJvRGBToHTML.Create(nil) do + try + RGBColor := Value; + Result := HTMLColor; + finally + Free; + end; +end; + +function HtmlToRgb(const Value: string): TColor; +begin + with TJvRGBToHTML.Create(nil) do + try + HTMLColor := Value; + Result := RGBColor; + finally + Free; + end; +end; + +constructor TJvRGBToHTML.Create(AOwner: TComponent); +begin + inherited Create(AOwner); + RGBColor := clBlack; +end; + +procedure TJvRGBToHTML.SetRGBColor(const Value: TColor); +var + Clr: TColor; +begin + FRGBColor := Value; + Clr := ColorToRGB(Value); + FHTMLColor := IntToHex(GetRValue(Clr), 2) + IntToHex(GetGValue(Clr), 2) + IntToHex(GetBValue(Clr), 2); +end; + +procedure TJvRGBToHTML.SetHTMLColor(const Value: string); +var + C: TColor; + R, G, B: Byte; +begin + try + if Length(Value) = 6 then + begin + R := StrToInt('$' + Copy(Value, 1, 2)); + G := StrToInt('$' + Copy(Value, 3, 2)); + B := StrToInt('$' + Copy(Value, 5, 2)); + C := RGB(R, G, B); + FRGBColor := C; + FHTMLColor := Value; + end; + except + end; +end; + +end.