Genau das ist der Vorteil einer Klasse. Da kannst du einfach TSprite als Typ für die Liste nehmen und es ist trotzdem ein Pointer.
Delphi-Quellcode:
var
Sprite: TSprite;
begin
Sprite := TSprite.Create;
Sprite.IconPath := ExtractFilePath(ParamStr(0)) + 'UserIcon\48x48\' + sUseThumb;
IconPath := SpriteIconPath;
Sprite.h_Bitmap := CreateIcon.CreateCustomIcon(IconPath, Width, Height, 0);
Sprite.Width := Width;
Sprite.Height := Height;
Sprite.ShellTo := 'explorer.exe';
Sprite.CmdLine := '/N;::{645FF040-5081-101B-9F08-00AA002F954E}';
Sprite.ShowCmd := SW_SHOW;
Liste.Add(Sprite);
end;
Hmm hatte eigentlich vor es so zu machen wie hoika es beschrieben hatte.
Delphi-Quellcode:
type
TSprite = packed record
type
TSprite = class
type
TSpriteListe = class(TObjectList)
TSpriteListe = TList<TSprite>
Den Record möchte ich nicht verändern und extra eine Classe anlegen da habe ich meinen Pointer PSprite.
Delphi-Quellcode:
TSprite = packed Record
CtrlName: WideString;
CtrlIndex: Integer;
Left: Single;
Top: Single;
Width: Integer;
Height: Integer;
Scale: Single;
Opacity: Byte;
ShellTo: string;
IconPath: WideString;
WorkDir: WideString;
UseLabel: string;
CmdLine: WideString;
ShowCmd: longint;
h_Bitmap: HBitmap;
Visible: Bool;
end;
PSprite = ^TSprite;
Bin mir noch nicht sicher ob mir das Vorteile bringt.
Auch bei einer TList muss ich unter umständen mit einem Array Arbeiten dann wäre es das gleiche wie vorher.
Hmmm
![Stupid](images/smilies/stupid.gif)
Iregendwie bin ich mir nicht sicher wie er das meint..
Entweder oder?
class oder TList<TSprite> ?
Habe ich beides schon versucht bringt nicht wirklich was.
gruss