Listview và Listbox - Hỏi về ưu khuyết.

Liên hệ QC

cantl

!!! Giải thoát !!!
Thành viên bị đình chỉ hoạt động
Tham gia
6/8/08
Bài viết
1,631
Được thích
1,034
Giới tính
Nam
Chào các bác,
Các bác cho em hỏi giữa Listview và Listbox thì nên chọn cái nào lên form cho hoành tráng ạ?
Em không muốn dùng theo kiểu tùy trường hợp, mà chỉ có thể chọn 1 mà thôi.
Ưu, khuyết là gì ạ?
 
Bác @SA_DQ là ông già khựa hay sao mà ai cũng hay nhắc
Mình chưa có bài nào tham gia trong chủ đề này kia mà, Hay bài mình đăng ở đây đã bị xóa rồ?

(/ề chủ đề này mình chắc là không thể & không có khả năng tham gia rồi!

Mong mọi người chừa mình ra đi nha!
 
Upvote 0
À quên, ListView còn có một vài cái hay như có thể Sort dữ liệu, có thể Find dữ liệu, thêm icon.
đúng vậy ListView trên VB, VB6 hay Delphi cơ bản nó như nhau. Nhưng khác nhau khi viết trên các ngôn ngữ lập trình hiện đại hiện đang phát triển thì nó hổ trợ tốt hơn như viết tiếng Việt có dấu trực tiếp trong Code mà không cần viết hàm tuỳ chỉnh xử lý Unicode nữa

Tôi khuyên thật

1/ nên cố giắng tập viết và sử dụng trên VBA ( nếu chưa biết ngôn ngữ khác ) Vì quá trình viết vừa tìm tòi khám phá và khai thác ra nhiều cái hay trong đó mà mình có thể làm chủ được nó

2/ nếu biết ngôn ngữ khác VD: Delphi thì mọi cái có sẳn chỉ kéo vào sử dụng thiết kế cái Form xong tuỳ chỉnh theo ý thích nếu có khả năng

3/ Hết cách cả dùng đồ của bên thứ 3 vì ta lệ thuộc nó và sẽ lỗi theo thời gian . khi bị lỗi ngộ nhỡ họ đi pháp rồi thì sao ta lại làm lại từ đầu

4/ trừ ai đó chưa có khả năng tuỳ chỉnh ở mức thuần VBA thì mới nên sử dụng đồ của bên thứ 3...

xem hình sau tôi mới thử dò trên Delphi

1705623628667.png


mấy năm trước tôi Mê API của Ms trên Delphi vì mọi cái do các kỹ sư Delphi viết cho sẳn còn ta chỉ call và tuỳ chỉnh Builder 32 hay 64 bit
Nhưng khi sử dụng trên Windows10 thì tốt ... vừa rồi tôi cài Windows11 thì có hàm báo lỗi nhiều khi cũng không biết tại sao

chỉ đoán thôi vì sử dụng API cũ khi trên Windows 11 thì Ms có cập nhật các API mới nên nó lỗi. vì vậy khi code can thiệp API sâu vào hệ thống Windows thì nó sẻ lỗi theo thời gian vì ta chưa cập nhật hay điều chỉnh kịp .... vì vậy nên tôi mới nói ngộ nhỡ dùng hàng của bên thứ 3 lệ thuộc nó xong họ đi pháp thì sao !? ( Không chắc chắn nha = hên/xui --=0--=0--=0 )

Tốt nhất nên độc lập tự chủ mà viết cho dù = 1/10 của ai đó thì mình cũng từng bước làm chủ nó xong mới bước kế tiếp cao hơn

Trừ khi không có khả năng trên thì nên dùng đồ của bên Thứ 3 !!! thay vì tự khai báo API tái sử dụng trên hệ thống VBA lỗi thời, tù túng và ọp ẹp
 
Lần chỉnh sửa cuối:
Upvote 0
Theo tôi mọi người không nên share mã tạo controls trong VB6 vào đây vì VBA không thể dùng nó.
Không biết anh dựa vào cơ sở nào hay nội quy diễn đàn để nói điều này.

Chứ em thấy bài viết đăng ở mục Lập trình với Excel, VB6 có tạo các OCX hoặc dll cho Excel, không chỉ riêng VBA, mọi người có thể đăng mã Python, C# hay C++ mà mã đó có thể ứng dụng cho Excel.

VB6 hiện nay có thể sớm có công cụ chuyển mã thành 64bit, để chạy tốt trên nhiều nền tảng.

Microsoft hứa là vẫn sẽ còn hỗ trợ VB kể cả Window 11, cũng có thể là Window 12, nên không có gì là không nên chia sẻ ở mục bài viết này.
 
Upvote 0
Theo tôi mọi người không nên share mã tạo controls trong VB6 vào đây vì VBA không thể dùng nó.
Không biết anh dựa vào cơ sở nào hay nội quy diễn đàn để nói điều này.

Chứ em thấy bài viết đăng ở mục Lập trình với Excel, VB6 có tạo các OCX hoặc dll cho Excel, không chỉ riêng VBA, mọi người có thể đăng mã Python, C# hay C++ mà mã đó có thể ứng dụng cho Excel.

VB6 hiện nay có thể sớm có công cụ chuyển mã thành 64bit, để chạy tốt trên nhiều nền tảng.

Microsoft hứa là vẫn sẽ còn hỗ trợ VB kể cả Window 11, cũng có thể là Window 12, nên không có gì là không nên chia sẻ ở mục bài viết này.

Thực tế mình rất thích VB6 vì lập trình rất dễ, nó và VBA có quan hệ anh em, nhiều code có thể bê nguyên từ VB6 sang VBA dùng nên dân lập trình VBA hoàn toàn có thể dựa vào code VB6 để thừa kế nhưng không phải tạo control từ thành phần "UserControl". Bản thân mình vẫn có các dự án viết bằng VB6 còn phải bảo trì. Chỉ mong Microsoft support, nâng cấp lên hay công ty nào đó mua lại VB6 mà phát triển nó lên thôi. Nói vậy để bạn hay ai đó biết mình không phải dị ứng VB6 vì nó cũ kỹ. Lý do ở đây là không phù hợp với chủ đề bài viết này hoặc nó còn rất nan giải , qua nhiều bước mà người chia sẻ code (của tây) mới đang chỉ để lửng lơ chưa áp dụng được trong VBA.

Bài viết trước tôi viết "Theo tôi mọi người không nên share mã tạo controls trong VB6 vào đây vì VBA không thể dùng nó.". Không phải mình dựa vào nội quy nào của diễn đàn, vì:

+ Cả hai bài share của hai người về control unListView, HTMLGrid đều nguyên bản code VB6, họ sử dụng thành phần "UserControl" để tạo control. Trong VBA không có thành phần này vì vậy không thể bê nguyên code đó sang được.

ucListViewDemo.jpg

htmlgriddemo.jpg

+ Có rất nhiều diễn đàn chuyên về VB6 cả Việt Nam lẫn tây chia sẻ rất nhiều mã nguồn VB6, nếu ai cũng bê đồ VB6 từ đông tây share lại (không chế biến về VBA) thì thực sự sẽ làm nhiều người không biết làm thế nào để chạy trong VBA. Chúng ta biết đây là "Diễn đàn Excel" vì thể những thứ chia sẻ dùng ngôn ngữ lập trình gì, công cụ gì, trong một chủ đề cụ thể về VBA thì ta nên share cái mà người ta có khả năng ứng dụng trực tiếp hoặc chia sẻ cách để chuyển đổi để ứng dụng được nó. Nếu các bạn có khả năng và thời gian làm thì các bạn hãy chuyển đổi từ code VB6 sang VBA dù đơn giản để người khác có thể ứng dụng hay học theo, hoặc chuyển sang ocx thì tôi nghĩ rất tốt.
 
Lần chỉnh sửa cuối:
Upvote 0
1/ có lẽ cộng đồng VB6 và tín đồ VB6 đang mòn mõi, hóng hớt và hy vọng ở twinbasic.com tương thích ngược với VB6

2/ Tôi sử dụng Office2021_x64 hết nên không thử HTMLGrid khi viết lại trên VB6 thành HTMLGrid.ocx được

không lẻ xoá Office2021_x64 đi cài lại 32 bít thì thật phí mất thời gian không đáng phải phí hay sao

xong chỉ dò mỗi HTMLGrid để tái sử dụng cho 32 bit :p
 
Upvote 0
@Nguyễn Duy Tuân

Trong VBA có thể lập trình API cửa sổ (Window), các API như Timer, SubClassing, WindowHook, hoặc thư viện như UxTheme Window, GDI, GDIPlus, ..., dựa vào đó sẽ tạo được chức năng tương tự UserControl VB6, và có thể tạo ra controls "ngầu" hơn nhiều theo tư duy và sáng tạo của người phát triển, tất cả VBA đều làm được nhưng cách tiếp cận là tạo mới mã nguồn. VBA không thể tạo ra các Properties vào khung lập trình, nhưng ta có thể tạo chúng với cách riêng.
 
Upvote 0
@Nguyễn Duy Tuân

Trong VBA có thể lập trình API cửa sổ (Window), các API như Timer, SubClassing, WindowHook, hoặc thư viện như UxTheme Window, GDI, GDIPlus, ..., dựa vào đó sẽ tạo được chức năng tương tự UserControl VB6, và có thể tạo ra controls "ngầu" hơn nhiều theo tư duy và sáng tạo của người phát triển, tất cả VBA đều làm được nhưng cách tiếp cận là tạo mới mã nguồn. VBA không thể tạo ra các Properties vào khung lập trình, nhưng ta có thể tạo chúng với cách riêng.

Mình hoàn toàn hiểu và biết tính khả thi đó. Với API ta hoàn toàn tạo được control bằng code. Mình từng có thời gian thử làm những thứ mà không phụ thuộc vào VBA cung cấp rồi, từng tạo cửa sổ Window cùng các controls (Label, Edit, Button) không cần Userform; Tạo Unicode Menu In Userform.

1/ có lẽ cộng đồng VB6 và tín đồ VB6 đang mòn mõi, hóng hớt và hy vọng ở twinbasic.com tương thích ngược với VB6

2/ Tôi sử dụng Office2021_x64 hết nên không thử HTMLGrid khi viết lại trên VB6 thành HTMLGrid.ocx được

không lẻ xoá Office2021_x64 đi cài lại 32 bít thì thật phí mất thời gian không đáng phải phí hay sao

xong chỉ dò mỗi HTMLGrid để tái sử dụng cho 32 bit :p

twinBASIC.jpg

Xem roadmap thì thật tuyệt vời. Có cả lập trình COM, ActiveX thì có thể tạo controls nhúng trong Userform của VBA đó. Năm 2024 có thứ hay để chờ đợi rồi.
 
Upvote 0
Rảnh chơi cho vui tôi mất 10 phút Tách code bài số 28 ra File OCX sử dụng tốt cho Exe

Ai sử dụng Office 32 bit tải về thử xem... cách sử dụng code gần như Form trên VB6

Lần đầu sử dụng phải đăng ký OCX với Windows xong các thao tác khác trên VBA Add OCX vào vào sử dụng xem tình hình sao

Lưu ý OCX viết lại trên VB6 chỉ sử dụng cho 32 bít còn 64 bít là lỗi

Hình Ảnh sử dụng trên Máy tôi OK
1705651047017.png

đăng ký: Kéo File OCX thả vào File Register_ActiveX_OCX_DLL.vbs xong chọn yes là xong
 

File đính kèm

  • MyHTMLGrid.rar
    115.2 KB · Đọc: 1
Upvote 0
Tôi mới Mở cái Latop cùi chạy Office 2021_x32 thử thấy chạy tốt đó

Ai thích thử dò xem ... xem hình --=0--=0--=0

Capture.PNG
Bài đã được tự động gộp:

Tôi mới Mở cái Latop cùi chạy Office 2021_x32 thử thấy chạy tốt đó

Ai thích thử dò xem ... xem hình --=0--=0--=0

Capture.PNG

Xem roadmap thì thật tuyệt vời. Có cả lập trình COM, ActiveX thì có thể tạo controls nhúng trong Userform của VBA đó. Năm 2024 có thứ hay để chờ đợi rồi.
Xem link này fafalone là tay code cứng API viết OCX rồi ... nhưng Tôi tải về Lỗi sử dụng trên Office2021_x64

Nói chung còn dài hơi lắm ... Delphi Ổn định mấy chục năm nay rồi và có tên tuổi trên quốc tế có lẻ dùng nó là Tốt nhất

rảnh tham khảo thêm cho vui và biết thôi
 
Upvote 0
Web KT
Back
Top Bottom