Hallo zusammen,
ich habe letztens angefangen in C zu programmieren und dabei auch Pointer kennengelernt. In der Schule arbeiten wir mit Lazarus und nun möchte ich allgemein einfach fragen, wie man einen in einen Button einen Zeiger einbaut, der auf den Code bzw. die Speicherstelle des Codes aus einem anderen Button zeigt und somit die gleiche Aktion ausführt und dabei Speicher spart.
Pointer in Lazarus
Re: Pointer in Lazarus
In Pascal/Lazarus geht das alles viel einfacher. Nehmen wir an, der 1. Button hätte einen OnClick-Eventhandler namens FormButton1Click(Sender: TObject) und du möchtest dasselbe Ereignis bei einem Klick auf einem 2. Button ausgeführt haben, dann wählst du im Objekt Inspector den 2. Button, gehst auf die Seite "Ereignisse", öffnest die Combobox-Liste des Ereignisses OnClick und wählst FormButton1Click aus. - Das wars.
Dasselbe kannst du natürlich auch zur Laufzeit erreichen. Dazu kannst du z.B. im OnCreate-Ereignis des Formulars dem OnClick des 2.Buttons die Adresse der OnClick-Prozedur des 1. Buttons zuweisen:
Im Delphi-Modus wird einfach der Prozedurname zugewiesen:
Dasselbe kannst du natürlich auch zur Laufzeit erreichen. Dazu kannst du z.B. im OnCreate-Ereignis des Formulars dem OnClick des 2.Buttons die Adresse der OnClick-Prozedur des 1. Buttons zuweisen:
Code: Alles auswählen
{$mode objfpc}{$H+} // Am Anfang der Unit
//...
procedure TForm1.FormCreate(Sender: TObject);
begin
Button2.OnClick := @FormButton1Click;
end;
Code: Alles auswählen
{$mode Delphi}
// ...
procedure TForm1.FormCreate(Sender: TObject);
begin
Button2.OnClick := FormButton1Click;
end;
-
- Beiträge: 2120
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Pointer in Lazarus
Das eventsystem von Lazarus (wie mein Vorposter beschreibt)ist nichts anderes als genau das, methodenszeiger, die auf eine methode zeigen, welche Gefälles werden wenn das Event Auftritt. Falls dich Zeiger genauer interessieren kann ich später, wenn ich am PC bin hier ein paar Beispiele posten. Ansonsten für das was du willst reicht das von wp_xyz