Đến nội dung


Hình ảnh
- - - - -

Edit_box trong dialog


  • Please log in to reply
9 replies to this topic

#1 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 01 June 2010 - 09:58 AM

Hix hix làm ơn chỉ mình về lấy dữ liệu trong edit_box ra cho biến với. mình lay hoay mà vẫn không gắn được giá trị cho biến từ dialog.
Giá trị của biến của mình gồm 2 giá trị.
- toạ độ của 1 điểm trên cad.
- số dạng real.
Làm ơn chỉ giúp mình nhé. Lay hoay và tìm hiểu mãi không hiểu nên mong các bạn chỉ dùm.
  • 0
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.

#2 hoa35ktxd

hoa35ktxd

    biết lệnh move

  • Members
  • PipPipPip
  • 125 Bài viết
Điểm đánh giá: 38 (tàm tạm)

Đã gửi 01 June 2010 - 11:59 AM

Bạn hãy dùng hàm Get_tile nhé
  • 0

#3 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 01 June 2010 - 12:35 PM

Bạn hãy dùng hàm Get_tile nhé

mình đã dùng nhưng k được.
  • 0
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.

#4 hoa35ktxd

hoa35ktxd

    biết lệnh move

  • Members
  • PipPipPip
  • 125 Bài viết
Điểm đánh giá: 38 (tàm tạm)

Đã gửi 01 June 2010 - 03:12 PM

Bạn hãy gửi code lên để mọi người xem giúp.
  • 0

#5 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 01 June 2010 - 03:23 PM

mình đã dùng nhưng k được.

Chào bạn 18011985,
Bạn muốn lấy giá trị của biến trong edit-box thì bạn cần lưu ý tới việc đặt tên biến và sử dụng hàm savevars để lưu biến. Hãy đọc kỹ tài liệu mà mình đã gửi cho bạn.
Chúc bạn thành công.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#6 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 01 June 2010 - 04:30 PM

Chào bạn 18011985,
Bạn muốn lấy giá trị của biến trong edit-box thì bạn cần lưu ý tới việc đặt tên biến và sử dụng hàm savevars để lưu biến. Hãy đọc kỹ tài liệu mà mình đã gửi cho bạn.
Chúc bạn thành công.

