Forum: Multimedia
by Benmik,
18. Aug 2020
Ich glaube, das geht. Probiere es doch einfach aus. Ich meiner allerdings, dass es wenig Zweck hat, beide parallel zu benutzen, die sind sich ziemlich ähnlich. Vermutlich meinst du aber für eine Umstellungsphase. Exportiere mit regedit den entsprechenden Zweig von Embarcadero, für alle Fälle.
Forum: Multimedia
by Benmik,
17. Aug 2020
Wie meinst du das? Du gehst einfach hierhin, gibst die Daten ein (hoffentlich die richtigen, ähem), dann bekommst du einen Downloadlink und den Lizenzschlüssel per E-Mail. War das deine Frage?
Forum: Multimedia
by Benmik,
17. Aug 2020
Ich kann nur an dich appellieren, mit Rio 10.3.3 weiterzumachen. Das Allermeiste, was jetzt veröffentlicht wird, setzt auf Sprachfeatures, die mindestens Delphi 2009 voraussetzen. Du musst dir die Arbeit sowieso machen, und so schlimm ist das auch gar nicht.
Das erwähnte dEXIF läuft ohne Probleme unter Rio und nimmt dir fast alle Arbeit ab. Probiere dies:procedure TesteDEXIF;
var ImgData:...
Forum: Multimedia
by Benmik,
16. Aug 2020
Der RationalBuff kann nur 8 Byte aufnehmen, bei GPS sind es aber 24. Mit ihm kommst du also nicht an bestimmte GPS-Daten ran (GPSLongitude, GPSLatitude).
Move an sich ist völlig OK; man kann es auch über eine Pointer-Variable machen, aber dann hat man nicht die Flexibilität von TBytes. Ich meine, es ist immer noch am besten, Length zu messen, TBytes entsprechend zu dimensionieren und danach zu...
Forum: Multimedia
by Benmik,
16. Aug 2020
Es geht hier um den Datentyp 5. Eigentlich soll er 8 Bytes lang sein mit 4 Bytes Zähler und 4 Bytes Nenner. Laut Spezifikation ist er "unsigned", müsste also 2 x Cardinal sein, denn es gibt ihn auch noch mit Vorzeichen als Typ 10.
Es ist aber keineswegs so, dass der Typ 5 immer nur 2 x 4 = 8 Bytes hat, zum Beispiel nicht bei den GPS-Werten. Bei GPSLongitude und GPSLatitude hat er 3 x 8 = 24...
Forum: Multimedia
by Benmik,
12. Aug 2020
Das Format ist "yyyy:mm:dd hh:mm:ss". Ein "m9" kann darin nicht vorkommen. Nicht diese Routine, sondern das Auslesen des Strings ist falsch. Hast du dir den String denn mal angesehen?
EDIT: Nur für den Fall der Fälle: if (Length(S) = 19 würde eventuell nach hinten losgehen, da die Puffergröße und damit die Länge des Strings immer 20 Zeichen beträgt, da der String nullterminiert ist.
Forum: Multimedia
by Benmik,
12. Aug 2020
Und warum dem Fehler in einer nicht funktionierenden Prozedur nachjagen, wenn es eine funktionierende gibt?
Forum: Multimedia
by Benmik,
12. Aug 2020
uses ... , System.SysUtils, System.IOUtils,System.Types,System.StrUtils, GDIPAPI, GDIPOBJ,GDIPUTIL;
...
procedure DatumMitGDIPlus;
Var i:integer;
DatListe:TStringDynArray;
GPImage: TGPImage;
PPropItem: PPropertyItem;
BufferSize: Cardinal;