首页 > 解决方案 > Delphi - Colordialog 选择黑色作为颜色

问题描述

我是德尔福的新手,我需要一些帮助。

我有一个程序,一个背景换色器,带有TColorDialog. 这在其他方面效果很好,但是当我关闭它ColorDialog而不从中选择颜色时会出现问题。然后背景变为黑色,它还将黑色保存为.ini文件中的颜色“0”。

我的代码:

procedure TEinstellungenF.BtnBackgroundClick(Sender: TObject);
var filename:String;
ini:TIniFile;
begin       // Speichert die im ColorDialog ausgewählten Background Farben in der Ini
  filename := ExtractFilePath(ParamStr(0)) + 'Einstellungen.ini';
  ini := TIniFile.Create(filename);
  ColorDialog1.Execute();
  try
    ini.WriteInteger('Farben','Hintergrundfarbe', ColorDialog1.Color);
  finally
    ini.Free;
  end;

  FrmMain.Color := TColor(Ini.ReadInteger('Farben','Hintergrundfarbe',ColorDialog1.Color));
  Color := TColor(Ini.ReadInteger('Farben','Hintergrundfarbe',ColorDialog1.Color));
end;``` 

标签: delphibackground-colorcolordialog

解决方案


检查返回值ColorDialog1.Execute并采取相应措施。

从文档:

Execute 打开颜色选择对话框,当用户选择一种颜色并单击 OK 时返回 true,或者当用户取消时返回 false。


推荐阅读