Autor Beitrag
gasser
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51

W7
Delphi XE
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 24.07.11 17:30 
Ich finde diesen Bezeichner nur in diesem Beitrag hier, und da ist der selbst erstellt. :gruebel:
entwickler-forum.de/...dex.php/t-14953.html

Wo gab es das denn in Delphi 7? (Also in welcher Unit?)
gasser Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51

W7
Delphi XE
BeitragVerfasst: 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:
ausblenden 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);
// Bild vom Server in Datenbank laden *************************************************************** 20.05.03
// Bildname anzeigen ******************************************************************************** 20.05.03
var
  PFAD: string;
begin
  // Bild vom Server laden und in DB ablegen +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  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;
  // Anzeige des JPEG-Filenamens unter dem Bild ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  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
ausblenden volle Höhe 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);
// Steuerung der STK Farbe und der Berechtigung der Hauptpanels ************************************* 21.05.03
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
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure THF_VFAMI.BILDClick(Sender: TObject);
begin
  // Bild in Anzeige Laden +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  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 user profile iconMartok: Quote- durch Delphi-Tags ersetzt

_________________
Freundliche Grüsse
Hanspeter
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 24.07.11 18:15 
user profile icongasser hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51

W7
Delphi XE
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51

W7
Delphi XE
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 25.07.11 09:57 
user profile icongasser hat folgendes geschrieben Zum zitierten Posting springen:
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?
ausblenden Delphi-Quelltext
1:
2:
// Bei einem Netzwerkserver:
YourPicture.LoadFromFile('\\bla\bla.jpg');
gasser Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51

W7
Delphi XE
BeitragVerfasst: Mo 25.07.11 11:30 
vielen Dank

_________________
Freundliche Grüsse
Hanspeter