Announcement

Collapse
No announcement yet.

Neues Image in Datensatz einlesen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Neues Image in Datensatz einlesen?

    Wie liest man in TDBImage- Control's ein neues Bild ein, am besten mit einem gewohnten Windows- System Fenster (Visual Basic: DoCmd.RunCmd asInsertObject) ? Falls mein Ansatz richtig ist, wie muß ich TOpenPictureDialog verwenden?
    (Wenn die Hilfe nur etwas besser mit Ausweisung der kompletten Syntax wäre...)

  • #2
    Hallo,

    für dieses Problem gibt es zwei Lösungen:<br>
    1. Über <b>TDBImage.Picture.LoadFromFile</b> wird die Grafik in die TDBImage-Instanz geladen, nachdem die Datenmenge (TTable) in den <b>Edit</b>-Modus geschaltet wird. <br>
    2. Die Grafik wird direkt in die Datenbanktabelle eingefügt, somit zeigt TDBImage die Grafik automatisch ohne manuelles Zutun an. Falls man zum Beispiel vor dem Abspeichern das Bild zur Vorschau sichtbar machen will, kann man den folgenden Weg gehen:

    Im ersten Schritt wird die Grafik in eine <b>TImage</b>-Instanz geladen. Ein <b>TOpenPictureDialog</b> wählt die Grafikdatei aus:
    <pre>
    procedure TFormMain.SBOpenClick(Sender: TObject);
    begin
    with OpenPictureDialog1 do
    if Execute then
    begin
    StaticTextPath.Caption := FileName;
    Image1.Picture.LoadFromFile(FileName);
    end;
    end;
    </pre>
    Ist man mit dem Bild zufrieden, kann diese Grafik über eine <b>TQuery</b>-Instanz (INSERT-Anweisung) in die Datenbanktabelle geschrieben werden. Im Beispiel fügt die INSERT-Anweisung 2 Tabellenspalten aus. Die erste Spalte enthält die Beschriftung der Grafik (Parameter 0), während die zweite Spalte den Grafikinhalt speichert (Parameter 1):
    <pre>
    procedure TFormMain.ButtonLoadClick(Sender: TObject);
    begin
    with QueryIcon do
    begin
    Params[0].AsString := Edit1.Text;
    Params[1].LoadFromFile(OpenPictureDialog1.FileName, ftGraphic);
    ExecSQL;
    end;
    end;
    </pre&gt

    Comment

    Working...
    X