Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Scanline+TrackBarChange geht nicht (https://www.delphipraxis.net/78640-scanline-trackbarchange-geht-nicht.html)

Cöster 8. Okt 2006 17:00


Scanline+TrackBarChange geht nicht
 
Hi!

Ich hab ein Image (256*256Pxs) und einen TrackBar (Min: 0; Max: 255).

Über den TrackBar soll der Rot-Anteil des Images geregelt werden. Folgender Code bewirkt allerdings nichts.
Habt ihr ne Ahnung, woran das liegen kann?

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    TrackBar1: TTrackBar;
    procedure TrackBar1Change(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure MakeRed(Bmp: TBitmap; const r: Byte);
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

procedure TForm1.MakeRed(Bmp: TBitmap; const r: Byte);
type
  TPixArray = array[1..3] of Byte;
var
  p: ^TPixArray;
  h, w: Byte;
begin
  for h := 0 to Bmp.Height - 1 do
  begin
    p := Bmp.ScanLine[h];
    for w := 0 to Bmp.Width - 1 do
    begin
      p^[3] := r;
      Inc(p);
    end;
  end;
end;

{$R *.DFM}

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  MakeRed(Image1.Picture.Bitmap, TrackBar1.Position);
end;

end.

Phantom1 8. Okt 2006 17:11

Re: Scanline+TrackBarChange geht nicht
 
probiere mal folgendes:
Delphi-Quellcode:
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  Image1.Picture.Bitmap.PixelFormat:=pf24bit;
  MakeRed(Image1.Picture.Bitmap, TrackBar1.Position);
  Image1.Refresh;
end;

Cöster 8. Okt 2006 17:28

Re: Scanline+TrackBarChange geht nicht
 
:hello:

Das Pixelformat auf 24 Bit zu stellen, vergess ich auch immer wieder :wall: , obwohl darin diesmal ausnahmsweise nicht der Fehler lag.

Refresh war's

DANKE


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz