Diễn Đàn Tin Học

Trang 1 / 2 12 LastLast
Hiển thị kết quả từ 1 đến 10 / 11
  1. #1
    Tham gia
    16-07-2002
    Location
    none
    Bài viết
    15
    Like
    0
    Thanked 0 Times in 0 Posts

    Vui lắm ! Các bạn đã gặp vấn đề này chưa ?

    Tôi đang hoàn thành một Mp3 Player rất đẹp. Nhưng tới phần xử lý phím tắt để cho chương trình hoàn thiện hơn thì có vấn đề.

    Giao diện của tôi bao gồm 4 Form có đặc điểm gần giống nhau. Cho tôi hỏi lập trình như thế nào để ở trên Form bất kỳ đều có thể xử lý được phím tắt.( Ví dụ như Alt+F4 là thoát). Tôi có một cách là viết code trong sự kiện KeyUp của cả 4 Form nhưng làm thế thì làm cho mã bị trùng lặp, thật không hay một chút nào. Có bạn nào biết lập trình ngắn gọn hơn không xin chỉ giúp tôi với.

    Teppi
    Quote Quote

  2. #2
    Tham gia
    16-07-2002
    Location
    ?
    Bài viết
    20
    Like
    0
    Thanked 0 Times in 0 Posts
    Bạn dùng công cụ phát triển nào vậy ?

    Nếu là VS .NET thì với 4 form "gần giống nhau" như vậy bạn có thể viết 1 form superclass, xử lý event keys rồi specialize thành 4 form subclass -> dùng chung eventhandler.

    Còn nếu là VS 6 thì ít nhất có ma^'y cách :
    1. Dùng kỹ thuật subclassing làm điều tương tự phần trên.
    2. Dùng API Hook keys
    3. Viết global module có chứa proc xử lý event keys rồi gọi proc này từ 4 form kia

    Nếu tôi hiểu nhầm ý bạn thì bạn post lại kỹ hơn một chút nữa được không ?

    Que^n nu*~a : are you teppi@ from TTVN ?
    Được sửa bởi nomoretears lúc 12:11 ngày 12-08-2002

  3. #3
    Tham gia
    16-07-2002
    Location
    none
    Bài viết
    15
    Like
    0
    Thanked 0 Times in 0 Posts
    Tôi đang dùng VB6, điều bạn gợi ý tôi cũng xin lĩnh hội. Tôi khi đã lập trình là cố gắng viết càng ít mã càng tốt mà lại đúng theo những gì mình đã thiết kế. Tức là optimization code một cách tối đa. Tôi mới học được kỹ thuật multicasting và đã hoàn thành được sự tối ưu hoá trong phần này. Tôi xin viết ý tưởng của mình ra, các bạn hãy cho biết nó có tốt không nhé.

    Tôi tạo một ClassModule, trong đó có các mã xử lý sự kiện theo các trường hợp với cấu trúc Select Case, và trong các form, tôi tạo các biến có kiểu của ClassModule đó và gán chúng cho các control trong form và kể cả Form. Vậy là tôi đã hướng toàn bộ các Event của các control giống nhau vào các sự kiện được viết chung trong Class. Với các control, tôi phân biệt bằng thuộc tính Name khi công việc của các control khác nhau (Tức là nếu tôi có hai hay nhiều hơn các command button thì chắc chắn là chúng có các công việc khác nhau). Tôi xử lý các sự kiện giống nhau của chúng, ví dụ như MouseUp thì các control đều setfocus về một control chẳng hạn.

    Về API, tôi mới học nên chưa biết các kỹ thuật Subclass hay Hook.

    Cám ơn bạn nhiều!

    Teppi

  4. #4
    Tham gia
    17-07-2002
    Location
    Nơi xuất phát
    Bài viết
    562
    Like
    0
    Thanked 0 Times in 0 Posts
    Tiểu tử thấy dùng .NET có vẻ giải quyết vấn đề nhanh đó.
    Đừng chơi API ,nhứt đầu lắm

  5. #5
    Tham gia
    13-08-2002
    Bài viết
    672
    Like
    0
    Thanked 2 Times in 2 Posts
    to quaitieutu@ :

    .NET framework không hỗ trợ sound. Bạn cũng sẽ phải importdll để play sound thôi. Với lại bắt nsd install thêm .NET platform nữa thì hơi bất tiện. Hãy chờ đến khi nào chú Bill tích hợp .NET platform vào Windows đã...

    to teppi@ :

    kỹ thuật multicasting của bạn nói thì trước giờ tôi vẫn gọi là subclassing đó. Không biết tôi có nhầm lẫn tên gọi không nữa

  6. #6
    Tham gia
    19-07-2002
    Location
    Binh Duong
    Bài viết
    35
    Like
    0
    Thanked 0 Times in 0 Posts
    Minh cung nghi nhu tieutu vay ,vi minh nghi dung .NET se hap dan hon nhieu va cung de nua

  7. #7
    Tham gia
    16-07-2002
    Location
    none
    Bài viết
    15
    Like
    0
    Thanked 0 Times in 0 Posts
    Cám ơn sự góp ý của các bạn.

    Thực sự tôi chưa cần dùng tới VB.Net. Nhưng nghe các bạn nói có vẻ VB.Net khá hấp dẫn đấy. Tôi sẽ chú ý về điều này.

    Thưa các bạn ! Kỹ thuật multicasting có vẻ hơi giống subclassing, nhưng thật ra không hoàn toàn như vậy. Tôi đang đọc cuốn "Các kỹ xảo lập trình trên VB và Delphi" và tôi biết rằng Subclassing phức tạp hơn MultiCasting.

    Teppi !

  8. #8
    Tham gia
    19-07-2002
    Location
    HCM, VN
    Bài viết
    138
    Like
    0
    Thanked 1 Time in 1 Post
    đúng, Subclassing hơi giống so với Multicasting, nhưng Multicasting đa số là point even của của control/obj vào xử lý còn bác subclass là point cả control/obj vào xử lý (cái này như các bácc viết class trong VC++ vậy). Subclassing rắc rối hơn chỗ xử lý control/obj tương đối khó, vì VB6 hỗ trợ hướng đối tượng không mạnh lắm. Trong VS.Net thì hoàn toàn VB.Net đã được hướng đối tượng hoàn chỉnh.
    Nếu dùng VB6 thì nên dùng API cho tiện, tuy hơi bị "nhức đầu" nhưng API rất mạnh. dùng một số hàm xử lý key và cài một "bẫy key" (KeyHook) lại để có thể bắt được key như ý
    có thể bác tham khảo KeyHook của UniKey (cái này opensource), chỉ cần biết các hàm đã viết sẵn trong Keyhook thì chỉ việc call nó thôi.
    Dùng Subclassing cũng được nhưng đối với VB6 có thể làm chương trình bị chậm lại cái này không thích hợp nếu chương trình chơi MP3 có xử lý spectrum.

  9. #9
    Tham gia
    21-08-2002
    Location
    Ho Chi Minh
    Bài viết
    2
    Like
    0
    Thanked 0 Times in 0 Posts
    Xin chào. Mình là thành viên mới của forum. Mình cũng đang làm một chương trình chơi MP3 bang VB6 nhưng không biết làm sao để xử lý spectrum. Các bác là cao thủ xin chỉ giúp mình với.
    Thanks a lot.

  10. #10
    Tham gia
    16-07-2002
    Location
    none
    Bài viết
    15
    Like
    0
    Thanked 0 Times in 0 Posts
    Nếu bạn muốn tự lập trình để xử lý âm thanh như tạo spectrum, oscciscope hay sound level thì bạn phải thành thạo trong hai vấn đề:
    Lập trình đồ hoạ để vẽ được spectrum trên PictureBox.
    Phải biết các hàm API hỗ trợ để lấy các thông tin về âm thanh như xung âm thanh chẳng hạn. Bạn hãy tham khảo trong bộ MSDN - phần Graphics and Multimedia để biết thêm.

    Còn nếu bạn lười lập trình thì hãy chịu khó tìm các control trên mạng. À trên site a1vbcode.com có các code nói về phần này đấy.
    Chúc thành công !

    Teppi !

Trang 1 / 2 12 LastLast

Bookmarks

Quy định

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •