Pointer in Lazarus

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Minits
Beiträge: 30
Registriert: So 30. Okt 2016, 21:13
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Pointer in Lazarus

Beitrag von Minits »

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.

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Pointer in Lazarus

Beitrag von wp_xyz »

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:

Code: Alles auswählen

{$mode objfpc}{$H+} // Am Anfang der Unit
//...
procedure TForm1.FormCreate(Sender: TObject);
begin
  Button2.OnClick := @FormButton1Click;
end;

Im Delphi-Modus wird einfach der Prozedurname zugewiesen:

Code: Alles auswählen

{$mode Delphi}
// ...
procedure TForm1.FormCreate(Sender: TObject);
begin
  Button2.OnClick := FormButton1Click;
end;

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Pointer in Lazarus

Beitrag von Warf »

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

Antworten