Win32: Save CustomColors in TColorDialog. Fixes issue #0023960.

Patch by David Gray.

git-svn-id: trunk@40493 -
This commit is contained in:
bart 2013-03-06 11:39:48 +00:00
parent 068b003b83
commit 277b78225d

View File

@ -382,6 +382,7 @@ var
CC: PChooseColor;
UserResult: WINBOOL;
State: TApplicationState;
i: Integer;
begin
if ACommonDialog.Handle <> 0 then
begin
@ -392,7 +393,14 @@ begin
UserResult := ChooseColor(CC);
SetDialogResult(ACommonDialog, UserResult);
if UserResult then
begin
TColorDialog(ACommonDialog).Color := CC^.RGBResult;
for i := 0 to 15 do
if i < TColorDialog(ACommonDialog).CustomColors.Count then
TColorDialog(ACommonDialog).CustomColors[i] := Format('Color%s=%x', [Chr(Ord('A')+i), CC^.lpCustColors[i]])
else
TColorDialog(ACommonDialog).CustomColors.Add (Format('Color%s=%x', [Chr(Ord('A')+i), CC^.lpCustColors[i]]));
end;
finally
RestoreApplicationState(State);
end;