Не можете да дефинирате клас вътре в скрипта, но можете да използвате
външни класове, дефинирани в допълнителни модули или в приложението ви.
var
f: TForm;
b: TButton;
procedure ButtonClick(Sender: TButton);
begin
ShowMessage(Sender.Name);
f.ModalResult := mrOk;
end;
// няма нужда да се използват всички параметри в манипулаторите на събития
// защото тук не се прави проверка на типа
procedure ButtonMouseMove(Sender: TButton);
begin
b.Caption := 'moved over';
end;
begin
f := TForm.Create(nil);
f.Caption := 'Test it!';
f.BorderStyle := bsDialog;
f.Position := poScreenCenter;
b := TButton.Create(f);
b.Name := 'Button1';
b.Parent := f;
b.SetBounds(10, 10, 75, 25);
b.Caption := 'Test';
b.OnClick := @ButtonClick; { same as b.OnClick := 'ButtonClick' }
b.OnMouseMove := @ButtonMouseMove;
f.ShowModal;
f.Free;
end.
Както виждате, няма разлика между кодовете PascalScript и
Delphi. Можете да достъпите всеки метод или свойство (просто,
индексирано или по подразбиране). Всички публикувани свойства на обекта
са достъпни от скрипта по подразбиране. Публичните свойства и методи
имат нужда от код за имплементация, затова можете да ги достъпите
частично (например, не можете да достъпите метода TForm.Print или
свойството TForm.Canvas защото те не са имплементирани).