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) (80 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).