AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Eigene Komponente -> Wie ein eigenes OnEvent erstellen?
Thema durchsuchen
Ansicht
Themen-Optionen

Eigene Komponente -> Wie ein eigenes OnEvent erstellen?

Ein Thema von KodeZwerg · begonnen am 28. Jul 2020 · letzter Beitrag vom 1. Aug 2020
Antwort Antwort
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Eigene Komponente -> Wie ein eigenes OnEvent erstellen?

  Alt 29. Jul 2020, 09:23
Zur Klarstellung:

Momentan hat meine Komponente eine read-only property Aborted. Diese wird von meiner Komponente gesetzt/verwaltet.
So das man code-seitig abfragen kann "if komponente.Aborted then".
Genau das wollte ich mit einem Ereignis (OnEvent) verschönern, so dass der Nutzer der Komponente einfach im Objekt-Inspektor einen Doppelklick auf "OnAborted" macht und dort seinen Code reinschreiben kann der sonst bei "if komponente.Aborted then" zu tragen gekommen wäre.
(bis jetzt fand ich noch keine zeit irgendeine Variante auszuprobieren, aber am Wochenende dann)

Ist das ein falscher Ansatz?


Danke fürs Lesen und Input input input!!! Das hilft mir als Neuling von Komponenten ungemein weiter!! (ich schreib meist nur klassen oder methoden)
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#2

AW: Eigene Komponente -> Wie ein eigenes OnEvent erstellen?

  Alt 29. Jul 2020, 09:57
Ich finde den Ansatz sinnvoll. Man kann somit an jeder weiteren Stelle prüfen, ob Aborted gesetzt ist, sich aber zusätzlich auch benachrichtigen lassen, wenn und sobald abgebrochen wird. Denkbar wäre auch noch ein weiteres Event, das gefeuert wird, wenn (bzw. unmittelbar bevor) abgebrochen wird, das einen Boolean-Var-Parameter hat, mit dem man quasi das letzte Wort hat, ähnlich dem OnClose-Event von TCustomForm mit seinem CanClose-Parameter.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Eigene Komponente -> Wie ein eigenes OnEvent erstellen?

  Alt 29. Jul 2020, 11:37
DeddyH Danke, mit dem "zuvor" Nachtrag, an so etwas dachte ich nicht mal ansatzweise.
Es ist toll zu einem Thema verschiedenste Ansichten mitzubekommen, davon lerne ich viel!

Ich habe mir erstmal alle Codevorschläge notiert und mal sehen wie ich mit was am besten klarkomme.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.094 Beiträge
 
Delphi 12 Athens
 
#4

AW: Eigene Komponente -> Wie ein eigenes OnEvent erstellen?

  Alt 29. Jul 2020, 14:44
Nochn ein Hinweis: typischerweise gibt mal als ersten Parameter in so einem Event auch den Sender als TObject mit.
Der Aufrufer des Events übergibt dazu einfach Self als dieser Parameter.

Vorteil: im Eventhandler hat man bei Bedarf Zugriff auf das auslösende Objekt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.553 Beiträge
 
Delphi 12 Athens
 
#5

AW: Eigene Komponente -> Wie ein eigenes OnEvent erstellen?

  Alt 29. Jul 2020, 16:29
Es muß nicht immer TSender sein ... falls man seine eigenen Events definiert, dann darf man dort auch direkt die richtige Klasse verwenden.

Aber für so Standard-Events, welche immer die selben Parameter haben, spart man sich einen eigenen Typen oft und verwendet einen der Vordefinierten ala TNotifyEvent.


Zitat:
Vorteil: im Eventhandler hat man bei Bedarf Zugriff auf das auslösende Objekt.
Der Vorteil ist vor allem dann, wenn man mehrere Objekte hat, von wo das Event kommen kann,
oder wenn man einen allgemeinen Code schreiben will -> Der geht dann auf Sender und man kann den Code auch z.B. in eine andere Form/Programm kopieren, wo die Komponente nicht gleich heißen muß.
Und auch wenn man die Komponente umbenennt, knallt es nicht gleich, da ja nicht auf den Namen gegangen wird.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Eigene Komponente -> Wie ein eigenes OnEvent erstellen?

  Alt 30. Jul 2020, 07:35
Danke Euch beiden , ich werde es berücksichtigen!
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#7

AW: Eigene Komponente -> Wie ein eigenes OnEvent erstellen?

  Alt 1. Aug 2020, 17:26
Gibt zu Zeiger auf Funktionen auch Video auf mein Kanal: https://www.youtube.com/watch?v=7PL_H2aBUOI
  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 23:40 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