Bildlisten

Jedes Fitness-Studio braucht sie: Die Datenbank mit Bilder. Schließlich muss die Empfangsdame ja wissen, wen sie da an die Geräte lässt. Delphi stellt zum Speichern von Bildern einen Behälter zur Verfügung, der ähnliche Methoden wie  TStringList bzw. TList  besitzt. Am effektivsten ist solch ein Bild-Behälter, wenn man mit Bitmaps gleicher Größe (in unserem Beispiel 120 x 120 Pixel) arbeitet.  Der Methode Add(Image, Mask: TBitmap) speichert eigentlich zwei Bitmaps der gleichen Größe ab, das Bild selbst und eine sog. Mask-Bitmap,  in dem berechnet wird, wie sich das Bild bei der Überlagerung mit anderen Bildern verhält. Es gibt eine zweite Add-Methode, die diese Maske selber berechnet: AddMasked(Image: TBitmap; MaskColor: TColor)

 

 

Die folgende Prozedur zeigt, wie man auf Bilder zugreift, die in einer Bildliste vom Typ TImageList gespeichert sind: Auf jedes Bild der Bildliste kann über seinen Index zugegriffen werden:

procedure TForm1.SelectBild(z: integer);
var bm : TBitMap;
begin
  bm := TBitMap.Create;
  bm.width := 120; bm.height := 120;
  BildListe.GetBitmap(z,bm);
  Image1.Picture.Bitmap := bm;
end;

Um die Bilder nicht per Hand laden zu müssen, werden sie über eine Bilder-Information-Datei geladen. Jeder Datensatz dieser Datei enthält  folgende Informationen:

TDatenSatz = record
  bildindex : integer;
  Bildfile : Shortstring;
end;

Beim Laden dieser Datei werden auch gleich die entsprechenden Bilder in die Bildliste geladen und können dann durch Klicken auf die entsprechende Zeile in der Tabelle angezeigt werden. Dabei enthält das Feld BildFilename den vollständigen Pfad des Bildes. In der Tabelle wird nur der Name der Bilddatei (  ExtractFileName(BildFile) ) angezeigt.

Aufgaben

Das Programm  datei3.pas enthält einen kleinen Programmrumpf, mit dem man Bilder (Bilder sind mit verpackt) zur Bildliste hinzufügen kann. Das Programm enthält noch etliche Macken, so z.B. in der Datei die vollständigen Pfadnamen meine heimischen Rechners. Außerdem könnte man z.B. den OpenDialog durch einen PictureOpenDialog ersetzen, Sicherheitsabfragen für verschiedene Situationen einfügen, usw. Zunächst soll das Programm auf Eurem Rechner einwandfrei laufen.  Man kann zudem noch kein Bild aus der Bildliste (und damit auch aus der Datenliste) entfernen. Wenn man das implementieren will,  muss man vor allem auf eine sinnvolle Verwaltung des Bildindex - über die Bilder in der Bildliste gefunden werden -  achten.

 

Zurück zu Delphi

© Dietrich Praclik