Показать сообщение отдельно
  #7  
Старый 27.05.2009, 00:39
Рената Литвинова Рената Литвинова вне форума
Прохожий
 
Регистрация: 24.05.2009
Сообщения: 7
Репутация: 10
По умолчанию

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суд в диалоге выбора цвета выдает ошибку), при нажатии Отмена цвет тоже вставляется...
Ответить с цитированием