Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Komandno dugme-aktivnost

[es] :: Visual Basic 6 :: Komandno dugme-aktivnost

[ Pregleda: 2681 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Robinsonk@

Član broj: 14124
Poruke: 41
*.niksic.cg.yu



Profil

icon Komandno dugme-aktivnost01.10.2003. u 14:54 - pre 250 meseci
Imam 2 pitanja.

Prvo: Kako se moze napraviti da se zna koje je komandno dugme aktivno. Komandno dugme ima sliku i hocu da kada imam vise takvih komandnih dugmadi da znam iznad kojeg mi je dugmeta mis. Znam da to moze da se uradi ako stavim frame i na njemu komandno dugme ili PictureBox pa onda frame obojim jednom bojom a podesim da se na akciju MouseMove mijenja boja. Vrlo je efektno ali ovo ne mogu da upotrebim. Postoji li neko drugo resenje?

Drugo: Kako bi ocijenili program u VB-u koji npr.na jednoj formi ima vise komandnih dugmadi koji su postavljeni maltene jedan na drugi i otvaranjem te forme vrsim stalno podesavanje svojstva Visible na True odnosno False? Da li to dodatno usporava program? Malo mi smeta i sto je prije startovanja programa nepregledna forma.
 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
*.yubc.net

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: Komandno dugme-aktivnost01.10.2003. u 15:25 - pre 250 meseci
Code:

Private m_ActiveButton As CommandButton

Private Sub Command1_MouseMove(Button As Integer, _
                                Shift As Integer, _
                                X As Single, _
                                Y As Single)
                                
    Set m_ActiveButton = Command1
    Command1.BackColor = vbRed
    
End Sub


Private Sub Form_MouseMove(Button As Integer, _
                            Shift As Integer, _
                            X As Single, _
                            Y As Single)
                            
    If Not m_ActiveButton Is Nothing Then
        m_ActiveButton.BackColor = vbYellow
    End If
    
End Sub


Nisam siguran da li sam te razumeo sto se tice prvog pitanja, ali evo ti ideja, pa razradi prema tvojim potrebama.

Sto se tice drugog pitanja, po meni je to normalna situacija. Ja u takvim slucajevima obicno koristim nizove command buttona, jer je tako lakse raditi. Imam fje EnableControl i ShowControl, koje primaju dva parametra. Prvi je tipa Object (niz buttona) a drugi string koji sadrzi nule i jedinice. Onda kad treba npr. enableovati/disableovati grupu od 10 buttona, ne kucam 10 puta Button.Enabled=True/False, nego pozovem funkciju sa "1001011000"

Code:

Private Sub m_EnableControl(Ctl As Object, str As String)
Dim i As Integer

    On Error GoTo Proc_Error
    
    If Ctl Is Nothing Then Exit Sub
    
    For i = Ctl.LBound To Ctl.UBound
        Ctl(i).Enabled = Mid(str, i + 1, 1) = "1"
    Next i
    
End Sub

 
Odgovor na temu

Robinsonk@

Član broj: 14124
Poruke: 41
*.jaroszowka.sdi.tpnet.pl



Profil

icon Re: Komandno dugme-aktivnost02.10.2003. u 15:26 - pre 250 meseci
Sto se tice prvog pitanja tuda je negdje s tim sto tvoj kod oboji u crveno prvo komandno dugme na koje kliknem, pa kad predjem na drugo komandno dugme oboji njega u crveno ALI ne vrati prvo komandno dugme koje je bilo aktivno u zutu boju vec oba ostaju crvena. Znaci, u tom momentu ne znam da je aktivno drugo komandno dugme. Vjerovatno treba da podesim nesto u akciji forme MouseMove.
Sto se drugog pitanja tice, hvala Ti na misljenju, ja inace uglavnom radim sa frame-ovima. Pitala sam da vidim koliko je to normalno.

Pozdrav i hvala.

 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
*.yubc.net

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: Komandno dugme-aktivnost02.10.2003. u 16:11 - pre 250 meseci
Probaj ovako (primer sa tri command buttona Command1, Command2, Command3)

Code:

Private Const ButtonFace = &H8000000F

Private m_ActiveButton As CommandButton

Private Sub Command1_MouseMove(Button As Integer, _
                                Shift As Integer, _
                                X As Single, _
                                Y As Single)
                                
    m_SetActiveButton Command1
    
End Sub

Private Sub Command2_MouseMove(Button As Integer, _
                                Shift As Integer, _
                                X As Single, _
                                Y As Single)
                                
    m_SetActiveButton Command2
    
End Sub

Private Sub Command3_MouseMove(Button As Integer, _
                                Shift As Integer, _
                                X As Single, _
                                Y As Single)
                                
    m_SetActiveButton Command3
    
End Sub

Private Sub Form_MouseMove(Button As Integer, _
                            Shift As Integer, _
                            X As Single, _
                            Y As Single)
                            
    If Not m_ActiveButton Is Nothing Then
        m_ActiveButton.BackColor = ButtonFace
    End If
    
End Sub

Private Sub m_SetActiveButton(Btn As Object)
    
    If Not m_ActiveButton Is Nothing Then
        m_ActiveButton.BackColor = ButtonFace
    End If
    
    Set m_ActiveButton = Btn
    
    If Not m_ActiveButton Is Nothing Then
        m_ActiveButton.BackColor = vbRed
    End If
End Sub


E sad, kod koji je na Form_MouseMove, stavi na MouseMove event containera u kom se nalaze dugmici (forma, picturebox, frame)
 
Odgovor na temu

Robinsonk@

Član broj: 14124
Poruke: 41
*.niksic.cg.yu



Profil

icon Re: Komandno dugme-aktivnost02.10.2003. u 21:11 - pre 250 meseci
To je to, sa nekim podesavanjem mojim bojama kontrola i forme.

Svaka cast.

Hvala ti.
 
Odgovor na temu

[es] :: Visual Basic 6 :: Komandno dugme-aktivnost

[ Pregleda: 2681 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.