• Hãy ủng hộ PhienBanMoi.Com bằng cách LIKE trang FANPAGE , GOOGLE+ dưới mỗi bài viết hoặc chia sẻ website nếu thấy hữu ích. Trân trọng cảm ơn!
  • [Thông Báo] Tuyển thành viên viết bài KIẾM TIỀN trên PhienBanMoi.Com


    Nhằm mục đích phát triển Phienbanmoi.com hơn nữa, có thêm các bài viết thông tin thực sự hữu ích từ những thành viên tích cực. BQT đã quyến định tạo ra cơ hội kiếm tiền từ các bài viết được đăng tải và chia sẻ trên diễn đàn

[HOT] Lazarus Pascal - Môi trường phát triển Pascal xuất sắc!

Alfred Seattle

Member Chính Thức
Tham gia
26/2/12
Bài viết
27
Thích
17
Nơi ở
Hà Nội
#1
Nếu các bạn đã quá mệt mỏi với Turbo Pascal và Free Pascal thì nay điều đó đã không còn, hãy nói xin chào với Lazarus Pascal. Mình sẽ không nói quá nhiều về nó nhé (chẳng ai muốn phải đọc nhiều thông tin vớ vẩn đâu :D )
Cơ bản như sau:
1. Hỗ trợ:
Windows: 98, 2k, xp, vista, 7 32 or 64 bit
FreeBSD/Linux: gtk 2.8 or qt4.5, 32 or 64bit
Mac OS X: 10.4, LCL only 32bit, non LCL apps can be 64bit
2. Phiên bản hiện tại là bản 0.9.30.4 được phát hành vào ngày 14/03/2012.
Sử dụng trình biên dịch Free Pascal. Tuy nhiên chúng ta không phải download Free Pascal mà nó đã đựoc tích hợp sẵn trong Lazarus Pascal.
Trang chủ: http://www.lazarus.freepascal.org/
3. Link download: http://sourceforge.net/projects/lazarus/files/
4. Một số hình ảnh:


5. Video hướng dẫn sử dụng cơ bản (Tiếng Việt):
[YOUTUBE]wkkaqiU_1r4[/YOUTUBE]​
Bonus thêm video học Free Pascal với Lazarus Pascal (Tiếng Anh):
1. Free Pascal Tutorial 1 - The First Program - Lazarus (Hello World) Download
[YOUTUBE]nqph8VGCi40[/YOUTUBE]​
2. Free Pascal Tutorial 2 - Printing Math - Lazarus
[YOUTUBE]tSLas4KiqVg[/YOUTUBE]​
3. Free Pascal Tutorial 3 - Formatting Lines - Lazarus
[YOUTUBE]l7p5sQaipYM[/YOUTUBE]​
4. Free Pascal Tutorial 4 - Data Types and User Input - Lazarus
[YOUTUBE]N6dynnuKvGk[/YOUTUBE]​
5. Free Pascal Tutorial 5 - If Statements - Lazarus
[YOUTUBE]tWM9Vxs99TY[/YOUTUBE]​
6. Free Pascal Tutorial 6 - Loops - Lazarus
[YOUTUBE]RTHAFUJDn0A[/YOUTUBE]​
7.1. Free Pascal Tutorial 7 Part 1 of 2 - Guess My Number - Lazarus
[YOUTUBE]qUW72geYkLA[/YOUTUBE]​
7.2. Free Pascal Tutorial 7 Part 2 of 2 - Guess My Number - Lazarus
[YOUTUBE]Dza-0EZPFuA[/YOUTUBE]​
8. Free Pascal Tutorial 8 - Case Statements - Lazarus
[YOUTUBE]pMr2xtUu3x0[/YOUTUBE]​
9. Free Pascal Tutorial 9 - Arrays - Lazarus
[YOUTUBE]3XuiWUzL76w[/YOUTUBE]​
10. Free Pascal Tutorial 10 - Multi-Dimensional Arrays (Matrix) - Lazarus
[YOUTUBE]JNmZvdTKWrQ[/YOUTUBE]​
11. Free Pascal Tutorial 11 - Procedures - Lazarus
[YOUTUBE]3Quw55ryTjI[/YOUTUBE]​
12. Free Pascal Tutorial 12 - Functions - Lazarus
[YOUTUBE]fB8TVLb4fiY[/YOUTUBE]​
13. Free Pascal Tutorial 13 - On the Record - Lazarus
[YOUTUBE]IsdyzsUpjUM[/YOUTUBE]​
14. Free Pascal Tutorial 14 - Records For Role Playing Games - Lazarus
[YOUTUBE]oiiT1CPkykg[/YOUTUBE]​
15. Free Pascal Tutorial 15 - Starting Windows, Mac and Linux GUI Programming - Lazarus
[YOUTUBE]CkQoYFRQRIE[/YOUTUBE]​
16. Free Pascal Tutorial 16 - Events and Properties - Lazarus
[YOUTUBE]4Q0WmWouwsU[/YOUTUBE]​
17. Free Pascal Tutorial 17 - Programming The Meaning Of Life - Lazarus
[YOUTUBE]BbCk_-zHgHM[/YOUTUBE]​
18. Free Pascal Tutorial 18 - Hungarian Notation and Creating the GUI Window - Lazarus
[YOUTUBE]dinNjQ8wFZA[/YOUTUBE]​
19. Free Pascal Tutorial 19 - String Conversions - Lazarus
[YOUTUBE]fBQaEHnjd1k[/YOUTUBE]​
20. Free Pascal Tutorial 20 - RadioButtons - Lazarus
[YOUTUBE]9OWiCewYZHo[/YOUTUBE]​
21. Free Pascal Tutorial 21 - Error Handling Try Except - Lazarus
[YOUTUBE]fcw0_miKCb4[/YOUTUBE]​
22. Free Pascal Tutorial 22 - System Timer - Lazarus - Programming On The Mac
[YOUTUBE]BiBdKwYn99o[/YOUTUBE]​
23. Free Pascal Tutorial 23 - Parallel Arrays - Lazarus on Mac
[YOUTUBE]7IEpIEzZJak[/YOUTUBE]​
24. Free Pascal Tutorial 24 - Quick Clock Quizzer Overview - Lazarus
[YOUTUBE]rctbsPfGR1I[/YOUTUBE]​
25. Free Pascal Tutorial 25 - Canvas Drawing With Pen, Brush and Colors - Quick Clock Quizzer - Lazarus
[YOUTUBE]Q3BqEpmQZls[/YOUTUBE]​
26. Free Pascal Tutorial 26 - Randomizing Clock Hands - Quick Clock Quizzer - Lazarus
[YOUTUBE]Uqs_PeFqeLo[/YOUTUBE]​
27.1. Free Pascal Tutorial 27 (1/2) - User Input and Tabs - Quick Clock Quizzer - Lazarus
[YOUTUBE]_2Fs5TIezAA[/YOUTUBE]​
27.2. Free Pascal Tutorial 27 (2/2) - User Input and Tabs - Quick Clock Quizzer - Lazarus
[YOUTUBE]tE0fjTDJ9nQ[/YOUTUBE]​
28. Free Pascal Tutorial 28 - Sound and Music - Quick Clock Quizzer - Lazarus
[YOUTUBE]0E1_nGByIpk[/YOUTUBE]​
29. Free Pascal Tutorial 29 - Making A Splash Screen - Quick Clock Quizzer - Lazarus
[YOUTUBE]lwtcCBUHH-k[/YOUTUBE]​
30. Free Pascal Tutorial 30 - Changing Cursors and Muting Sound - Quick Clock Quizzer - Lazarus
[YOUTUBE]54Iu6bfjZiI[/YOUTUBE]​
31. Free Pascal Tutorial 31 - Adding An Icon To The Application - Quick Clock Quizzer - Lazarus
[YOUTUBE]wwflZBK2m4Y[/YOUTUBE]​
32. Free Pascal Tutorial 32 - Wrap Up and Program Properties - Quick Clock Quizzer - Lazarus
[YOUTUBE]8txf3E2Agao[/YOUTUBE]

------THE END------​
 

AntiCr@ck

Member Tích Cực
Tham gia
28/3/12
Bài viết
192
Thích
93
Nơi ở
Biên hòa-Đồng Nai
#5
Trình dịch pascal mới àk, giao diện có vẻ mượt hơn nhiều đây, để test thử xem
Dịch bằng FreePascal mà, mội trường lập trình, giao diện khác thui....
 

xdhcda

Moderator
Tham gia
15/3/12
Bài viết
1,252
Thích
527
#10
DEMO :


Code:

Mã:
program loffb;
uses keyboard, video, sysutils;
var
  h : array [1..8] of integer;
  dcode : string = 'qwertyui';
  icode : string = 'asdfghjk';
  sum : integer;

  sumlimit : integer = 80;
  collimit : integer = 20;

  fgameover : boolean = false;
  point : integer = 0;
  pausetime : integer = 1000;

Procedure TextOut(X,Y : Word; s : char; c : byte);
var p : integer;
Begin
  P:=((X-1)+(Y-1)*ScreenWidth);
  VideoBuf^[P]:=Ord(S)+(c shl 8);
End;

Procedure TextOut(X,Y : Word; Const S : String);
Var
  W,P,I,M : Word;
begin
  P:=((X-1)+(Y-1)*ScreenWidth);
  M:=Length(S);
  If P+M>ScreenWidth*ScreenHeight then
    M:=ScreenWidth*ScreenHeight-P;
  For I:=1 to M do
    VideoBuf^[P+I-1]:=Ord(S[i])+($07 shl 8);
end;

Procedure Draw;
var
  i,j : integer;
  oy : integer;
