Błąd kompilacji programu w Lazarusie

0

Witam, mam głupi problem z Lazarusem. Musze napisać prostą aplikację i nie mogę sobie poradzić. Mam przycisk i chciałem do niego przypisać procedurę np zamknij.

procedure TForm1.Button1Click(Sender: TObject);
begin
  Close;
end;

Przy próbie uruchomienia dostaje komunikat:

unit1.pas(30,30) Error: method identifier expected
Myślałem, że moze coś pomyliłem, ale na kilku stronach jest podane dokładnie to samo.

Odpaliłem swoje stare zadania, które pisałem w Delphi7 i tez jest tak samo,a tu mi sie nie chce skompilować. Czy mógłby mnie ktoś naprowadzić co robię źle?

dodanie znaczników <code> i <code class="delphi"> - @furious programming

0

U mnie działa.
Pokaż cały kod.

0
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage('Hello');
end;

end.

dodanie znacznika <code class="delphi"> - @furious programming

2

Po umieszczeniu przycisku na formularzu kliknij na niego 2-krotrnie wygeneruje się dla niego zdarzenie - to samo możesz zrobić na zakładce Events.

//edycja
Możesz zrobić to też ręcznie, ale w części interface klasy musisz zadeklarować tą metodę i później podpiąć jeszcze ją do odpowiedniego zdarzenia OnClick przycisku.

0

Działa, dzięki, ale dlaczego jak zapisze to z klawiatury to nie działa?

0

Jeśli podejrzysz sobie źródło formularza jako tekst zobaczysz mniej więcej coś takiego (ja używam Delphi)

object Form1: TForm1
  Left = 192
  Top = 117
  Width = 979
  Height = 563
  Caption = 'Form1'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object Button1: TButton
    Left = 296
    Top = 48
    Width = 75
    Height = 25
    Caption = 'Button1'
    TabOrder = 0
    OnClick = Button1Click
  end
end

Szczególnie linijka OnClick = Button1Click odpowiada za to że podpina metodę do odpowiedniego zdarzenia przycisku.
Można to zrobić też manualnie np. w zdarzeniu OnCreate formularza czy gdziekolwiek indziej przed jego użyciem:

procedure TForm1.FormCreate(Sender: TObject);
begin
  Button1.OnClick := Button1Click;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1