Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Bildpfad eines TImages abspeichern (https://www.delphipraxis.net/194004-bildpfad-eines-timages-abspeichern.html)

Luca Haas 5. Okt 2017 09:25

AW: Bildpfad eines TImages abspeichern
 
Also erhalte ich den Pfad über
Delphi-Quellcode:
Image1.Picture.LoadFromFile(OpenPictureDialog1.filename);
und speichere ihn über
Delphi-Quellcode:
Bildname := KST_LagerbewertungQuery.FieldByName('Bildpfad').AsInteger;
Image1.Picture.SavetoFile('Bildname');
oder habe ich das falsch verstanden ?

mensch72 5. Okt 2017 09:28

AW: Bildpfad eines TImages abspeichern
 
Auf wenn dir "typen" völlig egal sind, dein Delphi will sie;)


Delphi-Quellcode:
Bildname := KST_LagerbewertungQuery.FieldByName('Bildpfad').AsString;
Image1.Picture.SavetoFile(Bildname);

TiGü 5. Okt 2017 09:32

AW: Bildpfad eines TImages abspeichern
 
Zitat:

Zitat von Luca Haas (Beitrag 1382640)
Also erhalte ich den Pfad über
Delphi-Quellcode:
Image1.Picture.LoadFromFile(OpenPictureDialog1.filename);
und speichere ihn über
Delphi-Quellcode:
Bildname := KST_LagerbewertungQuery.FieldByName('Bildpfad').AsInteger;
Image1.Picture.SavetoFile('Bildname');
oder habe ich das falsch verstanden ?

Du hast es falsch verstanden.
Was genau möchtest du erreichen?
Ich nehme an, du möchtest den Bildpfad oder von mir aus den Filename in die Datenbank speichern, ist das so korrekt?

Drösel doch mal diese Zeile:
Delphi-Quellcode:
Image1.Picture.LoadFromFile(OpenPictureDialog1.filename);
so auf
Delphi-Quellcode:
var
  ImageFileName: string;
begin
  ImageFileName := OpenPictureDialog1.filename;
  Image1.Picture.LoadFromFile(ImageFileName);
...
Macht es jetzt Klick?

Luca Haas 5. Okt 2017 09:33

AW: Bildpfad eines TImages abspeichern
 
@mensch72
Also vorher hatte ich auch .AsString allerdings erhalte ich dann eine Fehlermeldung, bezüglich inkompatibler Typen 'Integer' und 'string', deswegen hatte ich es auf .AsInteger geändert.

Ähnliches bei den '' um mein Bildname, dort habe ich die selbe Fehlermeldung nur umgekehrt erhalten.

Edit: Mein Fehler hatte die Variable falsch deklariert

Luca Haas 5. Okt 2017 09:41

AW: Bildpfad eines TImages abspeichern
 
Zitat:

Zitat von TiGü (Beitrag 1382642)
Macht es jetzt Klick?

Ja jetzt hat es endlich Klick gemacht, es läuft jetzt alles
Danke euch, auch wenn ich ein schwieriger Fall war(,bzw bin).:-D

Glados 5. Okt 2017 09:42

AW: Bildpfad eines TImages abspeichern
 
Zitat:

Also vorher hatte ich auch .AsString allerdings erhalte ich dann eine Fehlermeldung, bezüglich inkompatibler Typen 'Integer' und 'string', deswegen hatte ich es auf .AsInteger geändert.
Welchen Datentyp hat Bildname? Man darf nicht immer blind dem Compiler vertrauen. Wenn man doch explizit einen String möchte, dann ändere ich nichts zu Integer ab :wall:

Zitat:

es läuft jetzt alles
Zeigst du die Lösung?

mensch72 5. Okt 2017 09:43

AW: Bildpfad eines TImages abspeichern
 
..."Zeigst du die Lösung?"...

=> ja stell dich doch nicht knausrig mit Infos an, was in deiner Tabelle eigentlich drin steht

1. bitte Screenshot vom SQL Explorer: "select * from KST_Lagerbewertung"
2. dann bitte ScreenShot vom Windows DateiExplorer, wo man sie wo und wie die Bilder auf der Platte liegen

=> Mag ja sein das in Integerfeld in der DB eine BildNummer speichert... dann wäre "iBildNummer" auch die passende DelphiVariable dazu:)
=> Mag auch sein, das wer die Bilder auf der Platte direkt per Nummer speichert, aber zu 99,9% NEIN... da fehlt ganz sicher das BilderRoot davor und die Dateiendung danach!?


Es ist mir schleierhaft, wie du ohne so GrundsatzInfos oder IstAnalyse einfach drauf losprogrammierst :(

Luca Haas 5. Okt 2017 09:46

AW: Bildpfad eines TImages abspeichern
 
Zitat:

Zitat von Glados (Beitrag 1382646)
Zeigst du die Lösung?

Delphi-Quellcode:
procedure TForm1.Image1DblClick(Sender: TObject);
var
  ImageFileName: string;
begin
  Image1.Stretch := true;
  if OpenPictureDialog1.Execute then
  begin
    ImageFileName := OpenPictureDialog1.filename;
    Image1.Picture.LoadFromFile(ImageFileName);

    KST_LagerbewertungQuery.Edit;
    ImageFileName := KST_LagerbewertungQuery.FieldByName('Bildpfad').AsString;
    Image1.Picture.SavetoFile(ImageFileName);
    KST_LagerbewertungQuery.Post;
  end;
end;

DeddyH 5. Okt 2017 09:52

AW: Bildpfad eines TImages abspeichern
 
Ob das so richtig ist? Ich möchte wetten, dass Dein Compiler Dir dezente Hinweise gibt.

Jumpy 5. Okt 2017 09:52

AW: Bildpfad eines TImages abspeichern
 
Das ist der Nachteil von Fragend-Entwickelndem-Unterricht in der Forum-Quorum-Variante.
Der Schüler gibt sich mit einer halbwegs fertigen Lösung zufrieden, damit er endlich Ruhe hat. :-D


Die Frage ist doch: Was möchtest du wirklich machen? Ich vermute mal:
1. Bild im Dateisystem suchen.
2. Öffnen und Anzeigen.
3. Dann den Pfad zu dem Bild in der Datenbank speichern.

Da ist bei dir Punkt 3 noch falsch!
Code:
ImageFileName := KST_LagerbewertungQuery.FieldByName('Bildpfad').AsString;
müsste umgedreht werden!

Was du vielleicht unabhängig davon (an anderer Stelle) auch noch möchtest ist:
- Gibt es zum Datensatz schon einen Bildpfad in der Datenbank, dann:
1. Prüfen ob es das Bild im Dateisystem gibt
2. Öffnen und anzeigen des Bildes.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:43 Uhr.
Seite 3 von 5     123 45      

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