Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TImage "scrollen" (https://www.delphipraxis.net/43116-timage-scrollen.html)

Alexander 29. Mär 2005 15:15

Re: TImage "scrollen"
 
Stimmt @teebee :)

@mr47: Mit der Hintergrundfarbe überzeichnen?

Khabarakh 29. Mär 2005 15:52

Re: TImage "scrollen"
 
Den Code von Luckie kannst du eigentlich gleich so übernehmen, getestet habe ich ihn aber auch noch nicht.
Delphi-Quellcode:
type
  TValueArray = array of Cardinal;

var
  ValueArray: TValueArray;

implementation

{$R *.dfm}


procedure PaintGraph(Bmp: TBitmap; Color: TColor; ValueArray: TValueArray);
var
  rect: TRect;
  i: Integer;
  len: Integer;
begin
  Bmp.Canvas.Brush.Color := clWhite;
  rect.Top := 0;
  rect.Left := 0;
  rect.Right := Bmp.Width;
  rect.Bottom := Bmp.Height;
  Bmp.Canvas.FillRect(rect);
  len := length(ValueArray);
  Bmp.Canvas.Pen.Color := Color;
  for i := 0 to Bmp.Width - 1 do
  begin
    Bmp.Canvas.MoveTo(i, Bmp.Height);
    Bmp.Canvas.LineTo(i, Bmp.Height-ValueArray[len-i-1]);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  OffScreenBmp := TBitmap.Create;
  OffScreenBmp.Width := ClientWidth;
  OffScreenBmp.Height := ClientHeight;
  SetLength(ValueArray, ClientWidth);
  Index := length(ValueArray) - 1;
  Randomize;
  Timer1.Interval := 50;
  DoubleBuffered := True;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  FreeAndNil(OffScreenBmp);
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
  BitBlt(Canvas.Handle, 0, 0, ClientWidth, ClientHeight, OffScreenBmp.Canvas.Handle, 0, 0, SRCCOPY);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  i: Integer;
begin
  ValueArray[Index] := random(ClientHeight); //GetCPUUsage * 10;
  Dec(Index);
  if Index = 0 then
  begin
    for i := 0 to length(ValueArray) - 1 do
      ValueArray[i] := 0;
    PaintGraph(OffScreenBmp, clRed, ValueArray);
    Repaint;
    Index := length(ValueArray)-1;
  end;
  PaintGraph(OffScreenBmp, clRed, ValueArray);
  Repaint;
end;
Zitat:

Und mal moch ne ganz dumme Frage: Wie kann ich das Image wieder löschen?
Bitmap32.Clear(clWhite32); :mrgreen:

Alexander 29. Mär 2005 16:21

Re: TImage "scrollen"
 
TBitmap32 <> TBitmap oder sogar Canvas!

Khabarakh 29. Mär 2005 16:23

Re: TImage "scrollen"
 
Ich wollte ja nur darauf hinweisen, wie sehr die GR32-Lib die Arbeit erleichtert, deswegen auch der Link und die Namensgebung :wink: .

Alexander 29. Mär 2005 16:46

Re: TImage "scrollen"
 
Die Lib ist wirklich klasse, aber einen Clear-Ersatz gibt es beim normalen Canvas auch. Du musst einfach alles übermalen, das ist ja auch nicht all zu umständlich..

mr47 29. Mär 2005 16:56

Re: TImage "scrollen"
 
Ok. Danke euch. :wink:

Khabarakh 29. Mär 2005 16:59

Re: TImage "scrollen"
 
Zitat:

Zitat von Alexander
Die Lib ist wirklich klasse, aber einen Clear-Ersatz gibt es beim normalen Canvas auch. Du musst einfach alles übermalen, das ist ja auch nicht all zu umständlich..

Eigentlich nicht, aber das ist wie beim TabbedBrowsing, es geht einfach alles leichter und schneller :o) .
Delphi-Quellcode:
Bitmap.Canvas.Pen.Color := clWhite;
Bitmap.Canvas.Brush.Color := clWhite;
Bitmap.Canvas.Rectangle(Rect(0, 0, Bitmap.Width, Bitmap.Height));

Bitmap32.Clear(clWhite32);


Bitmap.Canvas.Pen.Color := clRed;
Bitmap.Canvas.Brush.Style := bsClear;
Bitmap.Canvas.Rectangle(MyRect);

Bitmap32.FrameRectS(MyRect, clRed32);
Etwas übertrieben :zwinker: .

[edit]Hups, langsam wirds etwas OT.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:11 Uhr.
Seite 2 von 2     12   

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