Einzelnen Beitrag anzeigen

Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Scanline zeichnet nur einmal

  Alt 21. Mai 2007, 10:04
Ah danke... Ich wusste nicht, dass er nicht neuzeichnet Aber ein einfaches ".Repaint" bewirkt schon wunder
Zitat von Sunlight7:
Moin!

Ich frag mich grad, wie das beim 1. mal zeichnen gehen soll?
Du zeichnest ja nur die Pixel in der 1. Spalte.

inc(pix); Bei einem Pointer net grad zu empfehlen

Delphi-Quellcode:
// Bitmap einfärben
  // Scanline-Methode
  var Line:PByteArray;
  ...
  for y := 0 to AHeight - 1 do
  begin
    Line := iMap.Picture.Bitmap.ScanLine[y];
    for x := 0 to AWidth - 1 do
    begin
      if map[x][y] <= 0 then // Wasser
      begin
        pix:=@Line[x * 3];

        i := Trunc(map[x][y] / Mi * 100);
        pix^.rgbtBlue := 255 - i * 2;
        pix^.rgbtGreen := 51;
        pix^.rgbtRed := 51;
      end else // Land
      begin
        pix:=@Line[x * 3];

        i := Trunc(map[x][y] * 160 / Ma);
        pix^.rgbtBlue := 32 + (i div 4);
        pix^.rgbtGreen := 240 - i;
        pix^.rgbtRed := 32 + (i div 4);
      end;
    end;
  end;
Korrigiert und nicht getestet
>> "Scanline verwenden"
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat