AI muốn lập trình DLL cho Excel và các loại bằng Delphi thì xem video này nhé!

Liên hệ QC

Nguyễn Duy Tuân

Nghị Hách
Thành viên danh dự
Tham gia
13/6/06
Bài viết
4,649
Được thích
10,138
Giới tính
Nam
Nghề nghiệp
Giáo viên, CEO tại Bluesofts
Lần chỉnh sửa cuối:
Sao viết đã tối qua xong xóa đi vậy .... ===\. ;) Mạnh cảm ơn he ( Cái nội dung thì cũng coi hết tối qua ròi )
mà thui khi nào có đi qua Bình Dương nhớ Alo Mạnh đón nhậu vài lon là ok ròi đó
Mạnh nhiều lúc rất rảnh nhiều lúc lu xu bu phê vãi luôn .... mà đang 1 mình làm giám đốc kim tạp vụ ròi ko lẻ đi học thêm code nữa sao -0-0-0-
Kế toán thì thuê dịch vụ tháng 2 triệu nó lo hết rồi ... phần còn lại tự lo !!??
 
Lần chỉnh sửa cuối:
Upvote 0
Sao viết đã tối qua xong xóa đi vậy .... ===\. ;) Mạnh cảm ơn he ( Cái nội dung thì cũng coi hết tối qua ròi )
mà thui khi nào có đi qua Bình Dương nhớ Alo Mạnh đón nhậu vài lon là ok ròi đó
Mạnh nhiều lúc rất rảnh nhiều lúc lu xu bu phê vãi luôn .... mà đang 1 mình làm giám đốc kim tạp vụ ròi ko lẻ đi học thêm code nữa sao -0-0-0-
Kế toán thì thuê dịch vụ tháng 2 triệu nó lo hết rồi ... phần còn lại tự lo !!??
Chà em mới biết anh làm giám đốc đó===\.
Làm giám đốc rảnh rổi quá đây mà, không có việc gì làm nên mò CODE để nhân viên khỏi qua mặt đúng không -.,\;-.,\;-.,\;-.,\;-.,\;.
Tuyển em về làm Kế Toán đi ***&&%***&&%***&&%***&&%***&&%
 
Upvote 0
Chà em mới biết anh làm giám đốc đó===\.
Làm giám đốc rảnh rổi quá đây mà, không có việc gì làm nên mò CODE để nhân viên khỏi qua mặt đúng không -.,\;-.,\;-.,\;-.,\;-.,\;.
Tuyển em về làm Kế Toán đi ***&&%***&&%***&&%***&&%***&&%
Mò code để mạnh ứng dụng vào công việc của mình đó ... và là thú vui tiêu kiển đó thôi ... chứ thực ra với kiến thức VBA của Mạnh là cũng xử lý tốt nhiều thứ rồi

Mạnh chơi VBA giống như Ông già chơi cá cảnh thanh long ấy ... buộc cái lông gà treo trên tủ cá xong ngắn cá nó lao lên đớp hụt và quậy đuôi là vui rồi xong lâu lâu ko thấy thế là thấy buồn ... ròi lại mò cách làm sao cho nó vui trở lại xong cũng ko giải quyết vấn đề chi cả

Mạnh có sống trên từng dòng code và viết cho ai cái gì đâu .... tiêu kiển đam mê quậy cho nó vui như ông già ngắn cá cảnh vậy thôi ;)
 
Upvote 0
Nhà bán Sim có điều kiện mà kiêu tặng muội muội cái sim số đẹp, phong thủy mà hông tặng. Em giận $$$$@$$$$@$$$$@$$$$@$$$$@
 
Upvote 0
Viết hàm cho VBA thì như vậy là "vô tư" dùng không lo leak memory. Tuy nhiên những hàm dạng này nếu dùng lẫn trong Delphi thì Delphi Coder phải nhớ mà SysFreeString không thì leak. Delphi lại không tự free loại này !/?.
Làm sao debug release được leak memory vậy anh. Dùng widestring có cần phải SysFreeString không anh?
 
Upvote 0
Làm sao debug release được leak memory vậy anh. Dùng widestring có cần phải SysFreeString không anh?

Ý của mình ở trên là lưu ý thôi. Bất kể hàm nào nếu kết quả trả về là chuỗi được cấp phát bởi SysAllocString thì nơi sử dụng hàm đó phải SysFreeString. Do String trong VBA luôn là PWideChar/WideString nên nó tự free cho mình nên không lo. Chỉ khi dùng Delphi mới cần phải Free, các ngôn ngữ khác cũng thế. Nếu hàm chỉ viết chạy trong Delphi, chỉ dùng kiểu WideString, String thì Delphi tự giải phóng cho mình.
 
Upvote 0
Máy hôm nay em cứ lăn tăn cái lỗi của anh @ThangCuAnh nhắc đến mà không biết cách nào để kiểm tra
 
Upvote 0
Máy hôm nay em cứ lăn tăn cái lỗi của anh @ThangCuAnh nhắc đến mà không biết cách nào để kiểm tra

Tôi không hiểu ý bác ấy nói về code nào. Code hàm tôi viết MyTypeName biên dịch lại chạy chuẩn. Tôi đã test từ Excel XP đến Excel 2019,365 32 và 64 bit. Bạn nào chạy lỗi thì chụp hình bào giúp nhé. Chắc chắn không leak memory gì hết vì tôi chặn hết rồi. Còn vấn đề khác nếu lỗi thì Excel bị crash ngay. Tóm lại code hàm MyTypeName của tôi gửi tặng mọi người bản thân tôi đã dành time test rất kỹ trên các môi trường, các kịch bản test mà tôi đưa ra đã đối chiếu với các tính năng hàm TypeName của VBA. không có lỗi gì và chỉ cần copy biên dịch là chạy. Ai thấy lỗi báo hiện tượng tôi sẽ kiểm tra là xong thôi.
 
Upvote 0
Tôi không hiểu ý bác ấy nói về code nào. Code hàm tôi viết MyTypeName biên dịch lại chạy chuẩn. Tôi đã test từ Excel XP đến Excel 2019,365 32 và 64 bit. Bạn nào chạy lỗi thì chụp hình bào giúp nhé. Chắc chắn không leak memory gì hết vì tôi chặn hết rồi. Còn vấn đề khác nếu lỗi thì Excel bị crash ngay. Tóm lại code hàm MyTypeName của tôi gửi tặng mọi người không có lỗi gì và chỉ cần copy biên dịch là chạy. Ai thấy lỗi báo hiện tượng tôi sẽ kiểm tra là xong thôi.
Em chạy thì thấy cũng không lỗi gì hết. Mà lên mạng tìm hiểu cái vụ leak memory cũng thấy nghiêm trọng.
 
Upvote 0
Em chạy thì thấy cũng không lỗi gì hết. Mà lên mạng tìm hiểu cái vụ leak memory cũng thấy nghiêm trọng.

Học lập trình API, để gửi nhận giá trị với các môi trường ngoài thì việc đó là phải rất cẩn thận. Nắm chắc nguyên lý làm việc của ngôn ngữ lập trình, đọc thật kỹ tài liệu gốc nói về những cái mình dùng. Ví dụ hàm GetDomentation() nhà sản xuất viết

Remarks
The function GetDocumentation provides access to the documentation for the member specified by the memidparameter. If the passed-in memid is MEMBERID_NIL, then the documentation for the type description is returned.

If the type description inherits from another type description, this function is recursive to the base type description, if necessary, to find the item with the requested member ID.

The caller should use SysFreeString to free the BSTRs referenced by pBstrName, pBstrDocString, and pBstrHelpFile.

Nên trong code tôi phải viết
if hr = S_OK then
begin
TypeInfo.GetDocumentation(MEMBERID_NIL, @s, nil, nil, nil);
TypeInfo._Release;
tmp := AnsiString(s);
SysFreeString(s);
end;

Bạn xem kỹ từng dòng lệnh trong hàm MyTypeName tôi viết thấy không thiếu một dòng nào đâu.

Kỹ thuật lập trình Delphi có nhiều level lắm, cũng như lập trình VBA thôi. Những gì can thiệp vào API là không dễ chút nào, nhìn code vậy thôi nhưng mỗi một dòng code khi viết ra phải đọc và thấm từ tài liệu gốc của "nhà sản xuất" đó. Bản thân tôi viết Add-in A-Tools bằng Delphi, nếu không dày công liên tục học và ngấm các vấn đề nguyên lý object, data, memory (ít nhất trong phạm vi ứng dụng của mình) thì không có chuyện chạy nhanh với chậm đâu, khi đó chạy vài báo cáo thôi là Excel tự biến mất khỏi màn hình :). Đó là chưa nói đến lập trình ứng dụng trên Server, chạy tháng này qua tháng khác mà Windows vẫn không bị giảm bộ nhớ, ứng dụng vẫn ổn định,.... tất cả những cái đó làm được đều phải làm rất chuẩn mực với sự bám sát tài liệu chuẩn. Điều nữa trong lập trình cũng khó nói hay, hay nói hết được các tình huống, đôi khi mình tư duy đúng nhưng trình biên dịch lại làm lệch đi hoặc ứng dụng mẹ (Excel) bị lỗi nữa, khi đó còn phải dùng "tà đạo" để xử lý. Nên khi bác TQN soi ở lớp dưới rất quan trọng biết được lý do leak, còn người lập trình nếu không có khả năng đọc hiểu mã ASM thì phải làm lớp trên rất chuẩn chỉ rồi test kỹ mới ok.
 
Lần chỉnh sửa cuối:
Upvote 0
Đúng là Delphi ở Việt Nam dùng ít. Ở Nhật, Pháp, Đức, Nga, Pháp, Mỹ thì nhiều. Search tài liệu Delphi tiếng Anh thì nhiều vô số, tiếng Việt thì hạn chế.
Bài đã được tự động gộp:



Theo mình thì bạn cứ dùng giáo trình của ĐHCT đi, với người mới bắt đầu khá dễ tiếp cận. Bạn có căn bản rồi thì đọc code trên mạng sẽ nhanh lắm.
Để theo học được Delphi thì các bước phải học là gì ạ?
 
Upvote 0
Để theo học được Delphi thì các bước phải học là gì ạ?

Tại bài đầu tiên mình có để link có 4 bài học cơ bản để mọi người tiếp cận Delphi. Vì Delphi sử dụng ngôn ngữ Object Pascal nên bạn cứ tìn đọc tài liệu này sẽ học được nhé.
 
Upvote 0
Upvote 0
Thủy, Mạnh ơi, giúp mình gấp cái. Gởi cho mình file tdstrp32.exe trong thư mục Bin của Delphi liền nhé. Gấp lắm nhen.
 
Upvote 0
Web KT
Back
Top Bottom