Nyctos Kasignete, спасибо, что помогаете!
Программа работает... и вставка цвета работает... правда, через задницу, из которой мои руки выросли
Компилятор злостно ругается на строку
Код:
if not ColorDialog1.Execute then Exit;
, но если ее убрать - все нормально.
А дальше... В общем, вот что я делаю:
Код:
function GetHexColor: string;
var
hex: Cardinal;
clrR, clrG, clrB: Byte;
ColorDialog1: TColorDialog;
begin
Result := '#000000';
// if not ColorDialog1.Execute then Exit;
clrR := GetRValue(ColorDialog1.Color );
clrG := GetGValue(ColorDialog1.Color);
clrB := GetBValue(ColorDialog1.Color);
hex := clrB or (clrG shl 8) or (clrR shl 16);
Result := '#' + IntToHex(hex, 6);
col:=Result;
end;
...
Код:
procedure TfrmMain.Button1Click(Sender: TObject);
begin
ColorDialog1.Execute;
end;
procedure TfrmMain.ColorDialog1Close(Sender: TObject);
begin
GetHexColor;
SynEdit1.SelText:=col;
end;
При этом вставка вроде работает... Но вставляет один и тот же цвет - #56E8B6. Пробую пальцем в небо - переношу вызов функции в процедуру Button1Click - вставляет цвет #0F0FB7. Снова один и тот же.
Где я туплю?
PS: Да, и поскольку строку "if not ColorDialog1.Execute then Exit" приходится убрать (компилятор что-то ругаться перестал, но программа при нажатии Canсуд в диалоге выбора цвета выдает ошибку), при нажатии Отмена цвет тоже вставляется...