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".