Nis 072016
 
3.578 views

Lazarus ve Python Entegrasyonu

Lazarus ve Python entegrasyonu için çok basit bir örnek yapalım.

Python, vereceğimiz tam sayıların faktöryellerini döndürsün. Bunun için Python ile birkaç satırlık bir kod oluşturalım hemen:

# -*- coding: utf-8 -*-

import math
import sys

try:
    y = int(sys.argv[1])
    x = math.factorial(y)
    print(x)
except Exception as e:
    print(str(e))

Kod dosyamızın adı lazarus_test.py olsun.

Lazarus tarafında ise hem istediğimiz tam sayıyı seçebilelim, hem de Python’dan dönen yanıtları sergileyebilelim.

Lazarus kodlarımız da şöyle olsun:

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, SynEdit, Forms, Controls, Graphics, Dialogs,
  StdCtrls, ExtCtrls, Process;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    Memo1: TMemo;
    Panel1: TPanel;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var
  proses : TProcess;
  liste: TStringList;
begin
  proses := TProcess.Create(nil);
  liste := TStringList.Create;
  proses.CommandLine:= 'python3 /home/ax/PycharmProjects/lazarus/lazarus_test.py ';
  proses.CommandLine:= proses.CommandLine + trim(Edit1.Text);
  proses.Options := proses.Options + [poWaitOnExit,poUsePipes];
  proses.Execute;
  liste.LoadFromStream(proses.Output);
  Memo1.Lines.Clear;
  Memo1.Text := liste.Text;
  liste.Free;
  proses.Free;

end;

end.

Form1 görüntüsü:

lazarus ve python

Bu da 50 faktöryel hesaplanmış hali.

Lazarus ve python entegrasyonu

Gördüğünüz gibi mekanizma çok basit bir şekilde çalıştırılabiliyor. Lazarus, python ile elde edilen sonuçları sergileme açısından pratik ve görsel bir araç olarak kullanılabilir.

Elbette ben eski bir Delphi kullanıcısı olmanın avantajlarını yaşıyorum. Ama siz Delphi veya Pascal ile daha önceden tanışmadıysanız, yeni bir dil öğrenmenin size ne kadar yük ve yarar sağlayacağını ayrıca dikkate almalısınız.

Konuyla ilgili sorularınız olursa, yorum alanından bana yöneltebilirsiniz.

Lazarus önünüzde yeni ufuklar açabilir. Deneyin, görün!

Ahmet Aksoy

 Bir yanıt bırakın

Bu HTML tagleri ve özellikleri kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(gerekli)

(gerekli)

This site uses Akismet to reduce spam. Learn how your comment data is processed.