Autor |
Beitrag |
gasser
      
Beiträge: 51
W7
Delphi XE
|
Verfasst: So 24.07.11 17:26
Hallo
Ich habe ein altes Programm (D7) endlich auf XE hochgezogen. eider existiert der alte LoadJPGFromBinary nicht mehr. Gibt es einen Ersatz dafür?
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 24.07.11 17:30
Ich finde diesen Bezeichner nur in diesem Beitrag hier, und da ist der selbst erstellt.
entwickler-forum.de/...dex.php/t-14953.html
Wo gab es das denn in Delphi 7? (Also in welcher Unit?)
|
|
gasser 
      
Beiträge: 51
W7
Delphi XE
|
Verfasst: 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
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
_________________ Freundliche Grüsse
Hanspeter
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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:
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...
Für diesen Beitrag haben gedankt: BenBE
|
|
gasser 
      
Beiträge: 51
W7
Delphi XE
|
Verfasst: 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.
_________________ Freundliche Grüsse
Hanspeter
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: 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 ist offensichtlicher 
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
gasser 
      
Beiträge: 51
W7
Delphi XE
|
Verfasst: 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.
_________________ Freundliche Grüsse
Hanspeter
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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 
      
Beiträge: 51
W7
Delphi XE
|
Verfasst: Mo 25.07.11 11:30
vielen Dank
_________________ Freundliche Grüsse
Hanspeter
|
|
|