Entwickler-Ecke
Multimedia / Grafik - Laden von JPG-Files
gasser - So 24.07.11 17:26
Titel: Laden von JPG-Files
Hallo
Ich habe ein altes Programm (D7) endlich auf XE hochgezogen. eider existiert der alte LoadJPGFromBinary nicht mehr. Gibt es einen Ersatz dafür?
gasser - So 24.07.11 17:58
Diesen Hinweis kenne ich grundsätzlich, da das erste Post von mir war. Es ist allerdings eine lange Zeit her. Ich habe damals ein *.JPG in eine Tabelle (ADS) kopiert und dann je nach Bedarf im Programm angezeigt. Wie gesagt, ich weiss jetzt nicht, wie ich das heute machen kann. Der damalige Code dafür:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| procedure THF_VFAMI.Bildausswechseln1Click(Sender: TObject); var PFAD: string; begin DM_PERS.T_SYS.Locate('KURZ', 'impuls', []); PFAD := DM_PERS.T_SYS.FieldByName('PFAD_BILDER').AsString; BILD_DIALOG.InitialDir := PFAD; if not DM_PERS.T_HYST.Active then exit; if BILD_DIALOG.Execute then begin BILD.Picture.LoadFromFile(BILD_DIALOG.Filename); DM_PERS.T_HYST.Edit; (DM_PERS.T_HYST.FieldbyName('BILD') as TBlobfield).LoadFromFile(BILD_DIALOG.Filename); DM_PERS.T_HYST.FieldByName('BILD_FILENAME').AsString := ExtractFileName(PFAD + BILD_DIALOG.FileName); end; DM_PERS.T_HYST.Post; DM_PERS.T_HYST.Refresh; end; |
Weil das Anzeigen der Bilder bei einem Recordwechsel zu lange dauerte (die App läuft auf einem Terminalserver) habe ich mit folgendem Code den Zeiger auf den entspechenden Record geschoben
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| procedure TDM_PERS.T_HYSTAfterScroll(DataSet: TDataSet); begin with HF_VFAMI do try if PC_DETAIL.ActivePage = TabSheet4 then begin if DBEdit19.Text = '' then begin DBEdit23.Enabled := False; DBEdit23.Color := clBtnFace; end else begin DBEdit23.Enabled := True; DBEdit23.Color := clYellow; end; end; except end; if T_HYST.FieldByName('ZIV_1').AsBoolean = True then begin HF_VFAMI.GB_HAUPTINFORMATION_PERSON.Enabled := False; HF_VFAMI.Panel13.Enabled := False; end else begin ZUGANG_ABS(DataSet); end; HF_VFAMI.BILD.Picture := nil; HF_VFAMI.LL.Picture := nil; HF_VFAMI.ZEUG.Picture := nil; If DM_PERS.T_MBU2.Active = False then DM_PERS.T_MBU2.Active := True; DM_PERS.T_MBU2.Refresh; end; |
und mit folgendem code die Anzeige ermöglicht
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure THF_VFAMI.BILDClick(Sender: TObject); begin BILDNR := 1; HF_VFAMI.LoadJPGFromBinary((DM_PERS.T_HYST.FieldbyName('BILD') as TBlobfield)); end; |
Die zweite Zeile bringt jetzt den Fehler.
Ich wäre sehr dankbar, wenn ich einen Typ erhalten könnte, wie ich das jetzt machen müsste, wobei das Bild nicht mehr zwingend in der DB gespeichert werden müsste.
Moderiert von
Martok: Quote- durch Delphi-Tags ersetzt
jaenicke - So 24.07.11 18:15
gasser hat folgendes geschrieben : |
Die zweite Zeile bringt jetzt den Fehler. |
Welchen Fehler denn, also welche Fehlermeldung?
Denn dass LoadJPGFromBinary fehlt, kann ja eigentlich nicht sein, da es laut diesem Quelltext innerhalb deines Formulars THF_VFAMI deklariert war.
Nebenbei, falls es dich interessiert wie dein Quelltext auf andere wirkt, mal ein Link zum Styleguide:
http://dn.embarcadero.com/article/10280#3.0
Denn bei Bezeichnern wie DM_PERS oder BILD_DIALOG schüttelts mich, solch einen Quelltext mag man gar nicht lesen...
gasser - Mo 25.07.11 07:44
Na ja, ich hätte dein Post wirklich zu ende lesen sollen, dann hätte ich die fehlende HF_VFAMI.LoadJPGFromBinary etc. pp ja wieder entdeckt. War schon ein schlaues Kerlchen, damals vor 8 Jahren. Zu den Styles: DAs ist IMHO absolute Ansichtssache und zudem wertend, was ich nicht mag. Ich kanns so sehr gut lesen. Danke aber trotzdem für den alten Link, das Problem ist damit gelöst.
BenBE - Mo 25.07.11 08:12
Ja, Style ist ansichtssache, aber bei den Bezeichnern wirkt der Code wie hingebrüllt. Zumal man Bezeichner nicht durch im Kontext unersichtliche Kürzel verkürzen sollte. Für jemanden, der die Kürzel nicht kennt, mag PERS noch halbwegs ersichtlich sein, aber spätestens bei DM_, T_, HYST, HF, VFAMI, LL, GB, ... steigt man dann aus. So manches
Dissambler-Listing mit Variablen-Namen var1 bis var539 [
http://blog.benny-baumann.de/?p=751] ist offensichtlicher ;-)
gasser - Mo 25.07.11 08:31
Benny, du magst recht haben, aber das war hier nicht die Frage, zudem bin ich kein IT-Profi und der Code stammt aus 2003 (ich war damals gerade knappe 58). Ich mache in der Zwischenzeit auch einiges anders, aber nach wie vor als Laie. Es gibt bei mit generell definierte Kürzel, wie z.B. T_ für Tabelle, DM_für Datenmodell, gv_ für globale Variable, etc., etc.
Um nochmals zum ursprünglichen Thema zurück zu kehren: Wie holst du (Benny) dir ein JPG in ein TPicture-Feld, das in einem definierten Verzeichnis auf einem Server liegt? Ich lerne sehr gerne dazu (Bitte dazu etwas Code).
Das war der Ursprung meiner Frage. Mein Weg, wie ich ihn 2003 gewählt hatte funktioniert, auch jetzt noch im aten Programm, sogar im neuen, seit eben.
PS. Habe eben deine Zeilen im Link gelesen. Grundsätzlich einverstanden.
jaenicke - Mo 25.07.11 09:57
gasser hat folgendes geschrieben : |
Um nochmals zum ursprünglichen Thema zurück zu kehren: Wie holst du (Benny) dir ein JPG in ein TPicture-Feld, das in einem definierten Verzeichnis auf einem Server liegt? |
Delphi-Quelltext
1: 2:
| YourPicture.LoadFromFile('\\bla\bla.jpg'); |
gasser - Mo 25.07.11 11:30
vielen Dank
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!