Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Neuen Beitrag zur Code-Library hinzufügen (https://www.delphipraxis.net/33-neuen-beitrag-zur-code-library-hinzufuegen/)
-   -   Erzeugtes object Ereignisse und Eigenschaften (https://www.delphipraxis.net/209450-erzeugtes-object-ereignisse-und-eigenschaften.html)

Nine9 8. Dez 2021 09:29

Erzeugtes object Ereignisse und Eigenschaften
 
Guten Tag Community ich bin recht neu in der Welt von Delphi und habe ein kleines Problem.

Ich möchte durch ein erzeugtes Objekt mit gezeichneten Rechtecken eine Property hinzufügen wie z.b den Namen, eine Caption & ein Ereignis wie MouseDown und Mousemove
Leider finde ich so schnell keine Hilfe daher hoffe ich hier auf jemand zu treffen der sich dort etwas mehr auskennt und mir helfen kann.

hier mein Code :

unit Unit4;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls;

type
TForm4 = class(TForm)
Edit1 : TEdit ;
Edit2 : TEdit ;
Edit3 : TEdit ;
Button1: TButton ;
Image1 : TImage ;
Label1: TLabel;
procedure Button1Click(Sender: TObject);



private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

TAuftrag = class(Tobject)



private
FName : string;
Top, Height : integer;
Fcaption : string;


public
Left , Width : integer;
procedure MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);



end;

var
Form4 : TForm4;
Auftrag : Tauftrag;

implementation

{$R *.dfm}

procedure TForm4.Button1Click(Sender: TObject);
begin

Auftrag := Tauftrag.create;
Auftrag.Left := strtoint(edit1.Text);
Auftrag.Width := strtoint(edit2.Text);
Auftrag.Top := 20;
Auftrag.Height := 40;
Auftrag.FName := edit1.Text;
OnMouseDown := Auftrag.MouseDown;

image1.Canvas.Pen.Color := clblack;
Image1.Canvas.MoveTo(Auftrag.Left , Auftrag.Top) ;
image1.Canvas.LineTo(Auftrag.Left , auftrag.Height) ;
image1.Canvas.LineTo(auftrag.Width , auftrag.Height) ;
image1.Canvas.LineTo(auftrag.Width , auftrag.Top) ;
image1.Canvas.LineTo(auftrag.Left , auftrag.Top) ;

end;

procedure MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin

ShowMessage('Test');

end;

end.


___________________________________

Leider mag er meine Mousedown Prozedur nicht

Sinspin 8. Dez 2021 15:01

AW: Erzeugtes object Ereignisse und Eigenschaften
 
Hallo,

was für eine Fehlermeldung bekommst du den? Meine hellseherischen Fähigkeiten wurden Heute schon überansprucht und lassen mich gerade im Dunkeln stehen.

PS: Er mag meine mouse down procedure auch nicht. Meißt habe ich dann mehrere Teile und muss eine neue kaufen.

himitsu 8. Dez 2021 15:20

AW: Erzeugtes object Ereignisse und Eigenschaften
 
Doch, er mag die, nur meckert er garantiert oben, dass er sie nicht finden kann ... ist auch klar, weil sie unten halt was Anderes ist.


Oben in einer Klasse deklariert,
aber unten als einzelne Prozedur implementiert (nicht als Klassen-Methode).

Delphi-Quellcode:
Tauftrag.
fehlt dort im Namen.



Und um Code bitte ein [DELPHI]...[/DELPHI] drumrum.
Dieses unformatierte Kauderwelsch kann doch niemand lesen.




Niemand gibt Auftrag wieder frei.
Und warum ist diese Variable eine "globale" Variable? (sei froh, dass dich niemand dafür steinigt ..... naja, noch nicht)

Andreas13 8. Dez 2021 15:32

AW: Erzeugtes object Ereignisse und Eigenschaften
 
Hallo Nine9,
Du kannst Deinen Quellcode etwas übersichtlicher formatieren, wenn Du - wie Himitsu bereits geschrieben - das Delphi-Symbol (= gelber Helm mit dem roten Kamm) vom Menü direkt über dem Editorfenster benutzt. Oder für neutrale Fälle als einfachen Code mit dem Symbol gleich links daneben (= auf weißem Blatt blaue eckige Klammern <>). Das geht übrigens auch nachträglich, wenn Du Deinen ersten Beitrag editierst.

Gruß, Andreas

Nine9 8. Dez 2021 15:49

AW: Erzeugtes object Ereignisse und Eigenschaften
 
Vielen Dank :)

tut mir leid für die unübersichtliche Formatierung ^^ das Nächste mal sieht der Code besser aus .
Nun er führt er den Code aus aber sobald ich mein Rechteck zeichnen möchte kommt der Fehler "Im Projekt Project4.exe ist eine Exception der Klasse $C0000005 mit der Meldung 'Zugriffverletzung bei 0x005c62f2: Schreiben von Adresse 0x00000010' aufgetreten."


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:10 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