Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#1

Pointer verschieben

  Alt 19. Jun 2019, 20:17
Meine Ausgangsposition..

Delphi-Quellcode:
function TBassPlayer.BassChannelGetWavData: PSmallInt;
var
  fft: array [0 .. 511] of single;
begin

  FillChar(fft[0], sizeof(single) * 256, 0);
  if (gnAudioChannel <> 0) then
    BASS_ChannelGetData(gnAudioChannel, @fft[0], 1024);

  result := @fft[0];
end;
Delphi-Quellcode:
var
  pInt: PSmallInt;
begin

  pInt := BassPlayer.BassChannelWaveData;

  for x := 0 to (Width - 1) do
  begin
    if (x mod 8) <> 0 then
      continue;
    
  end;
  inc(pInt, 9);
end;
Ich hole die WaveDaten über BassChannelWaveData
Danach zeichne ich das Bitmap auf dem Screen

Anschließend möchte ich den Pointer um den Faktor 9 verschieben.
Mein Problem! Es wird aber jeweils immer nur der erste Ausschlag visualisiert das verschieben des Pointer funktioniert irgendwie nicht richtig.
Was mach ich falsch?
Es müsste sich eigentlich die Y Position des nächsten Balken verändern abhängig vom verschobenen Pointer und den Inhalt der Wave Daten an dieser Position.

Wie man sehen kann werden alle Bars korrekt gezeichnet Blau unten aber nur die erste wird visualisiert.
PS:
Auch wenn ich den Pointer entferne also den wert von SmallInt verschiebe ändert es nichts.
inc(pInt^, 9);

gruss

Geändert von EWeiss ( 9. Jul 2019 um 09:31 Uhr)
  Mit Zitat antworten Zitat