@Helmi
Zuerst mal danke für den Hinweis.
Vermutlich war es gestern Abend/heute Morgen wohl doch etwas zu spät. Ich habe jetzt den Quellcode aus 2 Komponenten übernommen, die sich auch mit Grafik beschäftigen. Dort wird jeweils
nur eine Methode für das Schreiben des TPicture angelegt. Das Lesen geht irgendwie auch so.
Ich behaupte nicht, es verstanden zu haben. Aber es funktioniert so:
Delphi-Quellcode:
Type
THHint = Class(TComponent)
private
Screensize : Integer;
Factive : Boolean; // Aktiv
Fseparator : Char; // Normaler Separator
FGraphicTag : String; // Grafik-TAG
FPicture : TPicture; // Grafik
FOnShowHint : TShowHintEvent;// Anzeigen des Hint
Protected
// Aktiv
Function GetActive:boolean;
Procedure SetActive(IsActive:Boolean);
// Normaler Separator
Function GetSeparator:Char;
Procedure SetSeparator(IsSep:Char);
// Grafik-TAG
Function GetGraphicTag:String;
Procedure SetGraphicTag(IsGraphTag:String);
// Grafik
Procedure SetPicture(IsGraphic:TPicture);
// Procedure zum Anzeigen des Hint
Procedure NewHintInfo(Var HintStr : String;
Var CanShow : Boolean;
Var HintInfo : THintInfo);
Public
Constructor Create(AOwner:Tcomponent);Override;
Published
Property Active: Boolean Read GetActive Write SetActive;
Property Separator: Char Read GetSeparator Write SetSeparator;
Property GraphicTag: String Read GetGraphicTag Write SetGraphicTag;
Property Picture: TPicture Read FPicture Write SetPicture;
End;
und hier die Methoden:
Delphi-Quellcode:
// Grafik
Procedure THHint.SetPicture(IsGraphic: TPicture);
Begin
FPicture.Assign(IsGraphic);
End;
So dürfte es auch kein Speicherleck mehr geben,
oder? Das Bild bekomme ich jedenfalls zurück. Ich mache mich dann mal (bei Gelegenheit) an das Bauen der Bildausgabe.
Nebenfrage: Warum werden manche Methoden zum Lesen beschrieben und andere nicht bzw. wonach richtet sich die Notwendigkeit? Ich nehme gern auch Links zum Nachlesen.
Gruß, Alex