Autor |
Beitrag |
_smiley_
Hält's aus hier
Beiträge: 7
|
Verfasst: Di 08.03.05 21:59
Hallo!
Also bin leider ziemlicher Anfänger Delphi betreffend und hab eine Frage:
Meine Datenbank (falls man das so nennen kann) wird durch einen Record mit mehrer Komponenten in eine typisierte Datei (.dat) gespeichert.
Muss aber auch eine BMP datei bei jedem Record u somit in jeder Zeile der typisierten Datei mitspeichern. Wie mach ich das?
Mir ist klar, dass ich kein Image in eine typisierte Datei speichern kann.
Könnte das mit einem Pointer funktionieren, der auf die Adresse des Images zeigt? hab schon versucht, aber hatte wenig Erfolg.
Oder.. könnt ich nicht den Pfad der Datei in die typisierte Datei als String speichern?
Nur wie les' ich den gesamten Pfad eines Images aus der Datei heraus?
Hoffe meine Erklärung war verständlich. Hoffe es kann mir jemand helfen
mfg
Smiley 
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Mi 09.03.05 09:21
Erstmal
Also:
1. ExpandFileName gibt dir den vollständigen Dateinamen zurück.
2. Auch Bitmaps lassen sich mit einem Trick in einer typisierten Datei speichern. Ich würde aber davon abraten, es sei denn, jedes Bildchen hat ungefähr die gleiche Größe und du kannst ein Maximalgröße festlegen. Dann kannst du nämlich ein Array of Byte festlegen und mit move die Speicherbereiche hin- und herschiebst.
Da du die Dateien aber sowieso auf der Festplatte hast, empfehle ich dir den Weg mit dem vollständigen Dateinmamen.
|
|
_smiley_ 
Hält's aus hier
Beiträge: 7
|
Verfasst: Mi 09.03.05 21:02
Danke. klingt logisch.. sollte auch funktionieren u hab es so selbst schon versucht, aber leider bekomm ich immer eine Fehlermeldung.
also ich schreib nur kurz, wie ichs jetz gemacht habe:
speicher.foto:=ExpandFileName(picturename); -> speichert eben die adresse in die foto-komponente (string) meiner typisierten datei
und bei der ausgabe:
Image1.Picture.LoadFromFile(speicher.foto);
sollte das nicht eigentlich funktionieren? oder wo liegt mein fehler?
danke im voraus.
mfg smiley
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Mi 09.03.05 21:10
_smiley_ hat folgendes geschrieben: | Danke. klingt logisch.. sollte auch funktionieren u hab es so selbst schon versucht, aber leider bekomm ich immer eine Fehlermeldung. |
Welche?
Und was funktioniert nicht? Hast du mal mit einem ShowMessage(speicher.foto) den vollständigen Dateinamen ausgeben lassen?
Ein bisschen genauer und man kann dir schneller und besser helfen.
|
|
_smiley_ 
Hält's aus hier
Beiträge: 7
|
Verfasst: Do 10.03.05 13:11
ja ich hab den pfad auch ausgegeben, zur kontrolle. zeigt auch genau den pfad an, an dem das foto gespeichert ist.
nur anscheinend wird der pfad nicht in die typisierte datei gespeichert bzw. wenn ich die .dat datei öffne, bekomme ich eine fehlermeldung, weil das bild anscheinend nicht geöffnet werden kann.
präzise genug? .. logische erklärungen sind nicht meine stärke
mfg smiley
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Do 10.03.05 13:36
_smiley_ hat folgendes geschrieben: | ... wenn ich die .dat datei öffne, bekomme ich eine fehlermeldung. |
Es geht um die Fehlermeldung. WELCHE bekommst du denn?
Notfalls packe deinen Source und mache das hier als Dateianhang.
|
|
_smiley_ 
Hält's aus hier
Beiträge: 7
|
Verfasst: Do 10.03.05 14:00
Fehlermeldung: 'Unbekannte Bilderweiterung (.)'
Ich glaub ich weiß schon: kanns sein, dass ich beim LoadFromFile(dateiname) als dateiname nicht den ganzen Pfad reinschreiben darf, sondern nur den dateinamen (z.B. foto.bmp)?
d.h. die fotos müssten alle auch im gleichen ordner wie das programm liegen?
hab noch keine zeit.. aber versuchs heute später noch.
mfg smiley
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Do 10.03.05 14:04
Mit der Fehlermeldung kann man was anfangen.
Den Namen, den du speicherst hat keine Datei-Erweiterung (z.B. BMP). Ist vielleicht der String im für den Dateinamen im record zu kurz? Oder speicherst du die Datei-Erweiterung gar nicht mit?
Nimm nochmal das ShowMessage (wie oben beschrieben) und schau dir das nochmal genau an.
|
|
_smiley_ 
Hält's aus hier
Beiträge: 7
|
Verfasst: Do 10.03.05 20:39
DANKE!
hab mir das zwar selbst gestern schon gedacht u den string vergrößert.. aber die alte datei geöffnet, wo die pfade noch nicht vollständig gespeichert waren.
also nochmal: recht herzlichen dank!
und wenn ich schon dabei bin: gibts eine schnelle möglichkeit ein string-grid + inhalt zu drucken?
mfg smiley 
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Do 10.03.05 20:51
Die Forensuche hätte dich mit STRINGGRID DRUCKEN
hierhin geführt.
Selbst das suchen muss man den Leuten schon abnehmen.
|
|
_smiley_ 
Hält's aus hier
Beiträge: 7
|
Verfasst: Do 10.03.05 21:30
hab sehr wohl gesucht u auch dieses ergebnis gefuden, dachte nur, dass es vielleicht einfacher geht.
aber danke für deine selbstlose hilfe.. zuuu gütig
mfg
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Fr 11.03.05 09:13
Gern geschehen
Es gibt aber auch andere StringGrid-Komponenten, die deine Anforderung erfüllen. Musst mal bei [url= www.torry.net]Torry[/url] suchen.
|
|
_smiley_ 
Hält's aus hier
Beiträge: 7
|
Verfasst: Fr 25.03.05 21:40
Hallo!
Ich hab jetzt noch eine Frage bezüglich fotos:
und zwar kann man in meiner Datenbank fotos von Mitarbeitern speichern.. und der dateiname (nicht der ganze pfad) wird in die datenbank als string gespeichert.
wird der datensatz aufgerufen, dann wird auch das bild mit dem dateinamen aufgerufen. nur sucht delphi immer die ursprüngliche datei, d.h. wenn das foto im ordner D:\schule\delphi liegt sucht er sie auch dort.
nur wenn ich den ganzen ordner auf den desktop kopiere soll er die datei nur in dem ordner suchen, wo auch das delphi programm u. die exe-datei liegt, und nicht im ursprünglichen ordner.
geht das überhaupt? ich hoffe schon!
wär toll wenn du mir helfen könntest.
mfg smiley
|
|
LCS
      
Beiträge: 1305
Erhaltene Danke: 1
WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
|
Verfasst: Sa 26.03.05 00:50
Hi
_smiley_ hat folgendes geschrieben: |
...
wird der datensatz aufgerufen, dann wird auch das bild mit dem dateinamen aufgerufen. nur sucht delphi immer die ursprüngliche datei, d.h. wenn das foto im ordner D:\schule\delphi liegt sucht er sie auch dort. |
 Nur wenns das gerade aktuelle Verzeichnis ist.
_smiley_ hat folgendes geschrieben: |
nur wenn ich den ganzen ordner auf den desktop kopiere soll er die datei nur in dem ordner suchen, wo auch das delphi programm u. die exe-datei liegt, und nicht im ursprünglichen ordner.
geht das überhaupt? ich hoffe schon!
|
Klar geht das. Einfach den Pfad des aktuellen Programmordners vor den Bildnamen hängen. Die Stichpunkte sind ExtractFilePath, Application.Exename oder ParamStr(0).
Gruss Lothar
_________________ Der BH ist für die Brust, der Plan ist für'n Ar...
|
|