Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#20

AW: inkompatibel TArray<Integer> Pointer

  Alt 4. Aug 2018, 19:46
Zitat:
Das ArraySize kannst du dir dann auch sparen und mit Length(arrXY) ersetzen.
Nun ja das ArraySize muss ich behalten..
Aus folgenden Grund.

x und y haben jeweils 10 einträge..
Delphi-Quellcode:
var
  xy: array of TPoint;

  begin
    SetLength(xy, 20);

    xy[0].x := 190; xy[0].y := 185;
    xy[1].x := 250; xy[1].y := 180;
    xy[2].x := 270; xy[2].y := 130;
    xy[3].x := 290; xy[3].y := 180;
    xy[4].X := 350; xy[4].y := 185;
    xy[5].X := 302; xy[5].y := 215;
    xy[6].X := 320; xy[6].y := 270;
    xy[7].X := 270; xy[7].y := 240;
    xy[8].X := 220; xy[8].y := 270;
    xy[9].X := 238; xy[9].y := 210;

    gSprCtrl.GD_DrawPolyLineToCtrl(HSprCtrl, xy[0], 10,
      gSprCtrl.GD_ColorARGB(255,RGB(100, 250, 150)), 5, ID_POLYLINE,
      GS_VISIBLE or GS_DRAFT, GD_DRAW_OUTLINE, 0);
    
    gSprCtrl.GD_SetObjectImageLabel(ID_ELLIPSE, 'Polyline');
  end;
diese werden in der DLL auf diese weise ausgewertet.
Delphi-Quellcode:
    C := 0;
    for K := 0 to (ArraySize - 1) do
    begin
      x1 := min(x1, meta[C]);
      x2 := max(x2, meta[C]);
      inc(C);

      y1 := min(y1, meta[C]);
      y2 := max(y2, meta[C]);
      inc(C);
    end;
Somit muss die länge von ArraySize die hälfte sein.
Meta wird dann so zugewiesen.
meta := @pXY;

Ob das jetzt mit 64Bit kompatibel ist muss ich erst noch testen, glaube aber nicht!
Meine Frage ist also immer noch nicht beantwortet trotz der fixes Danke nochmal für die Infos.
D2010 funktioniert.

gruss

Geändert von EWeiss ( 4. Aug 2018 um 19:49 Uhr)
  Mit Zitat antworten Zitat