AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

PPoint zu short

Ein Thema von EWeiss · begonnen am 2. Mär 2018 · letzter Beitrag vom 5. Mär 2018
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

AW: PPoint zu short

  Alt 2. Mär 2018, 22:00
Danke dir.
Ich glaube die einfachste Lösung wäre ohne viel zu verändern meta als Integer zu definieren.
meta: TArray<Integer>
Dann stehen alle Daten im Array hintereinander so wie sie es sollen.

Habe mal zwei pics angehängt da kannst du sehen was ich meine.
Sieht dann so aus der Stern!

gruss

Geändert von EWeiss (11. Jul 2019 um 15:49 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: PPoint zu short

  Alt 3. Mär 2018, 13:30
Muss noch mal nach haken.

MoveMemory(PByte(@buffer[0]) + K * sizeof(Short), @A2[K], sizeof(Short));

wegen der Änderung short zu PByte verändert sich nun das Array

buffer ist Array of short.

Das Array sollte dann als bsp. so aussehen 1,0,2,0,3,0 usw..
Das wird aber nun durch die Konvertierung zu PByte verändert.

Sieht dann so aus.
1,2,3 es fehlt also jeweils die 0 zwischen den einzelnen werten.

Wie kann ich das am besten korrigieren?
Ich muss Short erhalten.
Siehe Short.png im vorherigen Beitrag.

gruss
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#3

AW: PPoint zu short

  Alt 3. Mär 2018, 13:58
Was soll das machen?
A2[k] := buffer[k]?

PByte konvertiert nichts, sondern ist nur nen Poiner auf ein Byte.


wenn du aus zwei Bytes (z.B: 0300h) ein Short machst und dir dann siehst du die 0 nicht mehr, weil 0300h eben die Zahl 3 als Short ist.

Geändert von brechi ( 3. Mär 2018 um 14:00 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: PPoint zu short

  Alt 3. Mär 2018, 14:10
Was soll das machen?
A2[k] := buffer[k]?

PByte konvertiert nichts, sondern ist nur nen Poiner auf ein Byte.


wenn du aus zwei Bytes (z.B: 0300h) ein Short machst und dir dann siehst du die 0 nicht mehr, weil 0300h eben die Zahl 3 als Short ist.
Sorry werde aus deinen schreiben nicht schlau etwas konfus..
A2[k] := buffer[k]? steht nirgends.

Habe es jetzt mal so gemacht nicht schön aber das Array wird dann gefüllt so wie ich es erwarte.

Delphi-Quellcode:
    for K := 0 to (Count * 2) do
    begin
      //MoveMemory(PByte(@buffer[0]) + K * sizeof(Short), @A2[K], sizeof(Short));
      if K mod 2 <> 0 then
      begin
        buffer[K] := 0;
        continue;
      end else
      buffer[K] := A2[K div 2];
    end;
gruss
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#5

AW: PPoint zu short

  Alt 3. Mär 2018, 14:14
Das hattest du mit dem CopyMemory programmiert

Delphi-Quellcode:
  for K := 0 to Count-1 do begin
    buffer[K*2+0] := A2[k];
    buffer[K*2+1] := 0;
  end;
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: PPoint zu short

  Alt 3. Mär 2018, 14:31
Das hattest du mit dem CopyMemory programmiert

Delphi-Quellcode:
  for K := 0 to Count-1 do begin
    buffer[K*2+0] := A2[k];
    buffer[K*2+1] := 0;
  end;
Jo so geht's auch gleiche Ergebnis.

Zitat:
wenn du aus zwei Bytes (z.B: 0300h) ein Short machst und dir dann siehst du die 0 nicht mehr, weil 0300h eben die Zahl 3 als Short ist.
Dann frage ich mich warum bei Short der jeweils 2 Nenner im Array dann 0 ist.
Siehe mein PNG!

gruss
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#7

AW: PPoint zu short

  Alt 3. Mär 2018, 14:46
Ne in der 2. Zeile ist nicht jedes zweite Zeichen eine 0.

Du solltest direkt sagen welche Komponente du verwendest.

Durch googlen habe ich das gefunden, dass es sich um GDImage handelt.

--> Integer (Powebasic) = Short (Delphi)

sollte vom Datentyp also passen. Ob du aber jedes zweite Zeichen auf 0 setzen muss glaub ich nicht (das ist die Y-Koordinate)

Delphi-Quellcode:
TShortPoint = packed record
  x: Short;
  y: Short;
end;

TShortPointArr = array of TShortPoint;

// und dann
var
  myarr: TShortPointArr;
begin
  SetLengtH(myarr, ...);
//....
 @myarr[0];

Geändert von brechi ( 3. Mär 2018 um 14:50 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz