Einzelnen Beitrag anzeigen

Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: mehrere Bilder Speicher verwalten

  Alt 3. Jan 2011, 23:50
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?
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton ( 4. Jan 2011 um 00:19 Uhr)
  Mit Zitat antworten Zitat