Einzelnen Beitrag anzeigen

Willie1

Registriert seit: 28. Mai 2008
656 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

GDI+ Delphi Berlin oder höher

  Alt 12. Aug 2020, 17:41
Hallo Leute,
ich hatte ein altes Programm von mir noch etwas verbessert. War hier lange Thema. Das läuft jetzt alles gut aber noch mit Delphi 2005 auf einem alten Notebook compiliert. (Kann ich sehr schlecht sehen)
Deshalb will ich es auf das neue Delphi portieren (PC mit großem Display) und da prasseln die Fehlermeldungen. Einige habe ich lösen können, das hier nicht. PropertyTagDateTime liefert laut Microsoft-Doku Rückgabe: PropertTagTypeASCII, Count 20. Aber wie das gespeichert ist, wird nicht verraten. Damals habe ich Folgendes gefunden:
Delphi-Quellcode:
  function TGDIExifRead.ExifDateToDateTime(s: string):TDateTime;
    type
      TConvert = packed record // Idee von Gerry McGuire
         year: array [1..4] of char; f1:char;
         mon: array [1..2] of Char; f2:char;
         day: array [1..2] of Char; f3:char;
         hr: array [1..2] of Char; f4:char;
         min: array [1..2] of Char; f5:char;
         sec: array [1..2] of Char;
      end;
      PConvert = ^TConvert;
    begin
    s:=Trim(s);
    if s = 'then
      Result:=-1 //kein Datum vorhanden!
    else
      try
        with PConvert( @s[1] )^ do
          Result:=EncodeDate( StrToInt( year ),
                              StrToInt( mon ),
                              StrToInt( day ))
                + EncodeTime( StrToInt( hr ),
                              StrToInt( min ),
                              StrToInt( sec ), 0);
      except
        Result:=0; //ungültiges Datum
      end;
  end;
Hat 12 Jahre funktioniert jetzt bei Delphi Berlin crashed es bei with PConvert()^ Ich benutze GDPAPI, GDPOBJECT und GDPUTIL.

Willie.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.

Geändert von Willie1 (12. Aug 2020 um 17:45 Uhr)
  Mit Zitat antworten Zitat