AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Ereignis einer neuen Klasse wird nicht ausgelöst?
Thema durchsuchen
Ansicht
Themen-Optionen

Ereignis einer neuen Klasse wird nicht ausgelöst?

Ein Thema von ml-kuen · begonnen am 24. Okt 2009 · letzter Beitrag vom 24. Okt 2009
Antwort Antwort
ml-kuen

Registriert seit: 12. Dez 2005
6 Beiträge
 
#1

Ereignis einer neuen Klasse wird nicht ausgelöst?

  Alt 24. Okt 2009, 04:09
Hallo Leute,
suche verzweifelt nach dem Fehler. Hab sowas schon mal gemacht, aber komme diesmal irgendwie nicht weiter.

Ausschnitt meiner Klasse:
Delphi-Quellcode:
Type
  //...
  TScoreCharactersEvent = Procedure(Passwordlength: Integer; var Score: Integer; var OwnerScore: Boolean) of Object;

  TMLPasswordMeter = class(TComponent)
    Private
      fPassword: String;
      fScore: Integer;
      fCharacters: Integer;
      fOnScoreCharacters: TScoreCharactersEvent;
      Score4Characters: Integer;
      OwnerScoreCharacters: Boolean;
      //...
    Protected
      Procedure SetPassword(Password: String);
      //...
    Public
      Property Score: Integer read fScore;
      //...
    Published
      Property Password: String read fPassword write SetPassword;
      Property Characters: Integer read fCharacters;
      Property OnScoreCharacters: TScoreCharactersEvent read fOnScoreCharacters write fOnScoreCharacters;
      //...
    end

procedure Register;

implementation
//...
constructor TMLPasswordMeter.Create(AOwner: TComponent);
begin
  inherited;
  //...
  SetPassword('');
end;

procedure TMLPasswordMeter.SetPassword(Password: String);
Begin
  fPassword := Password;
  fCharacters := Length(fPassword);
  //...
  If Assigned(fOnScoreCharacters) then fOnScoreCharacters(fCharacters, Score4Characters, OwnerScoreCharacters);
  If Not OwnerScoreCharacters then Score4Characters := fCharacters * 4;
end;
Nach dem ich die Komponente in die Palette eingefügt und diese in mein Project benutze, erscheint beim Doppelklick auf das Ereignis im Objektinspector auch der Quelltext:
Delphi-Quellcode:
procedure TUserFrm.MLPasswordMeter1ScoreCharacters(Passwordlength: Integer; var Score: Integer; var OwnerScore: Boolean);
begin
  OwnerScore := true;
  Score := Passwordlength * 4;
end;
...aber das Ereignis wird nie aufgerufen, auch nicht wenn ich im Programm in die Eigenschaft Password schreibe.

Weis jemand einer Rat? Geh jetzt aber erst mal in die "Kiste".
Michael
Michael
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Ereignis einer neuen Klasse wird nicht ausgelöst?

  Alt 24. Okt 2009, 08:18
1. Per Vereinbarung sollte der 1.Parameter eines Ereignisses 'Sender : TObject' sein. Das ist aber nur eine Empfehlung und beantwortet die Frage nicht.
2. Wird das Ereignis gelinkt? Dann müssten die Zeilen im Editor mit einem blauen Punkt versehen werden.
3. Verwende den Debugger.
3.1 Setze einen Breakpoint auf die Zuweisung von MyComponent.Password
3.2 Schaue (mit F7) nach, ob der Methodenzeiger fOnScoreCharacters auch wirklich gesetzt ist.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
ml-kuen

Registriert seit: 12. Dez 2005
6 Beiträge
 
#3

Re: Ereignis einer neuen Klasse wird nicht ausgelöst?

  Alt 24. Okt 2009, 15:56
Danke für den Denkanstoß, wodurch ich die Lösung gefunden habe. Hatte meine Komponente fälschlicherweise in einem Modalen Fenster per Create erstellt, obwohl ich sie in der Zwischenzeit registriert und in der Komponentenpalette installiert hatte. Das noch vorhandene Create hat dann eine zusätzliche Instance erstellt.

Vielen Dank.
Michael
Michael
  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 09:12 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