AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Paintbox zur Laufzeit erstellen: OnPaint Ereignis
Thema durchsuchen
Ansicht
Themen-Optionen

Paintbox zur Laufzeit erstellen: OnPaint Ereignis

Ein Thema von Antigo · begonnen am 4. Apr 2009 · letzter Beitrag vom 4. Apr 2009
Antwort Antwort
Antigo

Registriert seit: 14. Mär 2005
274 Beiträge
 
#1

Paintbox zur Laufzeit erstellen: OnPaint Ereignis

  Alt 4. Apr 2009, 19:19
Hi,

ich habe eine Klasse von TPaintbox abgeleitet und möchte diese nun auf meiner Form nutzen.
Dazu erstelle ich eine Instanz dieser Klasse (TUhr) und weise ihr als Owner und Parent mein Form1 zu. Beim Erstellen wird das "Bild" auch auf die Paintbox gezeichnet. Nur wenn ich dann ein anderes Fenster über die Paintbox schiebe wird sie nachher nicht neu gezeichnet. Muss ich etwa beim OnPaint Ereignis der Form extra das OnPaint Ereignis der Paint box aufrufen? Hab die Paintbox bisher nur als Komponente zu Designzeit benutzt und da wird automatisch das OnPaint Ereignis aufgerufen, wenn der Teil der Form in dem die Paintbox liegt neugezeichnet werden muss.

Delphi-Quellcode:
//Unit Uhr
interface
uses ExtCtrls,Classes;

type
  TUhr = class(TPaintbox)

    procedure paint(Sender:TObject);
    constructor create(AOwner: TComponent); override;
  end;


implementation

constructor TUhr.create;
begin
  inherited create(AOwner);
  OnPaint:=paint;
  left:=0;
  top:=0;
  width:=100;
  height:=100;
end;

procedure TUhr.paint;
begin
  Canvas.LineTo(width,height);
end;

//Unit 1
    myUhr:TUhr;
  public
    { Public-Deklarationen }
  end;


var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  myUhr:=TUhr.create(self);
  myUhr.Parent:=Self;
end;
Michael
"How should I know if it works? That's what beta testers are for. I only coded it."
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: Paintbox zur Laufzeit erstellen: OnPaint Ereignis

  Alt 4. Apr 2009, 19:46
Probier mal das:
Delphi-Quellcode:
procedure TUhr.paint;
begin
  Canvas.MoveTo(0, 0);
  Canvas.LineTo(width,height);
end;
Um die Linie mehr als einmal zu zeichnen
  Mit Zitat antworten Zitat
Antigo

Registriert seit: 14. Mär 2005
274 Beiträge
 
#3

Re: Paintbox zur Laufzeit erstellen: OnPaint Ereignis

  Alt 4. Apr 2009, 20:01


danke
Michael
"How should I know if it works? That's what beta testers are for. I only coded it."
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:57 Uhr.
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