Đến nội dung


Hình ảnh
* * * - - 17 Bình chọn

Hỏi về Lisp (thuật toán, ý tưởng, coding,...)


  • Please log in to reply
2849 replies to this topic

#1621 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 21 April 2013 - 06:41 PM

bác Tuệ phán ket kinh quá :( Bác Tuệ đọc lại ví dụ của bác Hạ và của bác, ngay cạnh nhau, lẽ nào bác k phân biệt được 2 cái đó khác nhau ở đâu :( Cal là cal nói chung, k phải chỉ có hàm cal, mà có cả lệnh cal bác ạ. Hàm cal chỉ là một phần của lệnh cal

Hề hề, sai thì mình kêu sai, có chi mà kinh hở ket?

Ví dụ cụ thể về hàm CAL hay lệnh CAL đều không nhận biến e:

 
Command: (setq e 2)
2
 
Command: CAL
>> Expression: e*2
0
 
Command: (cal "e*2")
0.0

  • 1

#1622 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 21 April 2013 - 09:06 PM

Thì ra là ngược nhau ?

Bác đã test code gốc của Tue_NV ở bài viết #1586 chưa?

 

 

Cái này chắc phải dùng hàm để liệt kê là xong

Hình như CAL đâu có cho nhận biến nhỉ? 

 

Ket vẫn đang phản pháo về bài này.

http://docs.autodesk...mber=d30e257837

 

Thì ra nó chịu ảnh hưởng của biến DimZin

Bác set biến dimzin = 0 rồi chạy thử với các ví dụ mà bác chạy chưa được thử xem

 

Muốn e làm biến cũng đơn giản thôi, có điều CAL không chấp nhận biếne! Tên Ket đoán bừa  :D

 

Đọc kỹ lại thì chữ e ở đây mới và bé quá, ketxu nhìn k ra, chắc là lúc trước ket đọc liên thiên nên nói liên thiên ? :( Hic. Hóa ra là bác Tuệ chỉ muốn nói đến E nói riêng ? (cái bác Hạ test a, bác Tuệ test E, viết E như này, ketxu đọc hiểu là của Em (bác Tuệ) như này :)) )

 

 

Lúc trước chưa ngồi máy CAD để test, thế để Ket nói lại cho chuẩn : CAL chấp nhận e, nhưng nó ngu nên nó hiểu e luôn luôn là đại diện cho biểu diễn mũ,  0^ = 0 =))  (*)

 

Không chấp nhận thì nó là  kiểu này cơ Wrong real number exponent với cal command hay nil với cal funtion  hay đại loại thế cơ

1e và 2e là sai cú pháp biểu diễn số thì khỏi nói.

 

 

 

Câu ket nói giết người là bác hiểu ngược ý của ketxu rồi - giết là giết cái người muốn tính nhưng bị sửa đi ấy

1- Vì nó (*) nên khi người dùng muốn cho e vào trong biểu thức, ví dụ mong muốn "1+e" thì các bác sửa thành gì rồi ?

2- Nếu đặt biến e1, e2 (ví dụ e1 = 2, e2 = 3) ..., người ta muốn tính 1+e1 = 3, 2*e2 = 6, thì chạy lisp nó sửa đi thành cái j ạ ?

 

Tks bác Tuệ và các bác đã viết lisp về các vấn đề này lần nữa, mở mang được kha khá rồi ^^ Bị chém te tua vì gà quá mà hay thổi bão ^^


  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#1623 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 21 April 2013 - 09:58 PM

.....

Câu ket nói giết người là bác hiểu ngược ý của ketxu rồi - giết là giết cái người muốn tính nhưng bị sửa đi ấy

1- Vì nó (*) nên khi người dùng muốn cho e vào trong biểu thức, ví dụ mong muốn "1+e" thì các bác sửa thành gì rồi ?

2- Nếu đặt biến e1, e2 (ví dụ e1 = 2, e2 = 3) ..., người ta muốn tính 1+e1 = 3, 2*e2 = 6, thì chạy lisp nó sửa đi thành cái j ạ ?

 

Tks bác Tuệ và các bác đã viết lisp về các vấn đề này lần nữa, mở mang được kha khá rồi ^^ Bị chém te tua vì gà quá mà hay thổi bão ^^

 

Mình nói CAL không chấp nhận biến e, tức là không nhận giá trị của biến e đấy. Vd: (setq e 2) . Cal nó không chấp nhận giá trị 2 của biến e. Thôi không bàn đến cái này nữa, có thể là hiểu nhầm ý của nhau

 

Trở lại 2 vấn đề của Ket

1) và 2) Mình thấy nếu đã là biến thì nên dựa vào biểu thức của Lisp để xử lý. Vậy là xong, khỏi phải lăn tăn về trường hợp biến "e" như ở trên. Ví dụ như 1e, 2e cũng có thể là biến , nhưng nó sai biểu diễn số, đưa vào CAL cũng sẽ Wrong

 

 

Mời Ket phản pháo   :lol:


  • 0

#1624 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 21 April 2013 - 10:54 PM

 Mình thấy nếu đã là biến thì nên dựa vào biểu thức của Lisp để xử lý. Vậy là xong, khỏi phải lăn tăn về trường hợp biến "e" như ở trên. Ví dụ như 1e, 2e cũng có thể là biến , nhưng nó sai biểu diễn số, đưa vào CAL cũng sẽ Wrong

 

 

Mời Ket phản pháo   :lol:

 

Ket hok hiểu hết ý bác nên k biết phản cái pháo nào nữa ^^ Có phần in đậm thì đồng thuận thôi. TL đang muốn các bác xử lý thằng "e", còn ket muốn lưu ý về vấn đề 2 có thể xảy ra trong chuỗi :) 


  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#1625 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 22 April 2013 - 05:49 AM

Ket hok hiểu hết ý bác nên k biết phản cái pháo nào nữa ^^ Có phần in đậm thì đồng thuận thôi. TL đang muốn các bác xử lý thằng "e", còn ket muốn lưu ý về vấn đề 2 có thể xảy ra trong chuỗi :)

 

Bạn TL chỉ muốn xử lý số thực có chứa e thôi. Và Tue_NV đã xử lý rồi.

Còn e1, e2 , e3 là biến, chứ có phải là số đâu??


  • 0

#1626 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 26 April 2013 - 08:50 AM

Mình viết hàm dùng chuyễn nhóm đối tượng thành list đối tượng chạy ok như sau:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;Tao list tu tap hop chon
;;;Cu phap su dung (duy:taolist<tapchon tapchon) 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun duy:taolist<tapchon (tapchon / tapchon listtc stt sdt chondt)
(setq stt 0)
(setq sdt (sslength tapchon))
(while (< stt sdt)
(setq chondt (ssname tapchon stt))
(setq listtc (cons chondt listtc))
(setq stt (+ stt 1))
)
listtc)

 

Sau đó vì nhu cầu mình lại viết hàm chuyễn cái list này thành tập hợp chọn như sau:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;Tao tap hop chon tu list  
;;;Cu phap su dung (duy:taotapchon<list listtc) 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun duy:taotapchon<list (listtc / tapchon dtc)
(foreach dtc listtc
(ssadd dtc tapchon)
)
tapchon)

 

Nhưng test thử thì hàm này ko chạy được dù mình thấy có sai chi mô.

(defun c:ctt ()
(setq tdt (ssget))
(setq ldt (duy:taolist<tapchon tdt))
(setq dtcd (duy:taotapchon<list ldt))
(command ".copy" dtcd "" (getpoint) (getpoint))
)

 

Chắc là có sai mà mình ko thấy, các bác tinh mắt ngó giúp với. Cám ơn!


  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#1627 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6007 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 26 April 2013 - 09:27 AM

Mình viết hàm dùng chuyễn nhóm đối tượng thành list đối tượng chạy ok như sau:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;Tao list tu tap hop chon
;;;Cu phap su dung (duy:taolist<tapchon tapchon) 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun duy:taolist<tapchon (tapchon / tapchon listtc stt sdt chondt)
(setq stt 0)
(setq sdt (sslength tapchon))
(while (< stt sdt)
(setq chondt (ssname tapchon stt))
(setq listtc (cons chondt listtc))
(setq stt (+ stt 1))
)
listtc)

 

Sau đó vì nhu cầu mình lại viết hàm chuyễn cái list này thành tập hợp chọn như sau:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;Tao tap hop chon tu list  
;;;Cu phap su dung (duy:taotapchon<list listtc) 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun duy:taotapchon<list (listtc / tapchon dtc)
(foreach dtc listtc
(ssadd dtc tapchon)
)
tapchon)

 

Nhưng test thử thì hàm này ko chạy được dù mình thấy có sai chi mô.

(defun c:ctt ()
(setq tdt (ssget))
(setq ldt (duy:taolist<tapchon tdt))
(setq dtcd (duy:taotapchon<list ldt))
(command ".copy" dtcd "" (getpoint) (getpoint))
)

 

Chắc là có sai mà mình ko thấy, các bác tinh mắt ngó giúp với. Cám ơn!

Hề hề hề,

Bác thử kiểm tra lại việc khai báo biến cục bộ xem sao.....


  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#1628 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 26 April 2013 - 09:29 AM

Mình viết hàm dùng chuyễn nhóm đối tượng thành list đối tượng chạy ok như sau:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;Tao list tu tap hop chon
;;;Cu phap su dung (duy:taolist<tapchon tapchon) 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun duy:taolist<tapchon (tapchon / tapchon listtc stt sdt chondt)
(setq stt 0)
(setq sdt (sslength tapchon))
(while (< stt sdt)
(setq chondt (ssname tapchon stt))
(setq listtc (cons chondt listtc))
(setq stt (+ stt 1))
)
listtc)

 

Sau đó vì nhu cầu mình lại viết hàm chuyễn cái list này thành tập hợp chọn như sau:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;Tao tap hop chon tu list  
;;;Cu phap su dung (duy:taotapchon<list listtc) 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun duy:taotapchon<list (listtc / tapchon dtc)
(foreach dtc listtc
(ssadd dtc tapchon)
)
tapchon)

 

Nhưng test thử thì hàm này ko chạy được dù mình thấy có sai chi mô.

(defun c:ctt ()
(setq tdt (ssget))
(setq ldt (duy:taolist<tapchon tdt))
(setq dtcd (duy:taotapchon<list ldt))
(command ".copy" dtcd "" (getpoint) (getpoint))
)

 

Chắc là có sai mà mình ko thấy, các bác tinh mắt ngó giúp với. Cám ơn!

 

Anh phải khởi tạo tập chọn trước cái đã. (setq tapchon (ssadd))

 
(defun duy:taotapchon<list (listtc / tapchon dtc)
  (setq tapchon (ssadd))
(foreach dtc listtc
(setq tapchon (ssadd dtc tapchon))
)
tapchon)

  • 1

#1629 HoaVien

HoaVien

    biết vẽ arc

  • Members
  • PipPip
  • 44 Bài viết
Điểm đánh giá: 12 (tàm tạm)

Đã gửi 26 April 2013 - 09:32 AM

Mình viết hàm dùng chuyễn nhóm đối tượng thành list đối tượng chạy ok như sau:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;Tao list tu tap hop chon
;;;Cu phap su dung (duy:taolist<tapchon tapchon) 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun duy:taolist<tapchon (tapchon / tapchon listtc stt sdt chondt)
(setq stt 0)
(setq sdt (sslength tapchon))
(while (< stt sdt)
(setq chondt (ssname tapchon stt))
(setq listtc (cons chondt listtc))
(setq stt (+ stt 1))
)
listtc)

 

Sau đó vì nhu cầu mình lại viết hàm chuyễn cái list này thành tập hợp chọn như sau:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;Tao tap hop chon tu list  
;;;Cu phap su dung (duy:taotapchon<list listtc) 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun duy:taotapchon<list (listtc / tapchon dtc)
(foreach dtc listtc
(ssadd dtc tapchon)
)
tapchon)

 

Nhưng test thử thì hàm này ko chạy được dù mình thấy có sai chi mô.

(defun c:ctt ()
(setq tdt (ssget))
(setq ldt (duy:taolist<tapchon tdt))
(setq dtcd (duy:taotapchon<list ldt))
(command ".copy" dtcd "" (getpoint) (getpoint))
)

 

Chắc là có sai mà mình ko thấy, các bác tinh mắt ngó giúp với. Cám ơn!

Cần "giải phóng mặt bằng" trước khi "khởi công".

(defun duy:taotapchon<list (listtc / tapchon dtc)
  (setq tapchon (ssadd))
  (foreach dtc listtc
    (ssadd dtc tapchon))
  tapchon)


  • 1

#1630 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 26 April 2013 - 09:36 AM

Thiếu hàm này:

(setq tapchon (ssadd))


  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#1631 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 26 April 2013 - 09:37 AM

Oa! Mới post xong, thấy 1 loạt!


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#1632 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 26 April 2013 - 09:57 AM

Tại mình đọc tài tiệu thấy bảo nếu tập chọn tapchon là nil thì nó sẽ được tạo ra với 1 đối tượng là doituong với dòng

(ssadd doituong tapchon).

cảm ơn tất cả các bác!


  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#1633 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 01 May 2013 - 12:36 PM

Tôi có 1 dialog gồm 5 list_box. Các list trong 5 list_box có length bằng nhau và quan hệ 1-1, nghĩa là khi chọn vào thành phần thứ n của 1 trong 5 list_box thì các thành phần thứ n của 4 list_box còn lại cũng được chọn.

Hỏi: thông thường thì 5 item được chọn nằm thẳng hàng như hình 1.

67029_dung.png

Tuy nhiên, khi kéo con trượt ở 1 list_box nào đó đi 1 đoạn, sau đó chọn 1 item thì 4 list_box kia dù vẫn chọn đúng thành phần nhưng chúng thể hiện có thể không thẳng hàng như hình 2.

67029_sai.png

Làm thế nào để khi chọn thì chúng luôn trượt đến thẳng hàng nhau?


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#1634 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 01 May 2013 - 03:38 PM

Việc này chỉ để làm đẹp hộp thoại chứ không tạo thêm hiệu quả sử dụng. Mình từng viết 1 ứng dụng thiết kế taluy trắc ngang cho nova có sử dụng hộp thoại song song 2 listbox thế này.
Theo mình nhớ thì: Nếu trong quá trình sử dụng, dùng chuột để pick chọn trong 1 bên list box thì các listbox còn lại sẽ tự nhảy và tự cuộn cho ngang hàng thì phải. Nếu đúng thì bác có thể lợi dụng nó găn vào action của các thanh cuộn.
trong trường hợp danh sách của bác không quá dài thì có thể làm như mình từng làm: viết hộp thoại để listbox có thể tự động thay đổi kích thước theo chiều dài của dach sách phần tử, khi đó sẽ không cần phải cuộn nữa. Cần một chút sáng tạo và khéo léo khi code để làm việc này.
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#1635 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 01 May 2013 - 03:50 PM

Việc này chỉ để làm đẹp hộp thoại chứ không tạo thêm hiệu quả sử dụng. Mình từng viết 1 ứng dụng thiết kế taluy trắc ngang cho nova có sử dụng hộp thoại song song 2 listbox thế này.
Theo mình nhớ thì: Nếu trong quá trình sử dụng, dùng chuột để pick chọn trong 1 bên list box thì các listbox còn lại sẽ tự nhảy và tự cuộn cho ngang hàng thì phải. Nếu đúng thì bác có thể lợi dụng nó găn vào action của các thanh cuộn.
trong trường hợp danh sách của bác không quá dài thì có thể làm như mình từng làm: viết hộp thoại để listbox có thể tự động thay đổi kích thước theo chiều dài của dach sách phần tử, khi đó sẽ không cần phải cuộn nữa. Cần một chút sáng tạo và khéo léo khi code để làm việc này.

Đỏ: đúng thì đúng rồi nhưng đẹp thì chưa đẹp nên câu hỏi này là chỉ muốn làm đẹp thôi.

Xanh: list của tôi nó dài lắm, cái đưa lên hỏi là tương đối ngắn, chứ cái dài nhất nó tới khoảng 500 em => phải cuộn thôi. Với lại list_box thay đổi height này nhìn cứ bị "chớp chớp" hoài à.


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#1636 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 01 May 2013 - 03:54 PM

Tôi có 1 dialog gồm 5 list_box. Các list trong 5 list_box có length bằng nhau và quan hệ 1-1, nghĩa là khi chọn vào thành phần thứ n của 1 trong 5 list_box thì các thành phần thứ n của 4 list_box còn lại cũng được chọn.

Hỏi: thông thường thì 5 item được chọn nằm thẳng hàng như hình 1.

67029_dung.png

Tuy nhiên, khi kéo con trượt ở 1 list_box nào đó đi 1 đoạn, sau đó chọn 1 item thì 4 list_box kia dù vẫn chọn đúng thành phần nhưng chúng thể hiện có thể không thẳng hàng như hình 2.

67029_sai.png

Làm thế nào để khi chọn thì chúng luôn trượt đến thẳng hàng nhau?

 

Vấn đề "dung nhan" của hộp thoại chính là vấn đề  điểm yếu của DCL. Chấp nhận thế thôi bác  :( 


  • 0

#1637 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 01 May 2013 - 04:11 PM

Vấn đề "dung nhan" của hộp thoại chính là vấn đề  điểm yếu của DCL. Chấp nhận thế thôi bác  :( 

DCL xấu xí thì đành chịu, nhưng tôi nghĩ câu hỏi này có thể giải được. Bởi tôi có thể đưa chúng lên thẳng hàng được nhưng phải kèm điều kiện là chúng cùng trượt lên đầu hoặc cuối list_box, còn khi item nằm lưng chừng thì đang bí. Có cách gì để xác định item được chọn đang nằm ở hàng thứ mấy (từ trên xuống) trong list_box không ta?


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#1638 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 01 May 2013 - 05:21 PM

Ô! Gettile.
hay tôi đang hiểu nhầm? Ý bác là hàng thứ mấy trên giao diện hộp thoại chăng?
Mấy trăm thì nếu là tôi, tôi sẽ chọn giải pháp phân trang. Mỗi trang khoảng 25 đến 50 phần tử. Chứ với 500 phần tử mà bác cuộn để tìm thì hơi mệt mỏi đấy.
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#1639 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 01 May 2013 - 05:30 PM

Vâng! Hàng ở đây là thứ mấy trong cái list_box ấy mà. VD list có 100 item, nhưng thể hiện trong list_box chỉ là 10 item, tương ứng 10 hàng (do height quy định). Chọn hàng thứ 2 trong list_box thì làm sao biết nó là hàng thứ 2? (Như trong hình 1 tôi post lên là hàng thứ 5).


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#1640 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 01 May 2013 - 06:00 PM

Ngoài ra nếu bác không tiếc công sức đã bỏ ra để viết hộp thoại trên thì có thể viết lại theo hướng khác, đảm bảo đẹp hơn, chạy nhanh hơn (tôi có thể chắc chắn rằng hộp thoại trên của bác khi chạy luôn có độ trễ) và không cần phải giải quyết vấn đề mà bác đang đề cập.
Tổ chức dữ liệu của bác khá đơn giản. Có thể dùng dấu tab để phân cách dữ liệu trên 1 dòng listbox. Qua đó tạo các hàng và cột như trên chỉ với một listbox duy nhất.
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD