Ací pose un exemple simple de com fer sota Lazarus un programa mínim que consisteix en una finestra form que conté una àrea de llenç per dibuixar (canvas), i un parell de botons (un per sortir del programa i un altre que dibuixa una línia -píxel a píxel- , un parell de rectangles…). El codi està simplificat al màxim per poder-lo reproduir fàcilment.
Adaptar un programa fet a Turbo Pascal o TPW pot resultar una mica confús al principi de treballar en un entorn de l’estil de Lazarus en què cada objecte té un munt de propietats i procediments jeràrquics que acaben per confondre el programador respecte on fer valdre cadascun dels procediments emprats. L’exemple és:
unit Unit1;
{$mode objfpc}
{$H+}
interface
uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
ExtCtrls, Buttons;
type { TForm1 }
TForm1 = class(TForm) BitBtn1: TBitBtn;
Button1: TButton;
Image1: TImage;
procedure BitBtn1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Image1Click(Sender: TObject);
private public
end;
var Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject); // En apretar el "button1" ...
var i:integer;
begin
image1.canvas.clear; // Esborrem el text posat en el canvas.
with Image1.Canvas do begin // Accedim tipus bulk a la jerarquia.
Brush.Color:=clblue; // Seleccionem color blau.
FillRect(0,0,100,100); // Fem una superfície rectangular blava.
end;
image1.Canvas.pen.color:=clgreen; // Seleccionem color verd. (Accedim directament).
image1.Canvas.rectangle(1,1,40,40); // Incloem un rectangle verd.
for i:=0 to image1.canvas.height do begin
image1.Canvas.Pixels[i,i]:=clred; // Fem una línia diagonal.
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin halt(0); end;
procedure TForm1.FormCreate(Sender: TObject);
begin
image1.Canvas.TextOut(25,70,' Prem el Button1 per a dibuixar ');
end;
procedure TForm1.Image1Click(Sender: TObject); begin end; end.
Pots baixar-te un directori de projecte en Lazarus ací:
Exemple1 (pascal timage) (703 downloads )Fonts, ampliacions i informacions complementàries:
- https://wiki.lazarus.freepascal.org/Developing_with_Graphics/es
- https://forum.lazarus.freepascal.org/index.php?topic=20709.0
- https://forum.lazarus.freepascal.org/index.php?topic=54414.0
- APA://Grau López, David, (2013/07/17),”Desarrollo de un software libre para la edición de imágenes”, UPV. (by-nc-nd).
