Einzelnen Beitrag anzeigen

Whookie

Registriert seit: 3. Mai 2006
Ort: Graz
441 Beiträge
 
Delphi 10.3 Rio
 
#1

Eleganter Weg Shortstrings mit Unicode zu haben?

  Alt 8. Okt 2013, 20:39
Delphi-Version: 5
Nach einigen Versuchen Delphi 2007 Code nach XE4 zu migrieren hier einmal eine Stilfrage.

Vielfach habe ich Records die einen ShortString enthalten um entsprechend Speicher im Record zu reservieren:

Code:
Type
  MyRecord = Record
    Value: Integer;
    Name: String[32];
    ...
  End;
In DXE4 möchte ich eigentlich das selbe haben nur eben als Unicode-ShortString. Was also daraus wird ist:

Code:
Type
  MyRecord = Record
    Value: Integer;
    Name: Array[0..32] of Char;
    ...
  End;
...nur elegant ist das leider nicht mehr den folgender Code compiliert nicht mehr:

Code:
  Var
    s: String;
    m: MyRecord
  Begin
    s := 'Test';
    m.Name := s; <--- E2010 Inkompatible Typen: 'array[0..32] of Char' und 'string'
Möglich wäre natürlich:

Code:
  StrCopy(AData.szModel, PChar(fData.LastDevice.Model));
  StrLCopy(AData.szModel, PChar(fData.LastDevice.Model), 32);
aber elegant ist das nicht, denn das bedeutet riesige Mengen Sourcecode zu ändern und aus einer schönen Zuweisung einen äußerst hässlichen Funktionsaufruf zu machen....

Bleibt die Frage ob es dafür eine elegant Lösung gibt die ohne Änderung am restlichen Code funktioniert (und "Name: String;" kann es nicht sein...)?
Whookie

Software isn't released ... it is allowed to escape!
  Mit Zitat antworten Zitat