Zuerst einmal müsstest du alle Bildformate, die du in deinem Programm anzeigen und bearbeiten willst, laden können. Folgende Bilder ünterstützt TPicture (Turbo Delphi Explorer):
Delphi-Quellcode:
constructor TFileFormatsList.Create;
begin
inherited Create;
Add('wmf', SVMetafiles, 0, TMetafile);
Add('emf', SVEnhMetafiles, 0, TMetafile);
Add('ico', SVIcons, 0, TIcon);
Add('bmp', SVBitmaps, 0, TBitmap);
end;
wmf, emf, ico und bmp!
Wenn du zb. JPEG Bilder haben willst, müsstest du eine Klasse von TGraphic ableiten, den Ladevorgang und bestimmte weitere Funktionen implementieren und per TPicture.RegisterFileFormat() registrieren. Somit kann die TPicture Klasse dann selbst diese Klasse nützen und diese Bilder eben anzeigen.
Weiters wäre es angebracht eine Liste oder einen Manager zu programmieren, der Picture Instanzen verwalten und bestimmte Aufgaben (anzeigen usw) durchführen kann.
Edit:
procedure Draw(ACanvas: TCanvas; const Rect: TRect); virtual; abstract;
Diese Methode müsstest du dann implementieren (überschreiben).
Genau dies macht auch die TPNGObject Klasse (PNGImage.pas). Weiters registriert diese
Unit die Klasse im Initialization Teil derselben
Unit:
Delphi-Quellcode:
initialization
{...}
{$IFDEF UseDelphi}{$IFDEF RegisterGraphic}
TPicture.RegisterFileFormat('PNG', 'Portable Network Graphics', TPNGObject);
{$ENDIF}{$ENDIF}
Im Grunde wäre es das eigentlich schon.
Noch Fragen?