Membuat Jam Analog Dengan Pascal

Untuk settingan pascal silahkan klik link dibawah ini :
Setting Pascal


Program :

uses graph,crt,windos;
var gd,gm:integer;
    sec,detik,menit,jam:word;
    sudut:integer;
    jamX,jamY:integer;
const
     BesarLingkaran=130;
     BesarAngka=110;
     BesarDetik=100;
     besarMenit=80;
     besarJam=60;
     background=4;

    function rad(alpha:word):real;
    begin
         rad:=alpha*pi/180;
    end;

    procedure tampilDetik(Pdetik:word;Panjang:integer;jarum:integer;warna:word);
    var sudut:integer;
    begin

    if(jarum=0) then
    begin
      Pdetik:=(Pdetik+45);
      sudut:=6;
    end
    else if(jarum=1) then
    begin
      Pdetik:=(Pdetik+45);
      sudut:=30;
    end;

    setColor(background);
    Line(jamX,JamY,trunc(cos(rad((Pdetik-1)*sudut))*Panjang+jamx),trunc(sin(rad((Pdetik-1)*sudut))*Panjang+jamY));
    setColor(warna);
    Line(jamX,JamY,trunc(cos(rad(Pdetik*sudut))*Panjang+jamx),trunc(sin(rad(Pdetik*sudut))*Panjang+jamY));
    end;


    procedure tampilAngkaJam;
       var strAngkaJam:string;
           angkaJam:integer;
           i:integer;
    begin
       for i:= 1 to 12 do
       begin
            angkaJam:=i+9;
            str(i,strAngkaJam);
            outTextXY(trunc(cos(rad(angkaJam*30))*besarAngka+jamx)-5,trunc(sin(rad(angkaJam*30))*besarAngka+jamY),strAngkaJam);
       end;
    end;


    function jamDigital:string;
    var strDetik,strMenit,strJam:string;
    begin
         str(jam,strJam);
         str(menit,strMenit);
         str(detik,strDetik);
         jamDigital:=(strJam+':'+strMenit+':'+strDetik);
    end;

begin
     clrscr;
     gd:=detect;
     gm:=detect;
     initGraph(gd,gm,'c:\tp\bgi');
       jamX:=trunc(getMaxX/2);
       jamY:=trunc(getMaxY/2);
       setBkColor(background);
       circle(jamX,jamY,BesarLingkaran);
       tampilAngkaJam;
       repeat
       begin
         getTime(jam,menit,detik,sec);
         tampilDetik(jam,BesarJam,1,3);
         tampilDetik(menit,BesarMenit,0,2);
         tampilDetik(detik,BesarDetik,0,1);
        { outTextXy(jamx-25,jamy+50,jamDigital);}
         delay(200);
       end;
       until keypressed;
     closeGraph;
end.


Hasil :


1 komentar:

alo ? apakah masih aktif adminnya ?? saya butuh bantuan

Reply

Post a Comment