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
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