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

kieu manh

Thành viên gạo cội
Tham gia ngày
9 Tháng sáu 2012
Bài viết
3,317
Được thích
2,338
Điểm
560
Nơi ở
Bình Dương
I/ Các Bạn cho mình hỏi chút:

1/ Mình tập viết thư Viện liên kết động API trên Delphi theo như hướng dẫn của bài 1 tới bây giờ tạm viết OK

2/ Giờ Mình muốn chuyển qua viết ActiveX trên Delphi cũng là File *.DLL

II/ Vậy mình muốn hỏi

1/ 2 cái đó nó khác nhau cơ bản cái gì .... Mục 2 Ứng dụng vào việc gì là tốt nhất

2/ Khi viết ActiveX DLL thì mang qua máy khác sử dụng có phải đăng ký như DLL của VB6 hay không

3/ Khai báo và sử dụng nó trên VBA như thế nào

Xin cảm ơn
 

Nguyễn Duy Tuân

Nghị Hách
Thành viên danh dự
Tham gia ngày
13 Tháng sáu 2006
Bài viết
4,023
Được thích
9,405
Điểm
860
Nơi ở
Hà Nội
I/ Các Bạn cho mình hỏi chút:

1/ Mình tập viết thư Viện liên kết động API trên Delphi theo như hướng dẫn của bài 1 tới bây giờ tạm viết OK

2/ Giờ Mình muốn chuyển qua viết ActiveX trên Delphi cũng là File *.DLL

II/ Vậy mình muốn hỏi

1/ 2 cái đó nó khác nhau cơ bản cái gì .... Mục 2 Ứng dụng vào việc gì là tốt nhất

2/ Khi viết ActiveX DLL thì mang qua máy khác sử dụng có phải đăng ký như DLL của VB6 hay không

3/ Khai báo và sử dụng nó trên VBA như thế nào

Xin cảm ơn
ActiveX có 2 loại. ActiveX DLL và ActiveX Control. Cả hai loại này viết đều rất khó, đặc biệt ActiveX Control (BSAC mà tôi viết để làm giao diện trên Userform là loại này).
ActiveX DLL khác với DLL bài 1 ở chỗ, nó dùng để tạo Class là chính. Bộ thư viện mà mọi người hay dùng là ADO, FSO chính là AcriveX DLL (các bạn hay dùng CreateObject("Tên Class") - Tên Class trong hàm đó chính là phải tạo trong ActiveX DLL. Loại ActiveX DLL mang sang bất kỳ máy tính nào đề phải REGSVR32 hết - Đây là nguyên tắc của Windows.

Để học và làm được ActiveX cần có hiểu biết sâu về hệ thống, cần nhiều thời gian học lắm. Nó khó hơn DLL chuẩn ở bài 1 rất nhiều.
 

kieu manh

Thành viên gạo cội
Tham gia ngày
9 Tháng sáu 2012
Bài viết
3,317
Được thích
2,338
Điểm
560
Nơi ở
Bình Dương
ActiveX có 2 loại. ActiveX DLL và ActiveX Control. Cả hai loại này viết đều rất khó, đặc biệt ActiveX Control (BSAC mà tôi viết để làm giao diện trên Userform là loại này).
ActiveX DLL khác với DLL bài 1 ở chỗ, nó dùng để tạo Class là chính. Bộ thư viện mà mọi người hay dùng là ADO, FSO chính là AcriveX DLL (các bạn hay dùng CreateObject("Tên Class") - Tên Class trong hàm đó chính là phải tạo trong ActiveX DLL. Loại ActiveX DLL mang sang bất kỳ máy tính nào đề phải REGSVR32 hết - Đây là nguyên tắc của Windows.

Để học và làm được ActiveX cần có hiểu biết sâu về hệ thống, cần nhiều thời gian học lắm. Nó khó hơn DLL chuẩn ở bài 1 rất nhiều.
Cho mạnh hỏi thêm chút là tại sao người ta ko viết DLL như bài 1 đi cho tiện mà phải viết thêm ActiveX DLL chi cho nó mất công ra
Phải chăng nó có cái khác biệt với bài 1 nên bắt buột phải viết ActiveX DLL
Thì mới tốt cho mục đích của người viết
 

Nguyễn Duy Tuân

Nghị Hách
Thành viên danh dự
Tham gia ngày
13 Tháng sáu 2006
Bài viết
4,023
Được thích
9,405
Điểm
860
Nơi ở
Hà Nội
Cho mạnh hỏi thêm chút là tại sao người ta ko viết DLL như bài 1 đi cho tiện mà phải viết thêm ActiveX DLL chi cho nó mất công ra
Phải chăng nó có cái khác biệt với bài 1 nên bắt buột phải viết ActiveX DLL
Thì mới tốt cho mục đích của người viết
Hai công nghệ khác nhau. DLL như bài 1 là cách viết API, các thư viện của Windows phần lớn là loại này như User32.dll, Kernerl32.dll, gdi32.dll,... Loại DLL này dùng để xử lý tác vụ, thọc và xử lý các chức nang tạm nghĩ như là độc lập.

ActiveX DLL là làm việc theo Object, nó dùng công nghệ COM để giao tiếp. Công nghệ COM chỉ có trong Windows, anh Bill yêu cầu rất rắc rối, phải được quản lý trong Registry vì thế mới phải đăng ký bằng lệnh Regsvr32. Loại ActiveX DLL là nền tảng kiến thức và cách giao tiếp đối tượng nên mới có hai loại như vậy. Ý kiến cá nhân của tôi thì anh Bill tạo COM là hay nhưng quản lý với Registry lại là lắm phiền phức, thôi lịch sử là vậy.
 

thuyyeu99

Thành viên tích cực
Tham gia ngày
6 Tháng sáu 2008
Bài viết
951
Được thích
376
Điểm
735
Anh Nguyễn Duy Tuân
nếu được anh cho em hỏi xíu nhé. Trong Delphi mình viết hàm Lồng vào câu lệnh SQL được không anh ?
 

Hai Lúa Miền Tây

Chuyên gia GPE
Thành viên BQT
Administrator
Tham gia ngày
18 Tháng ba 2008
Bài viết
7,272
Được thích
14,062
Điểm
1,910
Nơi ở
Tp.HCM

thuyyeu99

Thành viên tích cực
Tham gia ngày
6 Tháng sáu 2008
Bài viết
951
Được thích
376
Điểm
735

Hai Lúa Miền Tây

Chuyên gia GPE
Thành viên BQT
Administrator
Tham gia ngày
18 Tháng ba 2008
Bài viết
7,272
Được thích
14,062
Điểm
1,910
Nơi ở
Tp.HCM
em thử viết cái UDF STT mà nó báo lỗi Value# hic khong biết làm cách nào đây để lòng vào câu Select hichic
Không nên viết hàm STT thẳng vào SQL vì nó rất phức tạp. Bạn nên tạo mãng, thêm cột STT rồi gán nó xuống Sheet.
 

thuyyeu99

Thành viên tích cực
Tham gia ngày
6 Tháng sáu 2008
Bài viết
951
Được thích
376
Điểm
735
Không nên viết hàm STT thẳng vào SQL vì nó rất phức tạp. Bạn nên tạo mãng, thêm cột STT rồi gán nó xuống Sheet.
như vậy không ôn lắm anh, em tập viết để sau này có viết thêm Concat, ý em là để nó xử lý trong SQL cho tiện. Mà không biết bắt đầu từ đâu ><<...,(@$%@
 

Nguyễn Duy Tuân

Nghị Hách
Thành viên danh dự
Tham gia ngày
13 Tháng sáu 2006
Bài viết
4,023
Được thích
9,405
Điểm
860
Nơi ở
Hà Nội

thuyyeu99

Thành viên tích cực
Tham gia ngày
6 Tháng sáu 2008
Bài viết
951
Được thích
376
Điểm
735
Lần chỉnh sửa cuối:

Nguyễn Duy Tuân

Nghị Hách
Thành viên danh dự
Tham gia ngày
13 Tháng sáu 2006
Bài viết
4,023
Được thích
9,405
Điểm
860
Nơi ở
Hà Nội
""":::":\ Anh học phép thuật ở đâu chỉ em với '''''''''''''''''',
Cái hàm RowNum em có thể phù phép hô biến chứ cái hàm Cancat chưa phù phép được ===\.
Em search youtube "group_concat + BS_SQL " sẽ thấy tôn ngộ không phải lác mắt :D


Phép thuật này khó lắm nên anh chỉ khoe thôi :D
 

thuyyeu99

Thành viên tích cực
Tham gia ngày
6 Tháng sáu 2008
Bài viết
951
Được thích
376
Điểm
735
đang nghiên cứu mở rộng cái hàm mảng kia à
còn cái Redim làm ok rồi chứ ???
Heeee em chưa làm Redim mà em nghĩ đơn giản thôi.

Cái hàm group_concat hãy đợi đấy em đang tu luyện phép thuật hẹn 1 ngày không xa nữa hy vọng nghiệm ra được :;;;:::
 

kieu manh

Thành viên gạo cội
Tham gia ngày
9 Tháng sáu 2012
Bài viết
3,317
Được thích
2,338
Điểm
560
Nơi ở
Bình Dương
Heeee em chưa làm Redim mà em nghĩ đơn giản thôi.

Cái hàm group_concat hãy đợi đấy em đang tu luyện phép thuật hẹn 1 ngày không xa nữa hy vọng nghiệm ra được :;;;:::
thì ra là vậy đang mò cái group gống Atools ............ tự làm khổ mình thế hả :p:p:p

đam mê là thế .... nhiều khi Mạnh cố làm 1 cái gì đó mà khó quá là nó cứ văng ra .... xong bỏ kệ bà nó ... nhưng lâu lâu ngó một tẹo
Rồi một ngày kia .... hóa ra mày cũng thường thôi thì ra mày là vầy ===\._)()(-

Khi quá trình tích lũy về lượng đạt đến 1 điểm giới hạn thì chất sẻ thay đổi vậy ???!!! lúc đó mới nhìn ra vấn đề của nó
 

Hai Lúa Miền Tây

Chuyên gia GPE
Thành viên BQT
Administrator
Tham gia ngày
18 Tháng ba 2008
Bài viết
7,272
Được thích
14,062
Điểm
1,910
Nơi ở
Tp.HCM
như vậy không ôn lắm anh, em tập viết để sau này có viết thêm Concat, ý em là để nó xử lý trong SQL cho tiện. Mà không biết bắt đầu từ đâu ><<...,(@$%@
Ý mình là xử lý cái cột STT này ở bên ngoài, nó sẽ không ảnh hưởng gì nhiều đến câu lệnh SQL của bạn.
 
Top