index cf743d84c76049b05e626f3050e449ff4b2f7f52..2e10dc2cecc99f87d32def773a3a1cb30413645e 100644 (file)
{
- $Id: ImagingXpm.pas 171 2009-09-02 01:34:19Z galfar $
Vampyre Imaging Library
by Marek Mauder
http://imaginglib.sourceforge.net
Loading as well as saving is supported now. }
TXPMFileFormat = class(TImageFileFormat)
protected
+ procedure Define; override;
function LoadData(Handle: TImagingHandle; var Images: TDynImageDataArray;
OnlyFirstLevel: Boolean): Boolean; override;
function SaveData(Handle: TImagingHandle; const Images: TDynImageDataArray;
procedure ConvertToSupported(var Image: TImageData;
const Info: TImageFormatInfo); override;
public
- constructor Create; override;
function TestFormat(Handle: TImagingHandle): Boolean; override;
end;
begin
Result := '';
if FindItem(AKey, Bucket, Index) then
- Result := FBuckets[Bucket].Items[Index].Data;
+ Result := string(FBuckets[Bucket].Items[Index].Data);
end;
procedure TSimpleBucketList.SetData(AKey: TColor32; const AData: string);
Bucket, Index: Integer;
begin
if FindItem(AKey, Bucket, Index) then
- FBuckets[Bucket].Items[Index].Data := AData;
+ FBuckets[Bucket].Items[Index].Data := ShortString(AData);
end;
function TSimpleBucketList.EnumNext(out AData: string): TColor32;
end;
Result := FBuckets[FABucket].Items[FAIndex].Key;
- AData := FBuckets[FABucket].Items[FAIndex].Data;
+ AData := string(FBuckets[FABucket].Items[FAIndex].Data);
Inc(FAIndex);
end;
with Items[Count] do
begin
Key := AKey;
- Data := AData;
+ Data := ShortString(AData);
end;
Inc(Count);
Inc(FItemCount);
TXPMFileFormat implementation
}
-constructor TXPMFileFormat.Create;
+procedure TXPMFileFormat.Define;
begin
- inherited Create;
+ inherited;
FName := SXPMFormatName;
- FCanLoad := True;
- FCanSave := True;
- FIsMultiImageFormat := False;
+ FFeatures := [ffLoad, ffSave];
FSupportedFormats := XPMSupportedFormats;
AddMasks(SXPMMasks);
procedure SkipWhiteSpace(var Line: string);
begin
- while (Length(Line) > 0) and (Line[1] in WhiteSpaces) do
+ while (Length(Line) > 0) and (AnsiChar(Line[1]) in WhiteSpaces) do
Delete(Line, 1, 1);
end;
begin
Result := '';
SkipWhiteSpace(Line);
- while (Length(Line) > 0) and not(Line[1] in WhiteSpaces) do
+ while (Length(Line) > 0) and not (AnsiChar(Line[1]) in WhiteSpaces) do
begin
SetLength(Result, Length(Result) + 1);
Result[Length(Result)] := Line[1];
Contents := TStringList.Create;
SetLength(S, GetInputSize(GetIO, Handle));
Read(Handle, @S[1], Length(S));
- Contents.Text := S;
+ Contents.Text := string(S);
// Remove quotes and other stuff
for I := Contents.Count - 1 downto 0 do
begin