Begin
  oy := collimit +3;

  for i := 1 to 8 do
  Begin
    TextOut(i*4, 1, dcode[i], $09);
    TextOut(i*4, 2, icode[i], $0A);
    TextOut(60 ,10, IntToStr(Point));

    {background}
    for j := -collimit to collimit do
    Begin
      TextOut(i*4-1,oy+j,#176,$25);
      TextOut(i*4  ,oy+j,#176,$25);
      TextOut(i*4+1,oy+j,#176,$25);
    End;

    {under}
    for j := 1 to h[i] do
    Begin
      TextOut(i*4-1,oy+j,#176,$19);
      TextOut(i*4  ,oy+j,#176,$19);
      TextOut(i*4+1,oy+j,#176,$19);
    End;

    {above}
    for j := h[i] to -1 do
    Begin
      TextOut(i*4-1,oy+j,#176,$19);
      TextOut(i*4  ,oy+j,#176,$19);
      TextOut(i*4+1,oy+j,#176,$19);
    End;

  End;

  for i := 1 to sum do
  TextOut(i, ScreenHeight, #178, $3C);

  for i := sum +1 to sumlimit do
  TextOut(i, ScreenHeight, #178, $2E);

  UpdateScreen(false);
End;

Procedure Check;
var
  r : integer = 0;
  i : integer;
Begin
  for i := 1 to 8 do
  if abs(h[i]) >= collimit
  then fgameover := true
  else r += abs(h[i]);

  sum := r;
  if sum >= sumlimit then fgameover := true;
End;

Procedure Increase;
var i: integer;
Begin
  i := random(7) +1;
  if h[i] >= 0
  then h[i] += 1
  else h[i] -= 1;
  Check;
End;

Procedure Decrease(c : char);
var i : integer;
Begin
  for i := 1 to 8 do
  if dcode[i] = c then
  Begin
    if h[i] > 0 then point += 1;
    h[i] -= 1
  end
  else if icode[i] = c then
  Begin
    if h[i] < 0 then point += 1;
    h[i] += 1;
  End;
  Check;
End;

Procedure Prepare;
var T : TVideoMode;
Begin
  InitKeyboard;
  T.Col := 80;
  T.Row := 43;
  T.Color := true;
  randomize;
  InitVideo;
  SetVideoMode(T);
End;

{
Procedure Init;
Begin
  InitVideo;
  InitKeyboard;
End;}

Procedure Done;
Begin
  DoneVideo;
  DoneKeyboard;
End;

Procedure Control;
var
  k : tkeyevent;
  c : char;
Begin
  repeat
    k := getkeyevent;
    k := translatekeyevent(k);
    c := GetKeyEventChar(k);

    case c of
      'i' : increase;
      'd' : draw;
    end;

    decrease(c);
  until c = 'q';
End;

function AutoIncrease(p : pointer) : ptrint;
Begin
  repeat
    sleep(pausetime div 10);
    pausetime -= 1;
    Increase;
    Draw;
  until fgameover;
End;

function AutoGetcmd(p : pointer) : ptrint;
var
  k : tkeyevent;
  c : char;
Begin
  repeat
    k := getkeyevent;
    k := translatekeyevent(k);
    c := GetKeyEventChar(k);
    decrease(c);
    if c = 'x' then halt;
    Draw;
  until fgameover;
End;

Procedure OnGameOver;
var i,j : integer;
Begin
  for i := 10 to 30 do
  for j := 1 to ScreenWidth do
  Begin
    TextOut(j,i,' ',$00);
    UpdateScreen(false);
  End;
  TextOut(10,20,'GameOver : '+IntToStr(point));
  UpdateScreen(false);
  repeat sleep(1) until false;
End;

Procedure Autorun;
Begin
  BeginThread(@AutoGetcmd);
  BeginThread(@AutoIncrease);
  repeat until fgameover;
  OnGameOver;
End;

Begin
  writeln('Press Enter to start...');
  readln;
  Prepare;
  { Init; }
  { Control; }
  Autorun;
  Done;
End.
 

xdhcda

Moderator
Tham gia
15/3/12
Bài viết
1,252
Thích
527
#16
Sao giỏi thế nhỉ! Công nhận bác có nhiều tài hay ra phết....:D:D:D
Thanks anh em đã quá lời.
Mình chỉ có một lời khuyên cho anh em là. không cần tin bố con thằng nào cả. tự mình trải nghiệm mọi thứ tự dưng sẽ thấy có nhiều cái kết hợp lại với nhau ra một chiêu hay
 

MrKing

Thành Viên Cống Hiến
Tham gia
5/2/12
Bài viết
902
Thích
382
Nơi ở
Đang xem tui ở đâu àh!
#17
Thanks anh em đã quá lời.
Mình chỉ có một lời khuyên cho anh em là. không cần tin bố con thằng nào cả. tự mình trải nghiệm mọi thứ tự dưng sẽ thấy có nhiều cái kết hợp lại với nhau ra một chiêu hay
Điều đó là đương nhiên rồi!:-bd
 

Bài xem nhiều

Chia sẻ kiến thức - Download phần mềm