Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
9 replies to this topic

#1 quoctien.tedi

quoctien.tedi

    biết zoom

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

Đã gửi 11 May 2014 - 11:43 PM

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ỏ)


  • 0

#2 HungDHXD

HungDHXD

    biết vẽ ellipse

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

Đã gửi 03 June 2014 - 03:37 PM



 

 

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

  • 0

#3 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 03 June 2014 - 05:36 PM

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)

  • 0

#4 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 03 June 2014 - 06:38 PM

@Tot7: Bổ sung load CAL nữa kẻo lỗ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.


#5 quoctien.tedi

quoctien.tedi

    biết zoom

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

Đã gửi 03 July 2014 - 10:01 PM

Chào bạn: HungDHXD, Doan Van Ha, tot77

Trước tiên, mình xin chân thành cảm ơn các bạn đã dành thời gian trả lời mình.

Các bạn có thể cho mình code cụ thể hơn được không?


  • 0

#6 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 03 July 2014 - 10:18 PM

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ư.
  • 0

#7 quoctien.tedi

quoctien.tedi

    biết zoom

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

Đã gửi 03 July 2014 - 10:32 PM

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é


  • 0

#8 Tot77

Tot77

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 990 Bài viết
Điểm đánh giá: 498 (tốt)

Đã gửi 03 July 2014 - 10:38 PM

Sorry nhé, tôi quên không nhìn vào đề mục bạn post bài là VBA. VB.net thì tôi không giúp đươc rôi.
  • 0

#9 quoctien.tedi

quoctien.tedi

    biết zoom

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

Đã gửi 03 July 2014 - 10:46 PM

Chào TOT77!

Dù sao cũng 1 lần nữa chân thành cảm ơn bạn đã dành thời gian và công sức cho mình.

Chúc bạn sức khỏe và thành công trong cuộc sống!


  • 0

#10 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 04 July 2014 - 07:25 AM

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


  • 0