Thema: Delphi bmp in Panel zeichnen

Einzelnen Beitrag anzeigen

Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#10

Re: bmp in Panel zeichnen

  Alt 3. Mai 2009, 20:03
Oder So:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TPanel = class(ExtCtrls.TPanel) // Wichtig, als erstes for TForm1
  private
    { Private-Deklarationen }
    FOnPaint: TNotifyEvent;
  protected
    { Protected-Deklarationen }
    procedure Paint; override;
  public
    { Public-Deklarationen }
    property Canvas;
  published
    { Published-Deklarationen }
    property OnPaint: TNotifyEvent read FOnPaint write FOnPaint;
  end;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure OnPanel1Paint(Sender: TOBject);
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TPanel.Paint;
begin
  inherited;
  if assigned(fOnPaint) then fOnPaint(Self);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Panel1.OnPaint := OnPanel1Paint;
end;

procedure TForm1.OnPanel1Paint(Sender: TOBject);
var r: Trect;
begin
  r := Panel1.ClientRect;
  InflateRect(r, -2, -2);

  With Panel1 do
  begin
    Canvas.Brush.Color := clWindow;
    Canvas.RoundRect(r.Left, r.Top, r.Right, r.Bottom, 20, 20);
    Canvas.Brush.Color := Panel1.Color;
    Canvas.Draw(5, 5, Application.Icon);
  end;
end;

end.
- eine neues Project erstellen
- Ein Panel auf eine Form klatschen
- zwei mal auf die Form klicken und sich im FormCreate wiederfinden
- Copy & Paste mit diesem Quelltext den alten Quelltext ersetzen
- fertisch.



//Edit:

@Detlef, das gibt ne Beule !

Code:
procedure [color=#ff001f]TPanel.Paint;[/color] [color=#ff001f] <--<<<[/color]
var bmp: TBitmap;
begin
  ...
    bmp.[color=#ff001f]LoadFromFile[/color]('C:\Program Files\Common Files\CodeGear Shared\Images\BackGrnd\Calendar.bmp'); [color=#ff001f]<--<<<[/color]
  ...
end;
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat