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

ThangCuAnh

Mới rờ Ét xeo
Tham gia ngày
1 Tháng mười hai 2017
Bài viết
839
Được thích
668
Điểm
360
Nơi ở
Phờ lây cu
Sửa Move lại thành CopyMemory đi, cho nó rõ, tường minh hơn. Để ý Dest, Source và Size.
Nếu inArrayByte là PByte thì thử như sau:
CopyMemory(Pointer(@OutArray[0]), inArrayByte, mSize);
Còn nếu inArrayByte là 1 array thì:
CopyMemory(Pointer(@OutArray[0]), Pointer(@inArrayByte[0], mSize);
 

thuyyeu99

Trùm Nhiều Chuyện
Tham gia ngày
6 Tháng sáu 2008
Bài viết
1,412
Được thích
623
Điểm
860
Sửa Move lại thành CopyMemory đi, cho nó rõ, tường minh hơn. Để ý Dest, Source và Size.
trong dell CopyMemory là Move anh
Mã:
procedure CopyMemory(Destination: Pointer; Source: Pointer; Length: NativeUInt);
begin
  Move(Source^, Destination^, Length);
end;
 

ThangCuAnh

Mới rờ Ét xeo
Tham gia ngày
1 Tháng mười hai 2017
Bài viết
839
Được thích
668
Điểm
360
Nơi ở
Phờ lây cu
Đọc lại đi.
Mấy cô cậu này yếu về cái căn bản memory, pointer,địa chỉ quá. Căn bản không học, cứ nhảy đòi làm cái cao xa, giờ thấy hổng cẵng chưa ?
 

batman1

Thành viên gắn bó
Tham gia ngày
8 Tháng chín 2014
Bài viết
3,195
Được thích
4,771
Điểm
560
Access violation at address 00408A2E
Tôi đã nói ngay từ đầu, ngay từ bài 1047 là
Mã:
 Không phải là Pointer(OutArray[0])^
Nhưng bạn lờ đi, bạn không bàn về nó.

Dùng CopyMemory của Windows thì quá dễ. Dùng Move của Delphi mà truyền đúng tham số mới là thử thách cho bạn. Nếu bạn thấy Move khó quá đối với bạn thì dùng CopyMemory của Windows API thô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,248
Được thích
9,784
Điểm
860
Nơi ở
Hà Nội
Các bạn học Delphi mà đụng vào memory hay sử dụng các hàm API thì phải hiểu kiến thức về con trỏ đã. Xem bài bạn Thuyyeu thì hình như bạn chưa đọc kỹ tài liệu về Pointer trong Pascal. Nếu chưa có chuẩn bị kiến thức về Pointer thì các hướng dẫn trên của mọi người về Move hay CopyMemory sẽ không hiểu đâu. Kiến thức dạng này phải cày tài liệu kỹ, không học mò được đâu.
 

Kiều Mạnh

Thành viên gạo cội
Tham gia ngày
9 Tháng sáu 2012
Bài viết
3,801
Được thích
2,654
Điểm
560
Nơi ở
IIIIIIIIIIIIIIIII
Vài lời tâm sự gửi cho gió ...
Xem ra cái thớt Delphi này Có nhiều thành Viên mê lắm, thích lắm và mong muốn học nhiều lắm
…!!!???

Mà tại làm sao không dám lên đây đặt 1 câu hỏi đơn giản nhất như 1 + 1 = ???!!! là sao vậy
Mà cứ lén lút nhắn tin + kết Bạn Zalo, Facebook hỏi giật chọt như thế thì làm sao mà học được ??!!!
Hay cái Tôi của mình quá lớn đến nổi dấu dốt mà không dám hỏi 1 câu hay sao ????!!!

Không có gì là xấu hổ cả Chỉ có dấu dốt hay xâm phạm tới các quy định của pháp luật mới thật sự xấu hổ
Học tập là cả 1 quá trình tích lũy đâu có dễ như ăn kẹo mút …hỏi cà giật tin nhắn 1 ,2 câu xong
Hãy dũng cảm lên , Mạnh mẻ lên … lên cái thớt này mà hỏi … học tập giao lưu tương tác thì mới phát sinh nhiều cái hay mà học ...

Trẻ tuổi học cái hay cái kinh nghiệm của người nhiều tuổi và người nhiều tuổi trong chừng mực nào đó có khi lại học cái hay của giới trẻ ấy chứ
Có giao lưu, tương tác thì xã hội này nó mới phát triển lên được và chính mình cũng thế !!!!???

Và cuối cùng nếu thật sự mong muốn học thì nên hỏi nhưng nơi người ta giảng dạy có trường lớp, bài bản VD như: @Nguyễn Duy Tuân
thì sẻ có một kiến thức cơ bản tốt

Xin đừng nhắn tin + kết bạn với Mạnh vì cái sự dấu dốt, lén lút và mấy đồng bạc còi … tui bới cho lại hủy kết bạn thì nhọc lắm hehehehe
 
Lần chỉnh sửa cuối:

thuyyeu99

Trùm Nhiều Chuyện
Tham gia ngày
6 Tháng sáu 2008
Bài viết
1,412
Được thích
623
Điểm
860
Vài lời tâm sự gửi cho gió ...
Xem ra cái thớt Delphi này Có nhiều thành Viên mê lắm, thích lắm và mong muốn học nhiều lắm
…!!!???

Mà tại làm sao không dám lên đây đặt 1 câu hỏi đơn giản nhất như 1 + 1 = ???!!! là sao vậy
Mà cứ lén lút nhắn tin + kết Bạn Zalo, Facebook hỏi giật chọt như thế thì làm sao mà học được ??!!!
Hay cái Tôi của mình quá lớn đến nổi dấu dốt mà không dám hỏi 1 câu hay sao ????!!!

Không có gì là xấu hổ cả Chỉ có dấu dốt hay xâm phạm tới các quy định của pháp luật mới thật sự xấu hổ
Học tập là cả 1 quá trình tích lũy đâu có dễ như ăn kẹo mút …hỏi cà giật tin nhắn 1 ,2 câu xong
Hãy dũng cảm lên , Mạnh mẻ lên … lên cái thớt này mà hỏi … học tập giao lưu tương tác thì mới phát sinh nhiều cái hay mà học ...

Trẻ tuổi học cái hay cái kinh nghiệm của người nhiều tuổi và người nhiều tuổi trong chừng mực nào đó có khi lại học cái hay của giới trẻ ấy chứ
Có giao lưu, tương tác thì xã hội này nó mới phát triển lên được và chính mình cũng thế !!!!???

Và cuối cùng nếu thật sự mong muốn học thì nên hỏi nhưng nơi người ta giảng dạy có trường lớp, bài bản VD như: @Nguyễn Duy Tuân
thì sẻ có một kiến thức cơ bản tốt

Xin đừng nhắn tin + kết bạn với Mạnh vì cái sự dấu dốt, lén lút và mấy đồng bạc còi … tui bới cho lại hủy kết bạn thì nhọc lắm hehehehe
hehe em giải quyết xong hàm move rồi (mà move xong nó chuyển dòng thành cột mới ghê chứ éc).Làm liên quan tới Memory không nắm vững nguy hiểm quá không mò nữa.
Khi nào vướng hỏi tiếp heheheh
 

Kiều Mạnh

Thành viên gạo cội
Tham gia ngày
9 Tháng sáu 2012
Bài viết
3,801
Được thích
2,654
Điểm
560
Nơi ở
IIIIIIIIIIIIIIIII
hehe em giải quyết xong hàm move rồi (mà move xong nó chuyển dòng thành cột mới ghê chứ éc).Làm liên quan tới Memory không nắm vững nguy hiểm quá không mò nữa.
Khi nào vướng hỏi tiếp heheheh
THÌ HÔM mạnh cũng có thử trên VBA mà thấy nó rối quá đang bỏ đó
Hình như dòng sang cột cho vào Memory nó cho tốc độ rất nhanh .... có thể bỏ qua được vòng lặp chuyển mảng
Chúc mừng nha

mà có Re cho Mạnh 1 tẹo học hỏi ko nhỉ Quan trọng cái đó ý :D :p cái đó người ta keo là giao lưu và tương tác đấy ???
 

thuyyeu99

Trùm Nhiều Chuyện
Tham gia ngày
6 Tháng sáu 2008
Bài viết
1,412
Được thích
623
Điểm
860
THÌ HÔM mạnh cũng có thử trên VBA mà thấy nó rối quá đang bỏ đó
Hình như dòng sang cột cho vào Memory nó cho tốc độ rất nhanh .... có thể bỏ qua được vòng lặp chuyển mảng
Chúc mừng nha

mà có Re cho Mạnh 1 tẹo học hỏi ko nhỉ Quan trọng cái đó ý :D :p cái đó người ta keo là giao lưu và tương tác đấy ???
Mò đi cho nó phê hehehehe
Chạy lần đầu không sao, lần 2 nó lỗi làm biếng mò quá anh với lại không đúng yêu cầu của em (em đâu có muốn viết Tranpose đâu em muốn viết ReDim Preserve ).
Thôi cái này khó quá cho qua để đó tính sau.
 

Kiều Mạnh

Thành viên gạo cội
Tham gia ngày
9 Tháng sáu 2012
Bài viết
3,801
Được thích
2,654
Điểm
560
Nơi ở
IIIIIIIIIIIIIIIII
1/ Mạnh có tìm hiểu đọc khá nhiều tài liệu thấy trên Google nó keo chỉ có C++ Or Delphi mới viết được *.DLL ... API không biết nó phán như vậy có đúng không ???? ai biết xin trả lời dùm

2/ Thực tế Mạnh thấy mấy Fan hâm mộ VB6 cũng tự chế thêm Tools cũng Build DLL kiểu API thấy cũng chạy được đó nhưng chỉ trên nền tảng 32 bit ( mà thấy nó cũng ko giống ai ... chạy code ok code lỗi linh tinh )

3/ Tại vì cũng có mấy Bạn hỏi viết trên VB6 nên đang tìm hiểu tài liệu chút viết cái Add-ins cho VB6 như ý đồ mục số 2 cho các Bạn đó làm quên DLL API mà thấy nó không giống ai cả .... :D ;) ( Vì code VB6 nó gần như VBA nên rất dễ làm quen )

4/ Thui khuyên ai đó nếu rảnh nên học C++ Or Delphi đi viết *.DLL API cho khoẻ khỏi mất công làm giả như mục số 2 thấy cũng nhọc lắm he
 
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,248
Được thích
9,784
Điểm
860
Nơi ở
Hà Nội
PHƯƠNG PHÁP LẬP TRÌNH NHÚNG DLL TRONG DELPHI
Lập trình Delphi tạo hàm trả về mảng động (co giãn trên worksheet) với thư viện Add-in A-Tools.
Lợi ích của phương pháp này là:
- Code các hàm của bạn được biên dịch hoàn toàn ra DLL
- Vì DLL biên dịch bằng Delphi ra mã máy nên tốc độ code chạy rất nhanh.
- Tận dụng được thư viện đã có từ một DLL khác để dùng trong phần mềm hay DLL của bạn.

 
Lần chỉnh sửa cuối:

Kiều Mạnh

Thành viên gạo cội
Tham gia ngày
9 Tháng sáu 2012
Bài viết
3,801
Được thích
2,654
Điểm
560
Nơi ở
IIIIIIIIIIIIIIIII
1/ Năm ngoái Mạnh có quậy cái TaskPane có nhúng cái BSAC.OCX đó vào Delphi ... Mục đích là xem trong đó nó có cái gì !! :p :p nhưng khi Build nó báo lỗi liên quan Tới Bản Quyền ( Vì ko cài bản Free )

2/ Mới xem hết Video xong học được cách tạo cái Arr trên Delphi thấy hay ... lâu lâu học được 1 chút + lại nhiều chút cũng ok

Cảm ơn @Nguyễn Duy Tuân rất nhiề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,248
Được thích
9,784
Điểm
860
Nơi ở
Hà Nội
1/ Năm ngoái Mạnh có quậy cái TaskPane có nhúng cái BSAC.OCX đó vào Delphi ... Mục đích là xem trong đó nó có cái gì !! :p :p nhưng khi Build nó báo lỗi liên quan Tới Bản Quyền ( Vì ko cài bản Free )

2/ Mới xem hết Video xong học được cách tạo cái Arr trên Delphi thấy hay ... lâu lâu học được 1 chút + lại nhiều chút cũng ok

Cảm ơn @Nguyễn Duy Tuân rất nhiều
1). Tạo TaskPane dùng thư viện BSAC thì viết lệnh nhé, đúng kéo TaskPaneX vào form (không như VBA). Cũng làm công việc Import Type Library. Dùng class IBSTaskPanes, IBSTakPane. Sau có time có thể mình làm clip về cái này.

2). Mảng trong VBA nhìn thì dễ, bản chất nó là mảng PSafeArray nên ở Delphi phải dùng kiểu đó (VarArrayCreate() ). Còn mảng chỉ giao tiếp trong môi trường Delphi thôi thì chỉ cần khai báo var arr: array[0..n-1, 0..0] of Variant;
 

Kiều Mạnh

Thành viên gạo cội
Tham gia ngày
9 Tháng sáu 2012
Bài viết
3,801
Được thích
2,654
Điểm
560
Nơi ở
IIIIIIIIIIIIIIIII
Mạnh thấy Bài 1074 viết Hàm hay quá mò diết Copy xào trẻ, cắt dán diết cuối cùng cũng mò ra phương thức của nó một tí ... khoe 1 tẹo :p
Code Copy từ Internet .... thêm hành + tỏi + nước mắm xào lên thế thôi ... thấy nó cũng thơm _+)(9
 

File đính kèm

Lần chỉnh sửa cuối:
Top Bottom