AGB  ·  Datenschutz  ·  Impressum  







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

Eigene Komponente - "OnDaPassiertEtwas"

Ein Thema von napsterxx · begonnen am 23. Apr 2009 · letzter Beitrag vom 24. Apr 2009
Antwort Antwort
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#1

Eigene Komponente - "OnDaPassiertEtwas"

  Alt 23. Apr 2009, 23:16
Also ich habe soetwas noch nie gemacht, und dazu eine Edit Komponente auseinander genommen - ohne Erfolg
Kurz zu meinem Vorhaben.

Ich habe hier eine kleine Komponente gebastelt, welche ein Message-Event abfängt, WM_COPYDATA. Nun wollte ich, dass der Anwender Folgendes einfaches machen kann:

MeineKomponent.OnRecive := MessageErhalten; Hoffe ihr wisst was ich meine. Ich habe überhaupt keine Ahnung was ich da wohin schreiben muss, und vorallem wie. protected? published? OnRecive?^^
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Eigene Komponente - "OnDaPassiertEtwas"

  Alt 23. Apr 2009, 23:26
Delphi-Quellcode:
TMeinEvent = procedure(Sender : TObject) of object;
// Könnte man, statt es zu definieren z.B. auch ein Standard Klick-Event nehmen
// also statt TMeinEvent einfach TNotifyEvent, wenn nicht mehr übermittelt wird.

TDeineComponente = class
private
  FOnDaPassiertWas : TMeinEvent;

public //oder published, wenn es im OI stehen soll
  property OnReceive : TMeinEvent Read FOnDaPassiertWas Write FOnDaPassiertWas;
end;

// innerhalb der Klasse das ereignis auslösen:
if Assigned(FOnDaPassiertWas) then FOnDaPassiertWas(self);
  Mit Zitat antworten Zitat
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Eigene Komponente - "OnDaPassiertEtwas"

  Alt 24. Apr 2009, 00:02
Ich habe es genau so übernommen, auch keine Übersetzungsfehler aber die OnRecive methode wird nicht aufgerufen. Ich dachte es liegt daran das die Nachricht nicht ankommt - dem ist nicht so, Nachricht kommt an.
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#4

Re: Eigene Komponente - "OnDaPassiertEtwas"

  Alt 24. Apr 2009, 00:02
Zitat von Satty67:
Delphi-Quellcode:
...// innerhalb der Klasse das ereignis auslösen:
if Assigned(FOnDaPassiertWas) then FOnDaPassiertWas(self);
Dabei sollte man drauf achten, das als letztes im Codeblock zu platzieren, oder nachfolgenden Code mit try finally zu schützen, da im OnPassiertWas eine Exception ausgelöst werden könnte.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Eigene Komponente - "OnDaPassiertEtwas"

  Alt 24. Apr 2009, 00:17
Jetzt gehts. Danke ihr zwei.
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  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 07:31 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