Ereigniszuweisung während dessen Programm läuft

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Entertainmentberg
Beiträge: 46
Registriert: So 27. Jan 2013, 22:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Ereigniszuweisung während dessen Programm läuft

Beitrag von Entertainmentberg »

Hallo Leute,
ich habe ein sehr hartnäckiges Problem: Meine Ereigniszuweisung funktioniert nicht - und dass, obwohl ich diverse Hilfen, Googlesuchen und Forumsbeiträge auch von Delphi zu Rate gezogen habe! Ich mache alles genauso, wie es vorgeschrieben ist. Doch nichts funktioniert. Es handelt sich um folgenden Abschnitt:


Code: Alles auswählen

  obj_warenanzeige.cb_alles:=tcheckbox.Create(obj_warenanzeige);
 
  WITH obj_warenanzeige.cb_alles do
  Begin
       Parent:=obj_warenanzeige;
       Checked:=true;
       Caption:='Alle Waren im Lager zeigen';
       Left:=600;
       Top:=30;
OnChange:=@t_gb_warenanzeige.cb_onchange
  end;           


Auch die folgenden Variationen funktionieren nicht:

Code: Alles auswählen

OnChange:=t_gb_warenanzeige.cb_onchange;
 
OnChange:=@t_gb_warenanzeige.cb_onchange(nil);
 
OnChange:=t_gb_warenanzeige.cb_onchange(nil);


Auch wenn ich für "nil" konkrete Sender einsetze, will Lazarus das Programm nicht compilieren.


Wenn mir irgendwer weiterhelfen kann, wäre ich enorm dankbar!!! Bis dann,
und Danke im Vorraus
Zuletzt geändert von Lori am Sa 2. Feb 2013, 11:07, insgesamt 1-mal geändert.
Grund: Highlighter

Entertainmentberg
Beiträge: 46
Registriert: So 27. Jan 2013, 22:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Ereigniszuweisung während dessen Programm läuft

Beitrag von Entertainmentberg »

Ich sollte vielleicht noch sagen, welche Fehlermeldungen kommen:


OnChange:=@t_gb_warenanzeige.cb_onchange;
=> u_siedler.pas(136,18) Error: Incompatible types: got "<address of procedure(TObject) of object;Register>" expected "<procedure variable type of procedure(TObject) of object;Register>"


OnChange:=t_gb_warenanzeige.cb_onchange;
=> u_siedler.pas(136,47) Error: Wrong number of parameters specified for call to "cb_onchange"


OnChange:=t_gb_warenanzeige.cb_onchange(nil);
=> u_siedler.pas(136,52) Error: Only class class methods, class properties and class variables can be accessed in class methods


OnChange:=@t_gb_warenanzeige.cb_onchange(nil);
=> u_siedler.pas(136,18) Error: Incompatible types: got "<address of procedure(TObject) of object;Register>" expected "<procedure variable type of procedure(TObject) of object;Register>"

Entertainmentberg
Beiträge: 46
Registriert: So 27. Jan 2013, 22:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Ereigniszuweisung während dessen Programm läuft

Beitrag von Entertainmentberg »

Hier auch nochmal die Deklaration

Code: Alles auswählen

 
t_gb_warenanzeige = CLASS(TGroupBox)
  // diverse Komponente - darunter einige Checkboxes
 
  procedure cb_onchange(SENDER:TObject)// Diese Proc soll für die Ceckboxen angenommen werden
 
  private
    { private declarations }
  public
    { public declarations }
  end;           
 


Die Procedure hab ich auch schon mal ohne Parameter ausprobiert und unter private oder public abgelegt - auch das war alles nicht erfolgreich, um eine Ereignizuweisung machen zu können...
Zuletzt geändert von Lori am Sa 2. Feb 2013, 11:08, insgesamt 2-mal geändert.
Grund: Bitte benutze den Highlighter

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Ereigniszuweisung während dessen Programm läuft

Beitrag von mse »

Entertainmentberg hat geschrieben: OnChange:=@t_gb_warenanzeige.cb_onchange;
end;

OnChange:=@instanz_der_klasse_t_gb_warenanzeige.cb_onchange;

Martin

Entertainmentberg
Beiträge: 46
Registriert: So 27. Jan 2013, 22:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Ereigniszuweisung während dessen Programm läuft

Beitrag von Entertainmentberg »

Oh nein!!!! Ich bin ein Esel!!! Ich sehe das Vergehen!

Sowas Blödes aber auch - alles klar - man sollte vielleicht doch nicht bis um 3:00 programmieren :-)

Vielen, lieben Dank, ich war schon am Verzweifeln (-: Sowas Blödes aber auch...

Bis später,
Gruß

Entertainmentberg
Beiträge: 46
Registriert: So 27. Jan 2013, 22:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Ereigniszuweisung während dessen Programm läuft

Beitrag von Entertainmentberg »

Oh mein Gott! Um Halb 6 schreibst du noch Foreneinträge? Das find ich mal echt richtig hart! Hammer. Alle Achtung - meine Leistungskurve sinkt ja schon gegen23Uhr bis in den Keller...

Vielen Dank aber nochmal, das war echt eine große Hilfe. Den Schussligkeitsfehler hätte ich ewig nicht gefunden! Das wär mir gar nicht in den Sinn gekommen...

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Ereigniszuweisung während dessen Programm läuft

Beitrag von mse »

Entertainmentberg hat geschrieben:Oh mein Gott! Um Halb 6 schreibst du noch Foreneinträge?

Nicht "noch" aber "schon". :)

Martin

Entertainmentberg
Beiträge: 46
Registriert: So 27. Jan 2013, 22:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Ereigniszuweisung während dessen Programm läuft

Beitrag von Entertainmentberg »

OK - in diesem Fall: Meine Leistungskurve steigt erst gegen 9:00 auf "Ich weiß, dass ich existiere, aber noch glaub ichs nicht..."
8)

Antworten