![]() |
AW: MouseDown, ..Up, ..Move einer Klasse hinzufügen?
Moin !
Irgendwas fehlt da noch, denn gezeichnet wird noch nix. Meine Klasse:
Delphi-Quellcode:
Und so erzeuge ich eine Instanz (Items : array of TRecty):
{$M+}
unit Recty; interface uses Classes, Graphics, Controls; type TRecty = Class(TGraphicControl) private FX, FY, // X, Y Position (Left Top) FW, FH : Integer; // Width, Height FScale : Double; // Scaling ... protected procedure Paint; override; published // constructor Create(); property X : Integer read FX write FX; property Y : Integer read FY write FY; property W : Integer read FW write FW; property H : Integer read FH write FH; property Scale : Double read FScale write FScale; // Property OnMouseMove; end; implementation procedure TRecty.Paint; begin inherited; Scale := 1; Canvas.Rectangle(Trunc(X ), Trunc(Y ), Trunc((X+W) * Scale), Trunc((Y+H) * Scale)); end; end.
Delphi-Quellcode:
Bei dem Paint komme ich allerdings nie an. :gruebel:
Items[ID] := TRecty.Create(Form1);
Items[ID].Scale := 1; Items[ID].X := 10; Items[ID].Y := 10; Items[ID].W := 30; Items[ID].H := 30; // Items[ID].OnMouseMove := nil; Items[ID].Repaint; Canvas.Refresh; |
AW: MouseDown, ..Up, ..Move einer Klasse hinzufügen?
Du hast keinen Parent angegeben und auch die Größe und Position (Left, Top, Width, Height) nicht gesetzt.
Zu dem kannst du x,y,w,h weg lassen da visuelle Komponenten bereits die Properties für Größe und Position besitzen:
Delphi-Quellcode:
Und im überschriebenen Paint brauchst du natürlich dann nicht x,y,w und h zu verwenden sondern einfach nur breite und höhe.
yourComponent := TYourComponent.Create(Nil_Or_wanted_Owner);
yourComponent.Parent := your_wanted_parent; yourComponent.setbounds(0, 0, 250, 250); |
AW: MouseDown, ..Up, ..Move einer Klasse hinzufügen?
Moin !
Delphi-Quellcode:
Ich dachte das würde mit dem Create direkt übergeben mittels Owner, aber ok. Falsch gedacht.
Items[ID].Parent := Form1;
Delphi-Quellcode:
Ok, da wäre ich nie drauf gekommen.
Items[ID].setbounds(0, 0, 250, 250);
Damit setzte ich den Bereich in dem gezeichnet werden kann, richtig? |
AW: MouseDown, ..Up, ..Move einer Klasse hinzufügen?
Zitat:
|
AW: MouseDown, ..Up, ..Move einer Klasse hinzufügen?
folgender Code
Delphi-Quellcode:
macht nichts anderes als
Items[ID].setbounds(0, 0, 250, 250);
Delphi-Quellcode:
Der Unterschied ist das es mit einem Funktionsaufruf erledigt ist. Wenn man Left, Top, Width und Height einzeln zuweist wird intern 4 mal setbounds aufgerufen.
Items[ID].Left := 0;
Items[ID].Top := 0; Items[ID].Width := 250; Items[ID].Height := 250; |
AW: MouseDown, ..Up, ..Move einer Klasse hinzufügen?
So steht es ja auch in der Hilfe.
Zitat:
|
AW: MouseDown, ..Up, ..Move einer Klasse hinzufügen?
Ich glaub du bist der einzige in dem Thema hier der die Hilfe gelesen hat :thumb:
|
AW: MouseDown, ..Up, ..Move einer Klasse hinzufügen?
Nunja, die gibt es ja schließlich nicht zum Spaß :zwinker:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:46 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