Revision 119:66352054ce4d UOLib/UHue.pas
| b/UOLib/UHue.pas | ||
|---|---|---|
| 21 | 21 |
* CDDL HEADER END |
| 22 | 22 |
* |
| 23 | 23 |
* |
| 24 |
* Portions Copyright 2007 Andreas Schneider
|
|
| 24 |
* Portions Copyright 2009 Andreas Schneider
|
|
| 25 | 25 |
*) |
| 26 | 26 |
unit UHue; |
| 27 | 27 |
|
| ... | ... | |
| 30 | 30 |
interface |
| 31 | 31 |
|
| 32 | 32 |
uses |
| 33 |
SysUtils, Classes, Graphics, UMulBlock, UGraphicHelper;
|
|
| 33 |
SysUtils, Classes, Graphics, UMulBlock; |
|
| 34 | 34 |
|
| 35 | 35 |
type |
| 36 |
|
|
| 36 | 37 |
TColorTable = array[0..31] of Word; |
| 38 |
|
|
| 39 |
{ THue }
|
|
| 40 |
|
|
| 37 | 41 |
THue = class(TMulBlock) |
| 38 | 42 |
constructor Create(AData: TStream); |
| 39 | 43 |
function Clone: THue; override; |
| ... | ... | |
| 52 | 56 |
property TableEnd: Word read FTableEnd write FTableEnd; |
| 53 | 57 |
property Name: string read GetName write SetName; |
| 54 | 58 |
end; |
| 59 |
|
|
| 55 | 60 |
THueEntries = array[0..7] of THue; |
| 61 |
|
|
| 62 |
{ THueGroup }
|
|
| 63 |
|
|
| 56 | 64 |
THueGroup = class(TMulBlock) |
| 57 | 65 |
constructor Create(AData: TStream); |
| 58 | 66 |
destructor Destroy; override; |
| ... | ... | |
| 92 | 100 |
color: Word; |
| 93 | 101 |
begin |
| 94 | 102 |
SetLength(FName, 20); |
| 95 |
if Assigned(AData) then
|
|
| 103 |
if AData <> nil then
|
|
| 96 | 104 |
begin |
| 97 | 105 |
buffer := TMemoryStream.Create; |
| 98 | 106 |
buffer.CopyFrom(AData, 88); |
| ... | ... | |
| 158 | 166 |
i: Integer; |
| 159 | 167 |
buffer: TMemoryStream; |
| 160 | 168 |
begin |
| 161 |
if Assigned(AData) then
|
|
| 169 |
if AData <> nil then
|
|
| 162 | 170 |
begin |
| 163 | 171 |
buffer := TMemoryStream.Create; |
| 164 | 172 |
buffer.CopyFrom(AData, 708); |
| ... | ... | |
| 170 | 178 |
for i := 0 to 7 do |
| 171 | 179 |
FHueEntries[i] := THue.Create(buffer); |
| 172 | 180 |
|
| 173 |
if Assigned(buffer) then FreeAndNil(buffer);
|
|
| 181 |
buffer.Free;
|
|
| 174 | 182 |
end; |
| 175 | 183 |
|
| 176 | 184 |
destructor THueGroup.Destroy; |
| ... | ... | |
| 178 | 186 |
i: Integer; |
| 179 | 187 |
begin |
| 180 | 188 |
for i := 0 to 7 do |
| 181 |
if Assigned(FHueEntries[i]) then |
|
| 182 |
FreeAndNil(FHueEntries[i]); |
|
| 183 |
inherited; |
|
| 189 |
FreeAndNil(FHueEntries[i]); |
|
| 190 |
inherited Destroy; |
|
| 184 | 191 |
end; |
| 185 | 192 |
|
| 186 | 193 |
function THueGroup.GetHueEntry(AIndex: Integer): THue; |
| ... | ... | |
| 195 | 202 |
|
| 196 | 203 |
procedure THueGroup.SetHueEntry(AIndex: Integer; AValue: THue); |
| 197 | 204 |
begin |
| 198 |
if Assigned(FHueEntries[AIndex]) then FreeAndNil(FHueEntries[AIndex]);
|
|
| 205 |
FreeAndNil(FHueEntries[AIndex]); |
|
| 199 | 206 |
FHueEntries[AIndex] := AValue; |
| 200 | 207 |
end; |
| 201 | 208 |
|
Also available in: Unified diff