Başlangıç > Kodlar > Delphi ile grafik çizimi

Delphi ile grafik çizimi


Seçimlere 1 yıl kala hangi partinin kaç oy alacağını yazın, onlarını excel'de pastagrafiği oluşturuyormuş gibi programınız da görün...

ilk önce formunuza iki tane edit (bulardan birincisine parti adını yazızaksınız, diğerine de partinin aldığı oyu) bir tane button(butona basıldığında partiye ait pastagrafiğini göreceksiniz) koyun...

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Borland.Vcl.StdCtrls, System.ComponentModel;

type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.nfm}

uses System.Drawing,System.Drawing.Drawing2D;
var
partiler:Array[0..19] of String;
oylar:Array[0..19] of Integer;
sira_no , toplam_oy:Integer;

procedure TForm1.Button1Click(Sender: TObject);
var
g:System.Drawing.Graphics;
renk:System.Drawing.Color;
firca:HatchBrush;
i, baslangic_acisi, yay_acisi:Integer;
begin
if sira_no = 20 then
Begin
ShowMessage('En çok 20 parti olabilir');
exit;
End;
g:=System.Drawing.Graphics.FromHwnd(IntPtr.Create(handle));
try
oylar[sira_no] := StrToInt(Edit2.Text);
except
ShowMessage('Oy sayısında hata var');
exit;
End;
partiler[sira_no] := Edit1.Text;
toplam_oy := toplam_oy + oylar[sira_no];
sira_no := sira_no + 1;
baslangic_acisi:=0;
yay_acisi:=0;
for i := 0 to sira_no - 1 do
begin
yay_acisi := 360 * oylar[i] div toplam_oy;
renk := System.Drawing.Color.FromArgb(Random(255), Random(255),
Random(255));
firca := HatchBrush.Create(HatchStyle(Random(50)), renk);
//Pasta dilimini çiz
g.FillPie(firca, 0, 80, 200, 200, baslangic_acisi, yay_acisi);
//O rengin açıklamasını belirtmesi için küçük bir dikdörtgen çiz
g.FillRectangle(firca, 210, 80 + i * 20, 18, 18);
//Yanına parti adını ve aldığı oyu yaz
g.DrawString(partiler[i] + ':=' + oylar[i].ToString(),
System.Drawing.Font.Create('Tahoma', 8, FontStyle.Regular),
SolidBrush.Create(System.Drawing.Color.Red),
230, 80 + i * 20);
baslangic_acisi := baslangic_acisi + yay_acisi;
End;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

end.


TD Software


Reklamlar
  1. Henüz yorum yapılmamış.
  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: