Ich möchte ein Playlist-Steuerelement erstellen. Ich habe viele Informationen in einer TStringList anzuzeigen. Ich möchte TStringGrid.Objects anstelle von einem Objekt einen Datensatz zuweisen, da so viele Objekte eine Weile dauern können, um zu erstellen / zu zerstören. Es braucht auch viel RAM.
Eine Aufnahme wird viel schneller und schlanker sein. Wie kann ich das tun?
%Vor%Sie können eine TList für einen Zeiger Ihres Datensatzes verwenden.
ZB:
%Vor%Verwendung
%Vor%usw.
{Meine Liste ist eine Liste, die Sie anderswo erstellt haben}
%Vor%Sie müssen mit der Entsorgung von Artikeln aus der Liste umgehen, zB
Dispose(PMyRec(MyList[Index]));
Um ein Element aus der Liste zu verwenden:
%Vor%usw.
Sind Sie sicher, dass Sie alle diese Objekte zuweisen möchten? Durch das Aussehen der Datensatzstruktur sieht es so aus, als ob Sie ein Objekt pro Zeile wünschen - nicht pro Zelle. Dafür hast du mindestens 2 Optionen:
Wenn Sie jetzt Ihre Daten mit dem Raster verbinden möchten, packen Sie sie einfach in das Objekt und Sie können dann die Objekt-Sammlung verwenden.
Erstellen Sie nun anstelle von all dem Ärger einfach einen Event-Handler für TDrawGrid.DrawCell wie
%Vor%Verwenden Sie GrdPaths.Canvas.Handle mit DrawText oder wenn Unicode benötigt wird, verwenden Sie DrawTextW (beide kommen von Windows API, es gibt Tonnen von Beispielen, wie man es benutzt), und Sie sparen Ihnen und Ihrem Klienten viel Frustration, Gedächtnis und vor allem - Zeit.
Tags und Links delphi