Переменная типа Utf8String хранит следующую строку: '$00A1CCA1' но компилятор говорит что ожидается тип TGraphicsColor.
Как конвертировать Utf8String в TGraphicsColor и обратно?
Модератор: Модераторы
:=StrToInt('$00A1CCA1');
var s:utf8string;
...
s:='$00A1CCA1';
...
ColorButton1.ButtonColor:=s;
unit1.pas(136,48) Error: Incompatible type for arg no. 1: Got "UTF8String", expected "TGraphicsColor"
type
TGraphicsColor = -$7FFFFFFF-1..$7FFFFFFF;
Mr.Smart писал(а):По вашему это что?
- Код: Выделить всё
type
TGraphicsColor = -$7FFFFFFF-1..$7FFFFFFF;
var
s: UTF8String;
begin
s:='$00A1CCA1';
ColorButton1.ButtonColor:=StrToInt(s);
end;
s:='$'+IntToHex(ColorButton1.ButtonColor,8)
s:=Format('$%.8x',[ColorButton1.ButtonColor]);
var
s: string;
rgba: array [1..4] of Byte;
begin
s := IntToHex(ColorButton1.ButtonColor,8);
rgba[1] := strtoint(copy(s, 1, 2));
rgba[2] := strtoint(copy(s, 3, 2));
rgba[3] := strtoint(copy(s, 5, 2));
rgba[4] := strtoint(copy(s, 7, 2));
function Blue(rgb: TColor): BYTE;
function Green(rgb: TColor): BYTE;
function Red(rgb: TColor): BYTE;
procedure RedGreenBlue(rgb: TColor; out Red, Green, Blue: Byte);
function TColorToFPColor(const c: TColor): TFPColor;
TFPColor = record
red,green,blue,alpha : word;
end;
function FPColorToTColor(const FPColor: TFPColor): TColor;
uses
Graphics, ...
...
procedure TForm1.Button1Click(Sender:TObject);
var s:utf8string;
begin
s:='$00A1CCA1';
Form1.Color := StringToColor(s);
end;
qivi писал(а):Нет немного не то, исходной данной является свойство ColorButton1.ButtonColor, а не стринговая переменная. Как её преобразовать в 4 интегерные переменные (цветовые каналы + альфа), и как в неё вернуть цвет из этих 4 переменных?
uses
FPimage, ...
...
var
Form1: TForm1;
TheColor: tFPColor;
cR,cG,cB,cA: integer;
...
procedure TForm1.Button1Click(Sender:TObject);
begin
TheColor:= TColorToFPColor(ColorButton1.ButtonColor);
Label1.Caption:= 'R = '+inttostr(TheColor.red);
Label2.Caption:= 'G = '+inttostr(TheColor.green);
Label3.Caption:= 'B = '+inttostr(TheColor.blue);
Label4.Caption:= 'A = '+inttostr(TheColor.alpha);
cR:= TheColor.red; // и т.д.
// сохраняем в файл...
end;
procedure TForm1.Button2Click(Sender:TObject);
begin
TheColor.red:= ...// считываем из файла...
// ... и т.д.
ColorButton2.ButtonColor:= FPColorToTColor(TheColor);
end;
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 250