| | Kỹ thuật lập trình Delphi | |
|
| Tác giả | Thông điệp |
|---|
temp Quản Trị Cao Cấp

 Tổng số bài gửi: 50 Age: 27 Nghề nghiệp: (Student,..): khong Môn thể thao yêu thích: (football,..): foolball Điểm năng động tích lũy: 23 Registration date: 16/11/2008
 | Tiêu đề: Kỹ thuật lập trình Delphi Sat 7 Nov 2009 - 21:18 | |
| Chuyên mục này tớ viết ít bài về kỹ thuật lập trình Delphi nhằm giúp các bạn có thêm chút ít kinh nghiệm trong kỹ thuật lập trình. Làm thế nào copy Desktop vào chương trình của bạn? Code : - Đầu tiên bạn kéo 1 nút Button vào Form và 1 Paintbox. - Tiếp theo bạn đúp đôi chuột vào nút Button, đặt vào đó đoạn code sau : procedure TForm1.Button1Click(Sender: TObject); // đoạn thêm vào var DeskTop : TCanvas ; // kết thúc đoạn thêm vào begin //đoạn thêm vào DeskTop := TCanvas.Create ; try with DeskTop do Handle := GetWindowDC (GetDesktopWindow) ; with PaintBox1.Canvas do CopyRect (Rect (0, 0, 800, 600), DeskTop, Rect (0, 0, 800, 600)) finally DeskTop.Free end; // kết thúc đoạn thêm vào End. Link vi du : rapidshare.com rapidshare.comCapture.exe.htmlThủ thuật thứ 2 : Làm thế nào để biết máy đang kết nối vào Internet? Dễ lắm cứ theo tôi thì thấy. - Đầu tiên bạn đưa vào form 1 nút Button. sau đó bạn nhấp đôi chuột trái vào nút Button và gõ đoạn code sau : Khai báo thư viện cần dùng dưới dòng implementation: implementation function InetIsOffline(Flag: Integer): Boolean; stdcall; external 'URL.DLL';procedure TForm1.Button1Click(Sender: TObject); begin // đoạn thêm vào if InetIsOffline(0) then ShowMessage('Chà chà mình không kết nối được vào internet rồi!') else ShowMessage ('Thích quá lướt Web thôi.'); // kết thúc đoạn thêm vào end; link vi du : rapidshare.com rapidshare.comcheckto.exe.htmlRun cái thử xem, bạn thấy ngay kết quả.
Được sửa bởi temp ngày Wed 11 Nov 2009 - 11:25; sửa lần 1. |
|
 | |
Nguyễn Thanh Nghị Quản Trị Cao Cấp


 Tổng số bài gửi: 427 Age: 4 Điểm năng động tích lũy: 191 Registration date: 22/01/2008
 | Tiêu đề: Re: Kỹ thuật lập trình Delphi Sat 7 Nov 2009 - 21:36 | |
| Cảm ơn anh Triều đã tâm huyết với anh em. Đàn em thay mặt những anh em khác xin ghi nhận đóng góp của bác. |
|
 | |
temp Quản Trị Cao Cấp

 Tổng số bài gửi: 50 Age: 27 Nghề nghiệp: (Student,..): khong Môn thể thao yêu thích: (football,..): foolball Điểm năng động tích lũy: 23 Registration date: 16/11/2008
 | Tiêu đề: Re: Kỹ thuật lập trình Delphi Sun 8 Nov 2009 - 11:11 | |
| Thủ thuật 3: Làm thế nào để biết Ver của I.E ? - Bạn kéo 1 nút button vào form và khai báo trong phần Uses thêm thư viện Registry- gõ thêm đoạn code sau để lấy Version của I.E dưới mục implementation: // đoạn thêm vào function GetIEVersion(Key: string): string; var Reg: TRegistry; begin Reg := TRegistry.Create; try Reg.RootKey := HKEY_LOCAL_MACHINE; Reg.OpenKey('Software\Microsoft\Internet Explorer', False); try Result := Reg.ReadString(Key); except Result := ''; end; Reg.CloseKey; finally Reg.Free; end; end; //kết thúc đoạn thêm vào - Nhấp đôi chuột trái vào nút buton và đưa vào đoạn code sau : procedure TForm1.Button1Click(Sender: TObject); begin //đoạn thêm vào ShowMessage('IE-Version: ' + GetIEVersion('Version')); // kết thúc đoạn thêm vào end; link vi du : rapidshare.com rapidshare.comVer_IE.exe.htmlThủ thuật 4 : Làm thế nào để download file từ Interner ? - Bạn thêm vào 2 thư viện trong phần Uses URLMon, ShellApi - Viết hàm Download file :
function DownloadFile(SourceFile, DestFile: string): Boolean; begin try Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0; except Result := False; end; end;
- Kéo nút button vào trên form-->nhấp đôi chuột trái trên button và viết đoạn code sau :
procedure TForm1.Button1Click(Sender: TObject); const // địa chỉ file cần lấy SourceFile = 'http://www.google.com/intl/de/images/home_title.gif'; // lưu file lại ở đây DestFile = 'c:\temp\google-image.gif'; begin if DownloadFile(SourceFile, DestFile) then begin ShowMessage('Download hoàn thành!'); ShellExecute(Application.Handle, PChar('open'), PChar(DestFile), PChar(''), nil, SW_NORMAL) end else ShowMessage('Lỗi trong khi download file ' + SourceFile) end;
link vi du (down mặc định file VD1.exe lên Disk C): rapidshare.com rapidshare.comDownload_File.exe.html
Được sửa bởi temp ngày Wed 11 Nov 2009 - 11:28; sửa lần 1. |
|
 | |
hoangvantho Quản Trị Cao Cấp


 Tổng số bài gửi: 179 Age: 26 Đến từ:(NTU,...): Nha Trang University Nghề nghiệp: (Student,..): Engineer Môn thể thao yêu thích: (football,..): FootBall Điểm năng động tích lũy: 107 Registration date: 29/01/2008
 | Tiêu đề: Re: Kỹ thuật lập trình Delphi Mon 9 Nov 2009 - 8:23 | |
| Cái này hay ghê. Không biết bác temp mất bao lâu mới làm được nhỉ? Bác có thể chỉ cụ thể hơn thao tác mình có thể làm được các thủ thuật trên sau khi đã có chương trình không?
Hy vọng là bác có thêm nhiều phần tiện ích hay hơn! Cám ơn bác đã đóng góp cho diễn đàn! |
|
 | |
temp Quản Trị Cao Cấp

 Tổng số bài gửi: 50 Age: 27 Nghề nghiệp: (Student,..): khong Môn thể thao yêu thích: (football,..): foolball Điểm năng động tích lũy: 23 Registration date: 16/11/2008
 | Tiêu đề: Re: Kỹ thuật lập trình Delphi Mon 9 Nov 2009 - 9:04 | |
| | hoangvantho đã viết: | Bác có thể chỉ cụ thể hơn thao tác mình có thể làm được các thủ thuật trên sau khi đã có chương trình không?
|
Câu hỏi trên có phải bạn muốn tôi chỉ rõ cách viết code như thế nào khi đã cài trình biên dịch Delphi trên máy phải không? Nếu đúng thế thì các bài hướng dẫn trên đã rất cụ thể rồi.Bạn cứ khởi động Delphi tạo 1 application mới sẽ thấy ngay các component đã có trước của Delphi, phần còn lại bạn chỉ việc kéo thả vào form và viết code thôi. |
|
 | |
hoangvantho Quản Trị Cao Cấp


 Tổng số bài gửi: 179 Age: 26 Đến từ:(NTU,...): Nha Trang University Nghề nghiệp: (Student,..): Engineer Môn thể thao yêu thích: (football,..): FootBall Điểm năng động tích lũy: 107 Registration date: 29/01/2008
 | Tiêu đề: Re: Kỹ thuật lập trình Delphi Mon 9 Nov 2009 - 10:36 | |
| Không. Ý em là sau khi bác đã viết xong chương trình và tạo thành file .exe thì em sài thế nào đó chứ. Nếu có bác share cho em mấy tiện ích nhỏ này chứ ạ? Thanks! |
|
 | |
temp Quản Trị Cao Cấp

 Tổng số bài gửi: 50 Age: 27 Nghề nghiệp: (Student,..): khong Môn thể thao yêu thích: (football,..): foolball Điểm năng động tích lũy: 23 Registration date: 16/11/2008
 | Tiêu đề: Re: Kỹ thuật lập trình Delphi Mon 9 Nov 2009 - 11:13 | |
| | hoangvantho đã viết: | | Không. Ý em là sau khi bác đã viết xong chương trình và tạo thành file .exe thì em sài thế nào đó chứ. Nếu có bác share cho em mấy tiện ích nhỏ này chứ ạ? Thanks! |
Bạn cứ làm y như trên sau đó biên dịch nó sẽ là file exe chạy độc lâp (cả nền 32 bit và 64 bit).Một lưu ý nhỏ là đối với Delphi khi bạn chạy chương trình tự động nó sẽ biên dịch ra file exe ngay thời điểm đó luôn.Điểm tiện ích lớn nhất của Delphi là khi chạy chỉ cần 1 file độc lập không cần hỗ trợ thêm các OCX hoặc Framework (nếu như bạn dùng Ver 6.0 hoặc 7.0). Các bài viết sau tôi sẽ đính kèm file biên dịch để các bạn chạy thử sau mỗi thủ thuật (mục đích để các bạn chưa cài được trình biên dịch có thể chạy nó) |
|
 | |
temp Quản Trị Cao Cấp

 Tổng số bài gửi: 50 Age: 27 Nghề nghiệp: (Student,..): khong Môn thể thao yêu thích: (football,..): foolball Điểm năng động tích lũy: 23 Registration date: 16/11/2008
 | Tiêu đề: Re: Kỹ thuật lập trình Delphi Tue 10 Nov 2009 - 8:54 | |
| Còn rất nhiều bạn còn thắc mắc và nghi ngờ về ngôn ngữ này. Tiện đây tôi sẽ viết các ví dụ nhỏ về khả năng của nó cho các bạn thấy và mong rằng các bạn sẽ thấy được thế mạnh của ngôn ngữ này. Tôi mong rằng các bạn hãy nghiên cứu lệnh cơ bản và cú pháp của nó một cách nghiêm túc, vì ở chuyên mục này tôi không nhắc lại về các cú pháp và lệnh của nó (điều này làm mất thời gian). Tôi hy vọng rằng thời sau với sự ham học hỏi của các bạn (cũng là nguồn động viên cổ vũ cho tôi) các bạn thừa khả năng tự xây dựng cho mình các soft riêng phục vụ cho ngành. Các ví dụ về đồ họa của ngôn ngữ Delphi. các ví dụ dưới đây được tôi xây dựng hoàn toàn bằng ngôn ngữ Delphi Ver 6.0 (các bạn nên cài nó vì là chuẩn nhất trong các Ver của nó). Tôi đã biên dịch thành file chạy, mục đích cho các bạn chưa có điều kiện cài trình biên dịch của nó có thể chạy được nó. Các mã nguồn tôi sẽ trình bày cho các bài viết sau trong chuyên mục này. link ví dụ 1 : http://rapidshare.com/files/304753959/VD1.exe.html link vi du 2 : http://rapidshare.com/files/304754327/VD2.exe.html link ví dụ 3 : http://rapidshare.com/files/304754553/VD3.exe.html link ví du 4 : http://rapidshare.com/files/304754821/VD4.exe.html link ví dụ 5 (bạn giải nén và để các file ảnh chung thư mục file chạy): http://rapidshare.com/files/304755017/VD5.rar.html link ví dụ 6 : http://rapidshare.com/files/304755313/VD6.exe.html link ví dụ 7 (bạn giải nén và để các file ảnh chung thư mục file chạy): http://rapidshare.com/files/304755596/VD_7.rar.html Nếu thời gian cho phép, từ từ tôi cũng sẽ hướng dẫn các bạn về kỹ thuật điện tử số cũng như các ngôn ngữ lập trình khá mạnh khác như : c#, Lisp và Autoit (Anh bạn này là ngôn ngữ mô tả nhưng cực kỳ mạnh có thể các bạn còn chưa biết đến nó). Thân chào, Phan Hải Triều. |
|
 | |
Nguyễn Thanh Nghị Quản Trị Cao Cấp


 Tổng số bài gửi: 427 Age: 4 Điểm năng động tích lũy: 191 Registration date: 22/01/2008
 | Tiêu đề: Re: Kỹ thuật lập trình Delphi Tue 10 Nov 2009 - 18:50 | |
| hic, kỹ thuật lập trình của anh Triều đã đạt tới cảnh giới rồi, đàn em phục sát đất. Hi vọng thời gian tới được anh chỉ bảo nhiều. hic hic |
|
 | |
VTT Group Quản Trị Cao Cấp


 Tổng số bài gửi: 989 Age: 26 Đến từ:(NTU,...): NTU Nghề nghiệp: (Student,..): Ship's Designer Môn thể thao yêu thích: (football,..): Sports Điểm năng động tích lũy: 1001 Registration date: 26/12/2007
 | Tiêu đề: Re: Kỹ thuật lập trình Delphi Tue 10 Nov 2009 - 18:57 | |
| Hic, bai phục, bái phục. Không ngờ delphi hay thế, có thời gian em cũng sẽ cố gắng mò nó thôi. Quá hay ! Thanks Mr. temp |
|
 | |
tanminh49dt Ban Điều Hành


 Tổng số bài gửi: 184 Age: 23 Đến từ:(NTU,...): NTU Nghề nghiệp: (Student,..): Student Môn thể thao yêu thích: (football,..): volleyball Điểm năng động tích lũy: 313 Registration date: 30/10/2008
 | Tiêu đề: Re: Kỹ thuật lập trình Delphi Tue 10 Nov 2009 - 22:23 | |
| Thật sự tuyệt quá ,hay quá đi mất.Không biết học cái này khó lắm không bác Triều .Bác đúng là pro quá,thank.... |
|
 | |
temp Quản Trị Cao Cấp

 Tổng số bài gửi: 50 Age: 27 Nghề nghiệp: (Student,..): khong Môn thể thao yêu thích: (football,..): foolball Điểm năng động tích lũy: 23 Registration date: 16/11/2008
 | Tiêu đề: Re: Kỹ thuật lập trình Delphi Wed 11 Nov 2009 - 14:16 | |
| Tôi có làm một ví dụ nhỏ để mô phỏng vật chuyển động trên nước. Nếu như các bạn đã nắm vững được ngôn ngữ này các bạn có thể xây dựng con tàu của "riêng các bạn" hoạt động trên biển... và phát triển theo nhiều hướng khác nữa đây là link ví dụ mô phỏng nhỏ : rapidshare.com rapidshare.comMP_Bien.rar.html |
|
 | |
temp Quản Trị Cao Cấp

 Tổng số bài gửi: 50 Age: 27 Nghề nghiệp: (Student,..): khong Môn thể thao yêu thích: (football,..): foolball Điểm năng động tích lũy: 23 Registration date: 16/11/2008
 | Tiêu đề: Re: Kỹ thuật lập trình Delphi Fri 13 Nov 2009 - 20:13 | |
| Thủ thật 5 : làm thế nào chuyển đổi file dạng *.swf (Flash file) sang file *.exe? Đầu tiên bạn viết thêm hàm chuyển đổi :
function Swf2Exe(S, D, F: string): string; //S = File nguồn (swf) //D = File đích (exe) //F = Cờ nhận biết Flash file varSourceStream, DestinyStream, LinkStream: TFileStream; flag: Cardinal; SwfFileSize: Integer; beginResult := 'Lỗi không làm gì'; DestinyStream := TFileStream.Create(D, fmCreate); tryLinkStream := TFileStream.Create(F, fmOpenRead or fmShareExclusive); tryDestinyStream.CopyFrom(LinkStream, 0); finallyLinkStream.Free; end;
SourceStream := TFileStream.Create(S, fmOpenRead or fmShareExclusive); tryDestinyStream.CopyFrom(SourceStream, 0); flag := $FA123456; DestinyStream.WriteBuffer(flag, SizeOf(Integer)); SwfFileSize := SourceStream.Size; DestinyStream.WriteBuffer(SwfFileSize, SizeOf(Integer)); Result := ''; finallySourceStream.Free; end; finallyDestinyStream.Free; end; end;
Sau đó kéo nút button vào Form và viết thêm đoạn code :
procedure TForm1.Button1Click(Sender: TObject); beginSwf2Exe('c:\VD.swf', 'c:\VD.exe', 'c:\Program Files\Macromedia\Flash MX\Players\SAFlashPlayer.exe'); end;
|
|
 | |
temp Quản Trị Cao Cấp

 Tổng số bài gửi: 50 Age: 27 Nghề nghiệp: (Student,..): khong Môn thể thao yêu thích: (football,..): foolball Điểm năng động tích lũy: 23 Registration date: 16/11/2008
 | Tiêu đề: Re: Kỹ thuật lập trình Delphi Sat 14 Nov 2009 - 13:15 | |
| Hôm nay rảnh chút, tớ viết thêm cho các bạn đoạn code nhỏ về mã hóa.
Thủ thuật 6 : Làm cách nào mã hóa và giải mã file hoặc chuổi? Bạn bắt tay vào viết hàm mã hóa sau :
Khai báo thêm kiểu dữ liệu type TWordTriple = Array[0..2] of Word;
Hàm mã hóa như sau : function MemoryEncrypt(Src: Pointer; SrcSize: Cardinal; Target: Pointer; TargetSize: Cardinal; Key: TWordTriple): boolean; var pIn, pOut: ^byte; i : Cardinal; begin if SrcSize = TargetSize then begin pIn := Src; pOut := Target; for i := 1 to SrcSize do begin pOut^ := pIn^ xor (Key[2] shr 8); Key[2] := Byte(pIn^ + Key[2]) * Key[0] + Key[1]; inc(pIn); inc(pOut); end; Result := True; end else Result := False; end;
function TextCrypt(const s: string; Key: TWordTriple; Encrypt: Boolean): string; var bOK: Boolean; begin SetLength(Result, Length(s)); if Encrypt then bOK := MemoryEncrypt(PChar(s), Length(s), PChar(Result), Length(Result), Key) else bOK := MemoryDecrypt(PChar(s), Length(s), PChar(Result), Length(Result), Key); if not bOK then Result := ''; end;
function TextEncrypt(const s: string; Key: TWordTriple): string; begin Result := TextCrypt(s, Key, True); end;
Thêm vào form nút button và đoạn lệnh sau : procedure TForm1.Button1Click(Sender: TObject); var s: TWordTriple; //đoạn thêm begin edit2.text:= TextEncrypt(edit1.Text,s); //chuổi mã hóa lưu tại Edit2 end;
Tương tự hàm giải mã được viết như sau : function MemoryDecrypt(Src: Pointer; SrcSize: Cardinal; Target: Pointer; TargetSize: Cardinal; Key: TWordTriple): boolean; var pIn, pOut: ^byte; i : Cardinal; begin if SrcSize = TargetSize then begin pIn := Src; pOut := Target; for i := 1 to SrcSize do begin pOut^ := pIn^ xor (Key[2] shr 8); Key[2] := byte(pOut^ + Key[2]) * Key[0] + Key[1]; inc(pIn); inc(pOut); end; Result := True; end else Result := False; end;
function TextDecrypt(const s: string; Key: TWordTriple): string; begin Result := TextCrypt(s, Key, False); end;
Để mã hóa file, các bạn có thể làm tương tự. |
|
 | |
heenoowoon Thành Viên Mới

 Tổng số bài gửi: 1 Age: 23 Đến từ:(NTU,...): việt nam Nghề nghiệp: (Student,..): student Môn thể thao yêu thích: (football,..): football Điểm năng động tích lũy: 1 Registration date: 21/07/2011
 | Tiêu đề: Re: Kỹ thuật lập trình Delphi Thu 21 Jul 2011 - 9:15 | |
| cho em hỏi cách cài đặt bộ tools của delphi 7, từng bước cụ thể, và có thể cho em luôn bộ nguồn cài đặt và bộ tools mới ạh, thank |
|
 | |
| | Kỹ thuật lập trình Delphi | |
|