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

Tính toán trên cùng 1 textbox

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

Chào các bạn!
     Có 1 câu hỏi nhỏ nhỏ muốn diễn đàn, các cao thủ ra tay.
 Mình có 1 textbox, sau khi nhập data vào đó, muốn nó tính toán và trả về kết quả luôn trên đó.
Ví dụ nhập vào như sau: 1+2 và kết quả nhận được ngay trên đó là: 1+2=3. Sau đó lại có thể lấy
 kết quả để thực hiện một phép tính thứ 2,3 ... (như 1 chiếc máy tính nho nhỏ)

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

 



 

 

Chào các bạn!

     Có 1 câu hỏi nhỏ nhỏ muốn diễn đàn, các cao thủ ra tay.

 Mình có 1 textbox, sau khi nhập data vào đó, muốn nó tính toán và trả về kết quả luôn trên đó.

Ví dụ nhập vào như sau: 1+2 và kết quả nhận được ngay trên đó là: 1+2=3. Sau đó lại có thể lấy

 kết quả để thực hiện một phép tính thứ 2,3 ... (như 1 chiếc máy tính nho nhỏ)

nếu bạn có cài excel : thì có thể dùng hàm evaluate : Application.evaluate()

hoặc dùng MSscriptcontrol :

 

function Evaluate(byVal sFormula as String) as String

Dim oScript As MSScriptControl.ScriptControl
Set oScript = New MSScriptControl.ScriptControl
oScript.Language = "VBScript"
oScript.AddCode ("Res = " & sFormula)
Evaluate = oScript.Eval("Res")

Set oScript = nothing


End Function

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

Dùng cái lisp này cũng được. Chỉ cần enter thôi, còn nhấn ok là thoát. Sau khi tính muốn dùng kết quả để tính tiếp thì cứ enter.

 

(defun c:ical (/ name file str id sup)
  (defun tinh(st / vt)
    (if (and st (/= st "") (not (vl-string-search "=" st)))
      (set_tile "cal" (strcat st "=" (rtos (cal st))))
      (if (setq vt (vl-string-search "=" st)) (set_tile "cal" (substr st (+ 2 vt)))))
  )
  (setq str 
  "ICAL : dialog {label = \"ICal\" ;
        : column {
        : row {
          : edit_box { key = \"cal\"; alignment = centered; edit_width = 50; value = \"\"; }
        }  ok_only ;
   }}  "
  )
 
  (setq file (open (setq name (strcat (substr (setq sup (vla-get-SupportPath (vla-get-Files
(vla-get-Preferences (vlax-get-acad-object))))) 1 (vl-string-search ";" sup)) "\\ICAL.DCL")) "w"))
  (write-line str file)
  (close file)
 
  (setq id (load_dialog name))
  (new_dialog "ICAL" id)  
  (action_tile "cal" "(tinh $value)")
  (action_tile "accept" "(done_dialog)")
  (mode_tile "cal" 2)
  (start_dialog)
  (if (< 0 id) (unload_dialog id))  
)
 
;;sqrt(2)*(3^7+4)-5+6*cos(30)/sin(60)-tang(45)*ln(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

Code cụ thể là sao bạn, trên kia đã đưa nguyên file rồi mà.

Chắc là bạn muốn biết cách tính toán pk? cái lisp của tôi dựa hoàn toàn vào hàm cal của cad thôi, chẳng có gì bí mật cả đâu. Hàm cal có 1 nhươc điểm là không tính được số lớn, còn những cái khác như lượng giác, log, ... thì vô tư.

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

Chào bạn TOT77

Mình muốn viêt code bằng vb.net. Bạn cố gắng giúp mình nhé

Tham khảo hàm ReversePolishNotation  bài 28

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  

×