Mình đã đọc nhưng chưa thông. Mình post đoạn lsp lên bạn góp ý hộ mình nhé.
(defun c:a1 ()
(setq dcl_id (load_dialog "Kcd.DCL"))
(while (not (vl-position hanh '(1 0)))
(if (not (new_dialog "Kcd" dcl_id))
(progn
(alert "\n Kh«ng t×m ®­îc file dcl")
(exit)))
(action_tile "diem1" "(done_dialog 2)")
(action_tile "diem2" "(done_dialog 3)")
(setq hanh (start_dialog))
(if (= hanh 2) (setq diem1 (getpoint)) )
(if (= hanh 3) (setq diem2 (getpoint)) )
);while
(action_tile "accept" "(savevar)(done_dialog)")
(setq dcl_id (unload_dialog dcl_id))
)
(defun savevar()
(setq tyleD1 (atof (get_tile "tyleD")))
(setq tyleN1 (atof (get_tile "tyleN")))
(setq Mss1 (atof (get_tile "Mss")))
)

Còn đây là đoạn DCL

Kcd : dialog { label = "----------------------------";
:column {
:boxed_column {
:text {
label = "------------------------";
alignment = centered;
}
:boxed_column {
label = "Lùa chän tû lÖ";
:edit_box {
key = "tyleD";
label = "Tû lÖ ®øng: ";
edit_width = 10;
value = "100";
}
:edit_box {
key = "tyleN";
label = "Tû lÖ ngang: ";
edit_width = 10;
value = "100";
}
:edit_box {
key = "Mss";
label = "Møc so s¸nh: ";
edit_width = 10;
value = "0";
}
}
:boxed_column {
label = "Lùa chän ®­êng giãng";
:row {
:text {
label = "§iÓm ®Çu ®­êng giãng: ";
}
:button {
key = "diem1";
label = "Chän ®iÓm";
}
}
:row {
:text {
label = "§iÓm cuèi ®­êng giãng: ";
}
:button {
key = "diem2";
label = "Chän ®iÓm";
}
}
}
:spacer {height=1;}
ok_cancel;
}
}
}

  • 0
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.

#7 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 02 June 2010 - 08:12 AM

Mình đã đọc nhưng chưa thông. Mình post đoạn lsp lên bạn góp ý hộ mình nhé.

(defun c:a1 ()
(setq dcl_id (load_dialog "Kcd.DCL"))
(while (not (vl-position hanh '(1 0)))
(if (not (new_dialog "Kcd" dcl_id))
(progn
(alert "\n Kh«ng t×m ®­îc file dcl")
(exit)))
(action_tile "diem1" "(done_dialog 2)")
(action_tile "diem2" "(done_dialog 3)")
(setq hanh (start_dialog))
(if (= hanh 2) (setq diem1 (getpoint)) )
(if (= hanh 3) (setq diem2 (getpoint)) )
);while
(action_tile "accept" "(savevar)(done_dialog)")
(setq dcl_id (unload_dialog dcl_id))
)
.......................

.........................................

Hàm get_tile phải đặt trong vòng lặp WHILE
chú ý giải phóng biến cục bộ.
code :
(defun c:a1 (/ dcl_id diem1 diem2 hanh Mss1 tyleD1 tyleN1)
(setq dcl_id (load_dialog "Kcd.DCL"))
(while (not (vl-position hanh '(1 0)))
(if (not (new_dialog "Kcd" dcl_id))
(progn
(alert "\n Kh≪ng t×m R-ic file dcl")
(exit)))
(action_tile "diem1" "(done_dialog 2)")
(action_tile "diem2" "(done_dialog 3)")

(action_tile "accept" "(savevar)(done_dialog)")
(setq hanh (start_dialog))
(if (= hanh 2) (setq diem1 (getpoint)) )
(if (= hanh 3) (setq diem2 (getpoint)) )
);while
(setq dcl_id (unload_dialog dcl_id))
(princ))

  • 0

#8 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 02 June 2010 - 11:19 AM

cảm ơn gia_bach mình chưa thử lại bài mình post lên. Trước đấy mình bị lỗi ở chỗ get_tile vì mình lấy biến là số thực mà cứ get_tile trả về giá trị STR hì hì. Mình phải dùng thêm atof nữa giờ đã hiểu hơn. Cảm ơn bạn lần nữa.
  • 0
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.

#9 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 12 June 2010 - 10:03 PM

Hì hì vừa xem bóng đá vừa làm, nhưng vướng mắc không có giải đáp, anh em chỉ cho mình nhé.
đối với đầu vào của editbox là số VD: 123
(action_tile "so" "(setq so1 $value)")
Nhưng đầu vào của mình nhập vào là chữ và số VD 1a thì
(action_tile "so" "(setq so1 $value)")
Không còn đúng nữa. Các bạn chỉ cho mình nhé.
  • 0
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.

#10 duyanhhcm

duyanhhcm

    biết vẽ arc

  • Members
  • PipPip
  • 40 Bài viết
Điểm đánh giá: 8 (bình thường)

Đã gửi 13 June 2010 - 12:33 AM

Hì hì vừa xem bóng đá vừa làm, nhưng vướng mắc không có giải đáp, anh em chỉ cho mình nhé.
đối với đầu vào của editbox là số VD: 123
(action_tile "so" "(setq so1 $value)")
Nhưng đầu vào của mình nhập vào là chữ và số VD 1a thì
(action_tile "so" "(setq so1 $value)")
Không còn đúng nữa. Các bạn chỉ cho mình nhé.

- Bạn lấy ra giá trị của "so" qua một dòng lệnh theo kiểu sau:
(setq so 3); biến này là biến toàn cục của Chtrình chính tức đặt trên DEFUN C: ..., không đưa vào danh sách biến cục bộ.
(setq stt3 (rtos so)); biến này được đặt sau DEFUN C:... nhưng trước chương trình con dành cho Dialog.
(action_tile "so" "(setq stt3 (get_tile\"so\"))(setq so (atoi $value))")
- Sau khi nhập bất kỳ Str, hay Real, ... bạn đều được Editbox ghi lại qua biến "so". và việc chạy tiếp dialog sẽ thực hiện qua giá trị mới của "so" này.
- CT sẽ bị lỗi nếu "so" không hợp lệ. Vậy trước đó phải lập một ct con ktra tính hợp lệ của "so". Nên nhớ (rtos Str) luôn < 0. Do vậy lập ctc ktra như sau:
;---------------
(DEFUN xuly33 ()
(if (<= (atof so) 0)(loaibo))
)
;---------------
(DEFUN loaibo ()
(setq DCLID (load_dialog "DUYLISP\\chaohoi.dcl"))
(new_dialog "traloi6" DCLID)
(start_dialog)(unload_dialog DCLID)(exit)
)
File DCL trong DuyLisp\chaohoi.dcl:
traloi6 : dialog {
label = "Ph¹m Duy Anh - ThÊy lçi !";
: text {label = "";
}: text {
label = "- B¹n nhËp tû lÖ b¶n vÏ kh«ng hîp lÖ !";
alignment = left;
}: text {label = "- H·y nhËp gi¸ trÞ tû lÖ > 0 vµ lµm l¹i.";
alignment = left;}: text {label = " ";}ok_only;}

Chúc vui vẻ !
  • 0
DU KHONG TIM THAY PHUOC, IT RA THAY HOA MA TRANH DI...