Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Aus DB in Image auf einem Frame (https://www.delphipraxis.net/155409-aus-db-image-auf-einem-frame.html)

Kralle 21. Okt 2010 21:01

Aus DB in Image auf einem Frame
 
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

Bummi 21. Okt 2010 22:06

AW: Aus DB in Image auf einem Frame
 
ich weißt nicht wo das Problem liegt sehe aber andere
Feld.Value <> NULL funktioniert nicht verwende Feld.isNull.

Hast Du mal versucht mit dem Debugger dem Fehler auf die Spur zu kommen?

Kann es sein dass die Felder zwar den Bildnamen enthalten aber nicht den Pfad dazu (der gehört IMHO auch nicht in die Datenbank sondern in eine Konfigurationseinstellung).

Was macht die .Post Anweisung an dieser Stelle???

Kralle 23. Okt 2010 16:05

AW: Aus DB in Image auf einem Frame
 
Hallo,

Zitat:

Zitat von Bummi (Beitrag 1057076)
verwende Feld.isNull.

Danke. Mache ich jetzt.

Zitat:

Hast Du mal versucht mit dem Debugger dem Fehler auf die Spur zu kommen?
Soweit es meine Fähigkeiten zulassen.

Code:
Kann es sein dass die Felder zwar den Bildnamen enthalten aber nicht den Pfad dazu
Doch, die Pfade stehen komplett drin.

Zitat:

(der gehört IMHO auch nicht in die Datenbank sondern in eine Konfigurationseinstellung).
Aber nicht dann, wenn die Bilder überall auf der Platte verteilt liegen können.
Eine Funktion, die die ausgewählten Bilder in ein Zentrales Verzeichnis kopier, ist noch auf der ToDo-Liste.

Zitat:

Was macht die .Post Anweisung an dieser Stelle???
War nur ein Versuch.

Ich Beende diesen Thread hier, da das eigentliche Problem ein anderes ist und in einem anderen Thread besprochen wird.

MfG
HEiko

EOT

SirThornberry 23. Okt 2010 16:30

AW: Aus DB in Image auf einem Frame
 
Gemeint ist wohl dieses Thema:
http://www.delphipraxis.net/155426-j...er-delphi.html
bitte da weiter machen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz