banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành Windows Hỏi về "TOẠ ĐỘ XY TRONG VISUAL BASIC"  XML
  [Programming]   Hỏi về "TOẠ ĐỘ XY TRONG VISUAL BASIC" 23/08/2006 22:09:00 (+0700) | #1 | 17291
[Avatar]
kamikazeq
Member

[Minus]    0    [Plus]
Joined: 04/07/2006 03:20:53
Messages: 837
Location: Panic Malware Planet
Offline
[Profile] [PM] [Yahoo!]
Các bạn cho mình hỏi: những thứ mình tạo ra ví dụ như Commandbutton hoặc Textbox từ những công cụ có sẵn thì những thứ đó là Object phải không? (đây là câu hỏi phụ thôi).

Mình có 1 ví dụ thế này:
Mình có sẵn Textbox1 nằm ngay tọa độ (960,1200). Và đề bài kêu ta lập 1 hàm If là : nếu có vật "Object" nào (bất kì) nằm ngay tọa độ (240,240) thì text1.text = "Có"



Mình chỉ biết làm theo cách này (hơi lâu):
+ If Text1.left = 240 and Text1.top = 240 then Text1.text="Có"
+ If Command1.left = 240 and Command1.top = 240 then Text1.text="Có"
+ If Option1.left = 240 and Option1.top = 240 then Text1.text="Có"
+ If Label1.left = 240 and Label1.top = 240 then Text1.text="Có"

Với cái Form chứa 4 Object (hình trên), mình phải mất tới 4 dòng lệnh. Nếu lỡ đề bài cho 1 cái Form chứa 100 cái Object (đủ loại) thì với cách của mình không biết bao giờ mới xong.
Vì thế mình mới đặt ra câu hỏi là : Ngay tọa độ (240,240) đó, hiện đang có vật nào nằm đó không? Và nếu được thì đó là vật (Object) nào?
If (cái mà mình cần chỉ) then Text1.text="Có"
(cái dòng If trên là theo mình nghĩ vậy thôi, còn cách để chương trình hiểu có vật nào có toạ độ thoả (240,240) thì mình không biết.)
-------> Nếu cách này mà thực hiện được thì dù Form có nhiều Object đi nữa, chỉ cần dùng 1 lần là đủ.

Mong các bạn chỉ giúp cách thực hiện câu hỏi này trong Visual Basic.
Cám ơn nhiều.
IDM 5.18 http://tinyurl.com/pl2ejj | Quick Remove Malware http://tinyurl.com/lbbm9x - http://tinyurl.com/arna6g
[Up] [Print Copy]
  [Question]   Hỏi về "TOẠ ĐỘ XY TRONG VISUAL BASIC" 23/08/2006 23:06:33 (+0700) | #2 | 17304
[Avatar]
Z0rr0
Q+WRtaW5pc3RyYXRvc+g

Joined: 14/08/2002 12:52:01
Messages: 1323
Location: Underground
Offline
[Profile] [PM] [WWW] [Yahoo!]
Object là các thực thể vô hình hay hữu hình bạn dùng để mô tả thế giới thực. Object có thể mô tả một loại dữ liệu hoặc một vật thể giao diện. Như vậy các thứ bạn thấy trên form là object.
Vấn đề bạn gặp có thể giải quyết đơn giản bằng cách duyệt qua từng control của đối tượng Me.Controls (các visual object), tớ viết một đoạn code đơn giản bạn tham khảo xem sao:
Lưu ý VB6 ko thể hiện tốt Unicode
Code:
Text1.Text = "Không có"
.....
Dim ctrl As Control
' duyệt từng control 
For Each ctrl In Me.Controls
    If (ctrl.Left = 240 And ctrl.Top = 240) Then
        Text1.Text = "Có"
        Exit Sub 'có rồi thì không cần tìm thêm
    End If
Next


Vậy cho dù trên form có bao nhiêu đối tượng visible hay invisible đều thấy được.
Hibernating
[Up] [Print Copy]
  [Question]   Hỏi về "TOẠ ĐỘ XY TRONG VISUAL BASIC" 25/08/2006 00:30:25 (+0700) | #3 | 17675
[Avatar]
kamikazeq
Member

[Minus]    0    [Plus]
Joined: 04/07/2006 03:20:53
Messages: 837
Location: Panic Malware Planet
Offline
[Profile] [PM] [Yahoo!]
Rồi, mình thử thấy OK rồi. Cho mình hỏi tiếp nha.
Vậy muốn những đối tượng đó chỉ là 1 loại Commandbutton thôi thì CODE ra sao hả bạn?

Cho mình hỏi thêm:
Trong Visual Basic, mình có 2 công cụ là Picture và Image.
Trong 2 công cụ đó, công cụ nào có khả năng chứa nhiều hình 1 lúc.Ví dụ như: Picture chứa 4 hình trong nó, khi mình chỉ định giá trị 1 cho nó, hình tương ứng với giá trị 1 sẽ xuất hiện trên nó, còn giá trị 2 3 4 cũng có hình tương ứng.
Vậy: 2 công cụ đó có chứa được nhiều hình thế không. Nếu có, cách thức nó chứa như thế nào, và làm sao để sử dụng hình (được chỉ định) trong nó.

Game BoxWorld người ta viết bằng gì vậy?
http://www.pg95.com/funny/download/Games/bpxworld.zip


IDM 5.18 http://tinyurl.com/pl2ejj | Quick Remove Malware http://tinyurl.com/lbbm9x - http://tinyurl.com/arna6g
[Up] [Print Copy]
  [Question]   Hỏi về "TOẠ ĐỘ XY TRONG VISUAL BASIC" 25/08/2006 01:50:40 (+0700) | #4 | 17698
[Avatar]
Z0rr0
Q+WRtaW5pc3RyYXRvc+g

Joined: 14/08/2002 12:52:01
Messages: 1323
Location: Underground
Offline
[Profile] [PM] [WWW] [Yahoo!]

kamikazeq wrote:
Rồi, mình thử thấy OK rồi. Cho mình hỏi tiếp nha.
Vậy muốn những đối tượng đó chỉ là 1 loại Commandbutton thôi thì CODE ra sao hả bạn?
 

Bạn xem đoạn code sau:
Code:
' duye^.t tu+`ng control
For i = 0 To Me.Controls.Count - 1
     If (TypeOf Me.Controls(i) Is CommandButton) And (Me.Controls(i).Left = 240 And Me.Controls(i).Top = 240) Then
         Text1.Text = "Có"
         Exit Sub 'có ro^`i thì không ca^`n tìm thêm
     End If
 Next

Lưu ý khi học lập trình: khi bạn sử dụng một loại đối tượng hoặc kiểu dữ liệu thì nên tìm hiểu những vấn đề liên quan đến nó. Như vậy sẽ giúp bạn thấu hiểu và sử dụng thành thạo ngôn ngữ và các kĩ thuật lập trình hơn.
Ví dụ trong VB6 người ta gọi "Me" là chỉ object hiện tại (vd như form hiện tại), Me.Controls là collection chứa các đối tượng (control) chứa trong form. Như vậy để xem Controls có thể chứa những object (control) dạng gì thì bạn nên tìm hiểu thêm ở các tài liệu hướng dẫn lập trình, như MSDN. Nó sẽ giúp ích bạn rất nhiều.

kamikazeq wrote:

Cho mình hỏi thêm:
Trong Visual Basic, mình có 2 công cụ là Picture và Image.
Trong 2 công cụ đó, công cụ nào có khả năng chứa nhiều hình 1 lúc.Ví dụ như: Picture chứa 4 hình trong nó, khi mình chỉ định giá trị 1 cho nó, hình tương ứng với giá trị 1 sẽ xuất hiện trên nó, còn giá trị 2 3 4 cũng có hình tương ứng.
Vậy: 2 công cụ đó có chứa được nhiều hình thế không. Nếu có, cách thức nó chứa như thế nào, và làm sao để sử dụng hình (được chỉ định) trong nó.
 

Theo tôi biết trên VB6 thì 2 object trên ko hổ trợ chứa nhiều hình, bạn có thể tự tạo kiểu dữ liệu riêng cho mình hoặc tận dụng tính năng array of control (vd tạo array của nhiều đối tượng picture), rồi tuỳ yêu cầu hiển thị mà ẩn/hiện đối tượng theo index tương ứng.

kamikazeq wrote:

Game BoxWorld người ta viết bằng gì vậy?
http://www.pg95.com/funny/download/Games/bpxworld.zip


 

Game BoxWorld dò bằng PEiD ko nhận được nhưng khi tui xem nội dung exe thì có đoạn "Borland C++ - Copyright 1991 Borland Intl", vậy có thể tạm kết luận được rồi.
Hibernating
[Up] [Print Copy]
  [Question]   Hỏi về "TOẠ ĐỘ XY TRONG VISUAL BASIC" 26/08/2006 03:34:59 (+0700) | #5 | 18049
[Avatar]
kamikazeq
Member

[Minus]    0    [Plus]
Joined: 04/07/2006 03:20:53
Messages: 837
Location: Panic Malware Planet
Offline
[Profile] [PM] [Yahoo!]
Ví dụ trong VB6 người ta gọi "Me" là chỉ object hiện tại (vd như form hiện tại), Me.Controls là collection chứa các đối tượng (control) chứa trong form. 

Cái này mình mới được biết.

Cám ơn bạn đã trả lời từng vấn đề
IDM 5.18 http://tinyurl.com/pl2ejj | Quick Remove Malware http://tinyurl.com/lbbm9x - http://tinyurl.com/arna6g
[Up] [Print Copy]
  [Question]   Hỏi về "TOẠ ĐỘ XY TRONG VISUAL BASIC" 02/09/2006 13:21:08 (+0700) | #6 | 20122
romantic1984r
Member

[Minus]    0    [Plus]
Joined: 11/07/2004 01:45:51
Messages: 3
Location: Ha Noi
Offline
[Profile] [PM] [Yahoo!]
Cảm ơn hai bạn nha mình qua bài này mình lại học đượng khá nhiều thứ mà mình dang cần tìm hiêu.
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|