Einzelnen Beitrag anzeigen

Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
355 Beiträge
 
Delphi XE7 Professional
 
#1

Aus DB in Image auf einem Frame

  Alt 21. Okt 2010, 22:01
Hallo,

ich speichere in einer "MyBase"-Datenbank die Filenamen von Bildern (JPG).
Wenn ich die Bilder das erstemal zuweise (OnClick-Ereignis auf die Image-Komponente meines Bilder-Frames), werden sie auch angezeigt.
Delphi-Quellcode:
 with DataModule1.DataSource1.DataSet do
      begin
        Edit;
        bildname:=DataModule1.OpenPictureDialog1.FileName;
        FieldByName(Feldname).Value:=bildname;
        Post;
         Image3.Picture.LoadFromFile(bildname);
      end;
Jetzt habe ich für insgesamt 13 Bilderpositionen ein Frame erstellt.

Delphi-Quellcode:
unit FramesVorlage;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ExtDlgs, DB, DBClient, Datenmodul,Jpeg;

type
  TFrame3 = class(TFrame)
    Label11: TLabel;
    Image3: TImage;
    Bevel3: TBevel;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Image3Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
Wenn ich jetzt aber den Datensatz wechsel oder die Datenbank neu lade, dann sind die Pfade zwar noch in der DaBa, aber ich bekomme die Bilder einfach nicht mehr angezeigt.

Ich habe das Anzeigen für die Frames (Detail01 bis Detail09) versucht so zu lösen:
Delphi-Quellcode:
procedure THauptfenster.TabControl1Change(Sender: TObject);
var i:integer;
begin
      for I := 31 to 39 do
     If DataModule1.DataSource1.DataSet.FieldByName('Detail0'+IntToStr(I-30)).Value <> NULL then
      TFrame3(Components[I]).Image3.Picture.LoadFromFile(DataModule1.DataSource1.DataSet.FieldByName('Detail0'+IntToStr(I-30)).Value)
      else //TFrame3(Components[I]).Image3.Picture:=nil;
      DataModule1.ClientDataSet1.Post;
      end;
Aber ich bekomme die Bilder einach nicht angezeigt.
Könnt Ihr mir helfen?

MfG
Heiko