AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Eigene Prozeduren für eine Komponente???

Ein Thema von romber · begonnen am 9. Okt 2008 · letzter Beitrag vom 9. Okt 2008
Antwort Antwort
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#1

Eigene Prozeduren für eine Komponente???

  Alt 9. Okt 2008, 12:41
Hallo!

Ich versuche gerade, mir eine kleine Komponente zu erstellen. Die Komponente besitzt unter anderem eine TObjectList und zwei Prozeduren, um die Inhalte dieser TObjectList als XML specihern und laden. Alles funktioniert sehr gut. Nun möchte ich für meine Komponente vier Events erstellen, die dann über ObjectInspektor zuzuweisen sind. Diese Events sollen jeweils Anfang und Ende des Speichern- und Ladenprozesses signalisieren, also

OnBeginSave
OnEndSave
OnBeginLoad
OnEndLoad

Wie mache ich das? Wie erstelle ich diese Events? Ich habe mir mehrere Delphi-Units angesehen, unter anderen die StdCtrls.pas, aber nicht weiter gekommen. Die Komponente TButton hat z.B. die Procezur OnClick. Diese wird in der TButton-Deklaration einfach als "property OnClick" deklariert. Das wir aber nicht reichen, oder?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Eigene Prozeduren für eine Komponente???

  Alt 9. Okt 2008, 12:47
Delphi-Quellcode:
type TBeginSave = procedure<(Parameter: Datentyp)> of object;

TMyKompo = class
private
  FOnBeginSave: TBeginSave;
  ...
published
  property OnBeginSave: TBeginSave read FOnBeginSave write FOnBeginSave;
  ...
end;

...

procedure TMyKompo.TuWas;
begin
  ...
  if Assigned(FOnBeginSave) then
    FOnBeginSave;
end;
So sieht das im Prinzip aus.
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 Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: Eigene Prozeduren für eine Komponente???

  Alt 9. Okt 2008, 13:02
Zitat von DeddyH:
Delphi-Quellcode:
published
  property OnBeginSave: TBeginSave read FOnBeginSave write FOnBeginSave;
Das Hundchen hat das Schlüsselwort "property" vergessen .
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Eigene Prozeduren für eine Komponente???

  Alt 9. Okt 2008, 13:05
Stimmt, wird sofortens korrigiert.
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
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Eigene Prozeduren für eine Komponente???

  Alt 9. Okt 2008, 13:29
Hi DaddyH,

gib ihm doch für den Anfang ein TNotify Event. Dann hat er es etwas leichter.

Delphi-Quellcode:
TMyKompo = class
private
  FOnBeginSave: TNotifyEvent;
  ...
published
  property OnBeginSave: TNotifyEvent read FOnBeginSave write FOnBeginSave;
  ...
end;

...

procedure TMyKompo.TuWas;
begin
  ...
  if Assigned(FOnBeginSave) then
    FOnBeginSave(self);
end;
Gruß oki
42
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Eigene Prozeduren für eine Komponente???

  Alt 9. Okt 2008, 13:32
Ich weiß ja nicht, wie die entsprechende Prozedur auszusehen hat. Evtl. erwartet er ja Parameter, daher hab ich das Typisieren eines Events gleich mit beschrieben.
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
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Eigene Prozeduren für eine Komponente???

  Alt 9. Okt 2008, 13:36
Sollte ja keine Kritik sein.
Ich hatte den Eindruck, dass er noch nicht so recht mit Events um weis. Zudem sind die benannten doch recht eindeutig und sicher erst mal als einfache NotifyEvents einbindbar.
Ich würd mich nicht wundern, wenn sonnst die Frage kommt: "Was sagt die Deklaration procedure of Object aus?".

Gruß oki
42
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Eigene Prozeduren für eine Komponente???

  Alt 9. Okt 2008, 13:41
Warten wir es einfach mal ab

P.S.: Ich hatte das auch nicht als Kritik aufgefasst, wobei gegen Kritik ja generell nichts einzuwenden ist
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
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Eigene Prozeduren für eine Komponente???

  Alt 9. Okt 2008, 13:44
Zitat von DeddyH:
P.S.: Ich hatte das auch nicht als Kritik aufgefasst, wobei gegen Kritik ja generell nichts einzuwenden ist
Jooop!
42
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#10

Re: Eigene Prozeduren für eine Komponente???

  Alt 9. Okt 2008, 20:05
Vielen Dank für die Hilfe!

Für Load und Save habe ich einfache TNotifyEvents erstellt, wie Oki vorgeschlagen hat. Ich habe ausserdem noch einige Events hinzufügt, die Parameter erwarten. Da war das Beispiel von DeddyH sehr hilfreich. Vielen Dank!
  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 03:40 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