Thema: Delphi Image - Keine Reaktion

Einzelnen Beitrag anzeigen

Benutzerbild von Merlin1988
Merlin1988

Registriert seit: 10. Aug 2005
33 Beiträge
 
Delphi 6 Enterprise
 
#1

Image - Keine Reaktion

  Alt 10. Aug 2005, 22:50
Delphi-Quellcode:

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Image1: TImage;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations } 
  public
    { Public declarations } 
  end;

var
  Form1 : TForm1;
  x : Integer;
  Background : TBitmap;
  Front : TBitmap;

implementation

{$R *.dfm} 

procedure TForm1.FormCreate(Sender: TObject);
begin
  Background := TBitmap.Create;
  Background.Width := 200;
  Background.Height := 200;
  Background.Canvas.Brush.Color := clgreen;
  Background.Canvas.FillRect(Classes.Rect(0,0,200,200));
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  inc(x);
  Front := TBitmap.Create;
  Front.Width := 200;
  Front.Height := 200;
  Front.Assign(Background);
  Front.Canvas.TextOut(1,1,IntToStr(x));

  BitBlt(Image1.Canvas.Handle,0,0,200,200,Front.Canvas.Handle,0,0,SRCCOPY);

  {nur als Test, ob logisch irgendwas falsch ist} 
  BitBlt(Canvas.Handle,0,0,200,200,Front.Canvas.Handle,0,0,SRCCOPY);


  Front.Free;
end;

end.
Eigentlich sollte das Image einen grünen Hintergrund haben, auf dem einfach (das soll nur zum Test sein) eine Zahl, die sich stetig erhöht, angezeigt wird. Dummerweise ist immer nur das erste Bild zu sehen (= grüner Hintergrund mit Aufschrift '1').
Auf dem Canvas der Form läuft die Zahl mit dem selben Verfahren aber !!??? (=> siehe Kommentar im Quelltest)

(Das Hantieren mit zwei Bitmaps kommt daher, da das eine nur den Hintergrund erhält und das andere diesen lädt und den Vordergrund malt.)
Use the Source, Luke.
  Mit Zitat antworten Zitat