Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
nguyentuyen6

[Hỏi]DCL

Các bài được khuyến nghị

Mình có cái Lisp như thế này:

(defun c:test ()
(setq dcl_id (load_dialog "test1.dcl"))
 ;;;--- Load the dialog definition if it is not already loaded
 (if (not (new_dialog "TEST1" dcl_id ))
   (progn
	(alert "The TEST1.DCL file could not be loaded!")
     (exit)
   )
 )
	;;;--- If an action event occurs, do this function
 (action_tile "pick" "(setq ddiag 1)(done_dialog)")
 (action_tile "cancel" "(setq ddiag 2)(done_dialog)")
 (start_dialog)
 (unload_dialog dcl_id)
 ;;;--- If the user pressed the PICK button
 (if(= ddiag 1)
   (Pick)
 )
 ;;;--- If the user pressed the Cancel button
 (if(= ddiag 2)
   (princ "\nCancelled!")
 )
 (princ)
)
(defun Pick(); Pick chon blok
 (setq	maublk (car (entsel "\nChon Block khung ten: "))
 )
)

 

DCL:

 

TEST1 : dialog {
         label = "TESS1";
           : boxed_row {
             : button {
               key = "pick";
               label = " PICK ";
               is_default = true;
             }
             : button {
               key = "cancel";
               label = " Cancel ";
               is_default = false;
               is_cancel = true;
             }

         }
}

 

Cho e hỏi làm sao để sau khi chọn nút Pick thì nó lại hiện lên bảng chọn tiếp!!!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Mọi người cho e hỏi nhanh 1 câu là : làm sao để cái text trong Edit_box nó nằm bên phải nhỉ ^^ Cad e đang đơ rồi ^^

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Mọi người cho e hỏi nhanh 1 câu là : làm sao để cái text trong Edit_box nó nằm bên phải nhỉ ^^ Cad e đang đơ rồi ^^

 

Chắc là chịu thôi Ket à!

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

E Gia Cát Dự là cái alignment nó chỉ có tác dụng sắp xếp thằng edit_box này trong tile mẹ, chứ không có cho Text trong chính edit_box, hóa ra đúng thật ạ ? Hề hề

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

E Gia Cát Dự là cái alignment nó chỉ có tác dụng sắp xếp thằng edit_box này trong tile mẹ, chứ không có cho Text trong chính edit_box, hóa ra đúng thật ạ ? Hề hề

 

Đúng là thằng alignment là để xác định vị trí của edit_box trong dialoge chứ không phải xác định vị trí text trong edit_box.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Ôi, ketxu gà DCL quá.Mọi người cho ketxu hỏi, khi gán action_tile vào 1 edit_box, hình như là phải đến lúc thay đổi focus thì nó mới apply đúng không ?

Ví dụ có 2 edit_box A và B. Đặt action cho edit_box A là hiển thị bên edit_box B nội dung tương tự => kết quả là khi đánh xong text ở A rồi, phải pick chuột ra chỗ khác mới thấy nhảy text ở B. Vậy có cách nào khắc phục không ?

(Cái này hình như nói ở bên topic Tiếng Việt trong hộp thoại rồi thì phải ^^)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Ôi, ketxu gà DCL quá.Mọi người cho ketxu hỏi, khi gán action_tile vào 1 edit_box, hình như là phải đến lúc thay đổi focus thì nó mới apply đúng không ?

Ví dụ có 2 edit_box A và B. Đặt action cho edit_box A là hiển thị bên edit_box B nội dung tương tự => kết quả là khi đánh xong text ở A rồi, phải pick chuột ra chỗ khác mới thấy nhảy text ở B. Vậy có cách nào khắc phục không ?

(Cái này hình như nói ở bên topic Tiếng Việt trong hộp thoại rồi thì phải ^^)

Câu hỏi của Ket cũng là câu trả lời rồi đó! Theo những gì tôi biết thì không thể. Cái này cũng có nhược nhưng cũng có ưu:

* Nhược: ít nhất là không thoả mãn nhu cầu của Ket trong trường hợp này.

* Ưu: khi nhập liệu vào edit_box chúng ta thường vẫn phải kèm theo 1 hàm để kiểm tra số liệu nhập (tương tự initget trong các câu lisp vậy). Do đó, nếu nhập đến đâu mà nó apply đến đó thì nguy hiểm lắm. VD: Ket muốn số a nhập vào phải thoả 15<a<20, và Ket dự định nhập a=17. Tuy nhiên, khi Ket mới nhập xong số 1 (mà chưa nhập số 7) thì nếu apply sẽ bị lỗi ngay, đúng không.

Biết đến đâu nói đến đó vậy thôi.

Thân thương!

P/S: bên Topic đó không hề thấy bàn về vấn đề này Ket ạ.

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Mình có đoạn DCL như sau:

 

: radio_button {
  	label = "Button-Label";
  	key = "Button-Key";
  	}

Mình muốn Button-Label thay đổi động theo tham số truyền vào từ AutoLisp có được không? Mình đã thử dùng hàm (set_tile mà không có tác dụng.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Mình có đoạn DCL như sau:

 

: radio_button {
  	label = "Button-Label";
  	key = "Button-Key";
  	}

Mình muốn Button-Label thay đổi động theo tham số truyền vào từ AutoLisp có được không? Mình đã thử dùng hàm (set_tile mà không có tác dụng.

ý lovelisp là radio button nhớ lần chọn trước ấy hả

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Không bạn ạ! Hộp thoại của mình như thế này:

99835_dcl1_1.jpg

Mình muốn:

- Khi chọn vào nút "Add" thì nút "Select1" sẽ biến thành "Select addends".

- Khi chọn vào nút "Subtract" thì nút "Select1" sẽ biến thành "Select subtrahend".

- Khi chọn vào nút "Multiply" thì nút "Select1" sẽ biến thành "Select multiplier".

- Khi chọn vào nút "Divide" thì nút "Select1" sẽ biến thành "Select dividend".

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Không bạn ạ! Hộp thoại của mình như thế này:

99835_dcl1_1.jpg

Mình muốn:

- Khi chọn vào nút "Add" thì nút "Select1" sẽ biến thành "Select addends".

- Khi chọn vào nút "Subtract" thì nút "Select1" sẽ biến thành "Select subtrahend".

- Khi chọn vào nút "Multiply" thì nút "Select1" sẽ biến thành "Select multiplier".

- Khi chọn vào nút "Divide" thì nút "Select1" sẽ biến thành "Select dividend".

bạn thay button bằng image_button sẽ biến được

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Nếu bạn vẫn thích thay đổi label của button thì trong trường hợp đơn giản, ví dụ với dialoge bạn gởi lên, bạn có thể tạo thêm các dialoge trong file dcl, để khi 1 radio_button được chọn thì nó sẽ unload dialoge này và load dialoge kia.

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Cách của bác Hạ là đơn giản nhất, có điều, sau khi chọn radio_button thì màn hình sẽ bị nhấp nháy một lần để tắt và tải hộp thoại khác.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Cho mình hỏi, muốn tạo đối tượng trong hộp thoại là text, cho bôi đen và copy nhưng không cho sửa (như ô màu đỏ) thì dùng loại đối tượng nào trong DCL?

99835_dcl2.png

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Cách của bác Hạ là đơn giản nhất, có điều, sau khi chọn radio_button thì màn hình sẽ bị nhấp nháy một lần để tắt và tải hộp thoại khác.

Tất nhiên là như thế rồi! Nó hoán đổi dialoge mà. Với lại, nếu dialoge cần đọc số liệu nhiều thì chờ hơi bị lâu nữa.

Có mẹo này nữa, để khỏi hoán đổi dialoge:

Bạn tách button "Select1" ra làm 2 column liền kề nhau: column1 là text, column2 là button (ví dụ chỉ gồm dấu "<<"). Khi chọn 1 radio_button thì value của text thay đổi theo.

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Cho mình hỏi, muốn tạo đối tượng trong hộp thoại là text, cho bôi đen và copy nhưng không cho sửa (như ô màu đỏ) thì dùng loại đối tượng nào trong DCL?

99835_dcl2.png

1). Dialoge này không tạo bằng DCL.

2). Bạn dùng edit_box nhưng gán action link đến một giá trị nào đó thì sửa sẽ không hiệu nghiệm. Dù bạn có delete nó nhưng khi mouse nhảy qua tile khác thì nó trở về giá trị cũ ngay.

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay
Đăng nhập để thực hiện theo  

×