Einzelnen Beitrag anzeigen

HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#2

AW: Array of String mit Pointer

  Alt 1. Dez 2020, 07:37
Hmm..

könnte es sein, das ein 'string[23]' anders behandelt wird wie ein 'string' und dann nicht mehr kompatible zu PString ist?

Ist ein 'string[23]' nicht eine Art Shortstring und dann intern ein Konstantenarray of Char und kein dynamischer 'string' mehr?

Ich hab einfach mal die [23] weggelassen und es kommt keine Exception mehr

Delphi-Quellcode:
         sD1 : string = ' 1-Nacken ';
         sD2 : string = ' 2-Triceps ';
         sD3 : string = ' 4-Rücken oben ';
         sD4 : string = ' 9-Rücken unten ';
         sD5 : string = '13-O.Schenkel h ';
         sD6 : string = '15-Wade ';
         sD7 : string = ' 6-Brust seitl. ';
         sD8 : string = '10-Hüfte ';
         sD9 : string = '12-O.Schenkel s ';
         sD10: string = ' 5-Brust vorne ';
         sD11: string = ' 3-Biceps ';
         sD12: string = ' 7-Bauch oben ';
         sD13: string = ' 8-Bauch unten ';
         sD14: string = '11-O.Schenkel v ';
         sD15: string = '14-O.Schenkel i ';
         sD16: string = '-----------------------';

      lTxt : array[1..15] of PString = (@sD1 ,
                                          @sD2 ,
                                          @sD3 ,
                                          @sD4 ,
                                          @sD5 ,
                                          @sD6 ,
                                          @sD7 ,
                                          @sD8 ,
                                          @sD9 ,
                                          @sD10,
                                          @sD11,
                                          @sD12,
                                          @sD13,
                                          @sD14,
                                          @sD15 );

Alternativ, wenn Du die Länge behalten möchtest, dann einen eigenen Typ definieren:

Delphi-Quellcode:
type
  TMyString = string[23];
  PMyString = ^TMyString;
var
     sD1 : TMyString = ' 1-Nacken ';
     sD2 : TMyString = ' 2-Triceps ';
     sD3 : TMyString = ' 4-Rücken oben ';
     sD4 : TMyString = ' 9-Rücken unten ';
     sD5 : TMyString = '13-O.Schenkel h ';
     sD6 : TMyString = '15-Wade ';
     sD7 : TMyString = ' 6-Brust seitl. ';
     sD8 : TMyString = '10-Hüfte ';
     sD9 : TMyString = '12-O.Schenkel s ';
     sD10: TMyString = ' 5-Brust vorne ';
     sD11: TMyString = ' 3-Biceps ';
     sD12: TMyString = ' 7-Bauch oben ';
     sD13: TMyString = ' 8-Bauch unten ';
     sD14: TMyString = '11-O.Schenkel v ';
     sD15: TMyString = '14-O.Schenkel i ';
     sD16: TMyString = '-----------------------';

      lTxt : array[1..15] of PMyString = (@sD1 ,
                                          @sD2 ,
                                          @sD3 ,
                                          @sD4 ,
                                          @sD5 ,
                                          @sD6 ,
                                          @sD7 ,
                                          @sD8 ,
                                          @sD9 ,
                                          @sD10,
                                          @sD11,
                                          @sD12,
                                          @sD13,
                                          @sD14,
                                          @sD15 );
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat