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:
Có 1 vấn đề liên quan đến việc gọi form trong Delphi mình đã tìm hiểu nhiều chỗ nhưng không giải quyết được nhờ ACE giúp đỡ:

Mã:
Procedure OpenFormMain();stdcall;
var
  frm:TfrmMain;
begin
  frm:=TfrmMain.Create(nil);
  //frm.Showmodal;
  frm.Show;
end;

khi excel gọi form trong delphi, vì muốn vừa tương tác được trên form và cũng có thể click chọn các ô trên sheet nên mình dùng frm.Show, khi đó trên Form mình có 1 TEdti, khi click vào đó nhập dữ liệu thi chữ sẽ được đánh vào Activecell trong excel chứ không đánh vào Tedit trên form, nếu dùng frm.Showmodal thì sẽ nhập được trên form nhưng lại không thao tác được với các ô trên sheet. Mình có tìm hiểu thì cũng nhiều chỗ bị giống vầy, mà cách họ đưa ra vẫn chưa biết cách áp dụng:
 
Upvote 0
Có 1 vấn đề liên quan đến việc gọi form trong Delphi mình đã tìm hiểu nhiều chỗ nhưng không giải quyết được nhờ ACE giúp đỡ:

Mã:
Procedure OpenFormMain();stdcall;
var
  frm:TfrmMain;
begin
  frm:=TfrmMain.Create(nil);
  //frm.Showmodal;
  frm.Show;
end;

khi excel gọi form trong delphi, vì muốn vừa tương tác được trên form và cũng có thể click chọn các ô trên sheet nên mình dùng frm.Show, khi đó trên Form mình có 1 TEdti, khi click vào đó nhập dữ liệu thi chữ sẽ được đánh vào Activecell trong excel chứ không đánh vào Tedit trên form, nếu dùng frm.Showmodal thì sẽ nhập được trên form nhưng lại không thao tác được với các ô trên sheet. Mình có tìm hiểu thì cũng nhiều chỗ bị giống vầy, mà cách họ đưa ra vẫn chưa biết cách áp dụng:
đang rảnh bà tám chút xong tự dò nha

trang này là trang 73 thì dò ngược lại từ trang 72,71.... tới khi thấy bài đó thì dửng lại xong tải về xem lại xem xong tính tiếp

có thể sẻ có nhiều cách xử lý khác nhau .. nhưng code két phải nên thử nhiều cách xong chọn lấy 1 cách phù hợp mà sử dụng

vài năm trước thớt này có rồi ................. cảm giác như đang bắt đầu dò học Delphi
 
Lần chỉnh sửa cuối:
Upvote 0
đang rảnh bà tám chút xong tự dò nha

trang này là trang 73 thì dò ngược lại từ trang 72,71.... tới khi thấy bài đó thì dửng lại xong tải về xem lại xem xong tính tiếp

có thể sẻ có nhiều cách xử lý khác nhau .. nhưng code két phải nên thử nhiều cách xong chọn lấy 1 cách phù hợp mà sử dụng

vài năm trước thớt này có rồi ................. cảm giác như đang bắt đầu dò học Delphi
- Đã dò ngược lại đến trang 65 vẫn ko thấy video như a nói ( ko biết a có hiểu lằm ý câu hỏi không)
- Delphi là ngôn ngữ khó, ko dễ mò như vba nên khi đụng vấn đề khó search ko giải quyết được, hỏi cũng ko ai trả lời thì tạm thời cất đó, vài năm sau khi nào fix đc vấn đề lại quay lại mò tiếp thôi. Số lần cất đi làm lại cũng khoảng 20 lần, số năm mò nó cũng gần chục, tìm hiểu delphi vì đam mê và cũng giải trí thôi chứ chưa mang lại giá trị vật chất cho bản thân.
 
Upvote 0
- Đã dò ngược lại đến trang 65 vẫn ko thấy video như a nói ( ko biết a có hiểu lằm ý câu hỏi không)
- Delphi là ngôn ngữ khó, ko dễ mò như vba nên khi đụng vấn đề khó search ko giải quyết được, hỏi cũng ko ai trả lời thì tạm thời cất đó, vài năm sau khi nào fix đc vấn đề lại quay lại mò tiếp thôi. Số lần cất đi làm lại cũng khoảng 20 lần, số năm mò nó cũng gần chục, tìm hiểu delphi vì đam mê và cũng giải trí thôi chứ chưa mang lại giá trị vật chất cho bản thân.
đoán chút xem sao khi nào rảnh xem lại ... có lẻ bài đó 2 ý

1/ là gõ trên Form

2/ là khi gõ vào TEdti thì chữ trên TEdti sẻ cho xuống Cells

thử xem

Mã:
Excel.ActiveCell.Value2 :=TEdti.Text
 
Upvote 0
Code delphi gọi form e viết như sau
Mã:
library FormTypingError;
uses
  System.SysUtils,
  System.Classes,
  frmInput in 'frmInput.pas' {Form1};

{$R *.res}
procedure OpenFormInput();stdcall;
var
  frm:TForm1;
begin
  frm:=TForm1.Create(nil);
  frm.show;
end;
exports
  OpenFormInput;
begin
end.

trên form thêm vào 1 tedit và 1 tbutton
1704551556484.png
code show form trên VBA
Mã:
#If Win64 Then
Private Declare PtrSafe Sub OpenFormInput Lib "FormTypingError64.dll" ()
#Else
Private Declare PtrSafe Sub OpenFormInput Lib "FormTypingError.dll" ()
#End If

Sub OpenFormDelphi()
    OpenFormInput
End Sub

Khi form được mở lên, như này, ta bấm vào tedit nhập dữ liệu thì chữ nhập từ bàn phím nó lại nhảy xuống ô activecell mà không được nhập lên tedit
1704551893880.png
 

File đính kèm

  • FormTypingError.rar
    1.4 MB · Đọc: 3
Upvote 0
Code delphi gọi form e viết như sau
Mã:
library FormTypingError;
uses
  System.SysUtils,
  System.Classes,
  frmInput in 'frmInput.pas' {Form1};

{$R *.res}
procedure OpenFormInput();stdcall;
var
  frm:TForm1;
begin
  frm:=TForm1.Create(nil);
  frm.show;
end;
exports
  OpenFormInput;
begin
end.

trên form thêm vào 1 tedit và 1 tbutton
View attachment 298142
code show form trên VBA
Mã:
#If Win64 Then
Private Declare PtrSafe Sub OpenFormInput Lib "FormTypingError64.dll" ()
#Else
Private Declare PtrSafe Sub OpenFormInput Lib "FormTypingError.dll" ()
#End If

Sub OpenFormDelphi()
    OpenFormInput
End Sub

Khi form được mở lên, như này, ta bấm vào tedit nhập dữ liệu thì chữ nhập từ bàn phím nó lại nhảy xuống ô activecell mà không được nhập lên tedit
View attachment 298143
1/ Nhắc lại bài số 1442 có rồi ... tìm lại là thấy vì nó còn liên quan các bài trước và sau đó ... để cho tìm xem các bài phát sinh quanh nó mới biết cách xử lý

2/ Mới xem file có virus Windows xoá ngay và luôn .... thôi không dính vào nữa hãy dò xem vì dính virus 1 lần đủ nhớ rồi
 
Lần chỉnh sửa cuối:
Upvote 0
trong file đính kèm có 3 file, 1 file excel và 2 file dll 1 file cho 32bit và 1 file code 64bit , đây là kết quả quét file excel và 2 file dll , file dll xuất từ delphi chỉ mấy dòng code bên trên.
1704596879459.png
1704597015326.png

1704597114110.png
 
Upvote 0
trong file đính kèm có 3 file, 1 file excel và 2 file dll 1 file cho 32bit và 1 file code 64bit , đây là kết quả quét file excel và 2 file dll , file dll xuất từ delphi chỉ mấy dòng code bên trên.
View attachment 298153
View attachment 298155

View attachment 298156
nó lại không xoá 2 cái DLL mà là xoá bay ngay cái file Excel ấy

Khi xoá xong file Excel hình như Windows nhận diện ra cứ tải file là xoá tiếp

1704597687801.png
 
Upvote 0
Delphi không quá khó học như c/c++ đâu ... chịu khó cày qua cái cửa khai báo và sử dụng là viết mã ầm ầm thôi

bên cạnh đó cần chút tư duy logis lắp ghép là xong :p:D

trích dẫn lại bài số 1440 khi tôi hỏi tây họ chỉ cho như hình sau ... còn lại do ta tự thân mà suy nghĩ vậy

1704681787373.png

thời điểm hiện tại không quá khó để viết mã Delphi vì mọi cái cơ bản đã có Em ChatGPT lo cho 1 phần nào đó ...
còn ta có biết vận dụng hay không là câu chuyện của chính ta _)()(-
 
Lần chỉnh sửa cuối:
Upvote 0
Lưu ý các bạn khi hỏi bài thì nên gửi mã nguồn test nhé.
 
Upvote 0
Delphi không quá khó học như c/c++ đâu ... chịu khó cày qua cái cửa khai báo và sử dụng là viết mã ầm ầm thôi

bên cạnh đó cần chút tư duy logis lắp ghép là xong :p:D

trích dẫn lại bài số 1440 khi tôi hỏi tây họ chỉ cho như hình sau ... còn lại do ta tự thân mà suy nghĩ vậy

View attachment 298183

thời điểm hiện tại không quá khó để viết mã Delphi vì mọi cái cơ bản đã có Em ChatGPT lo cho 1 phần nào đó ...
còn ta có biết vận dụng hay không là câu chuyện của chính ta _)()(-
Cái hình này không liên quan gì tới câu hỏi a, cố tình viết sang dll để hạn chế tối đa các trình diệt virus, nên ko có nhu cầu viết activexEXE
Lưu ý các bạn khi hỏi bài thì nên gửi mã nguồn test nhé.
bài 1.445 e đã ghi chi tiết các code thực hiện ra rồi đó a, và có cả file đính kèm. Mong muốn đơn giản chỉ là bấm nút trên excel sẽ hiện form delphi lên và có thể đánh chữ vào trong tedit của form Delphi ( nếu form Delphi chọn frm.Showmodal thì đánh chữ được còn frm.show thì không được)
 
Upvote 0
Cái hình này không liên quan gì tới câu hỏi a, cố tình viết sang dll để hạn chế tối đa các trình diệt virus, nên ko có nhu cầu viết activexEXE

bài 1.445 e đã ghi chi tiết các code thực hiện ra rồi đó a, và có cả file đính kèm. Mong muốn đơn giản chỉ là bấm nút trên excel sẽ hiện form delphi lên và có thể đánh chữ vào trong tedit của form Delphi ( nếu form Delphi chọn frm.Showmodal thì đánh chữ được còn frm.show thì không được)

1/ Bài số 1442 tôi keo tìm ngược lại thì không chịu tìm ... thớt này đến bài này mới có 73 trang thôi
2/ Bài số 1446 tôi nhắc lại phóng chữ to ra cũng không chịu tìm
3/ Nhắc lại lần 3 kèm theo hình xong tìm đi vì nó liên quan các bài trước và sau đó ....

xong khi tải về kiểu gì cũng hỏi tiếp nữa chắc chắn luôn. nên tôi cố tình để cho tìm xong hỏi lại các kiếm thức liên quan các bài liền kề trước và sau đó thì mới có khả năng viết tiếp được

xem hình xong tự hình dung ra mấy năm trước tôi hỏi bài khi gõ lên Edit1 xong nó nhảy xuống ô A1

1705020424096.png
 
Upvote 0
1/ Bài số 1442 tôi keo tìm ngược lại thì không chịu tìm ... thớt này đến bài này mới có 73 trang thôi
2/ Bài số 1446 tôi nhắc lại phóng chữ to ra cũng không chịu tìm
3/ Nhắc lại lần 3 kèm theo hình xong tìm đi vì nó liên quan các bài trước và sau đó ....

xong khi tải về kiểu gì cũng hỏi tiếp nữa chắc chắn luôn. nên tôi cố tình để cho tìm xong hỏi lại các kiếm thức liên quan các bài liền kề trước và sau đó thì mới có khả năng viết tiếp được

xem hình xong tự hình dung ra mấy năm trước tôi hỏi bài khi gõ lên Edit1 xong nó nhảy xuống ô A1

View attachment 298355
cám ơn a, nó nằm ở trang 58.
 
Upvote 0
đang viết Taskpane dính cái lỗi gõ lên TEdit nó xuống Range nè ... có vẻ Form DLL xử lý dễ hơn TaskPane

Chuột ở Ô nào thì nó xuống ngay Ô đó ... hình dưới là vị trí chuột tại A1 thì nó nhảy xuống A1

Untitled.png
 
Upvote 0
rảnh dò chơi với Em Chat mất buổi sáng ra cái Tô màu khi chọn Ô trên StringGrid
Delphi có đủ đồ chơi + Em ChatGPT code két nó trở nên đơn giản và từ không thể biến nó thành có thể _+)(9

các bạn trẻ có đam mê code két thì chịu khó dò với Em ChatGPT một chút là xong thôi _)()(---=0

1707189684523.png
 
Upvote 0
Web KT
Back
Top Bottom