Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Ikkunan reunat pois!

Sivun loppuun

kayttaja-3842 [20.03.2006 16:10:36]

#

Ajattelin,että en tee tälle uutta aihetta,mutta teimpäs kummiskin. Eli kysyisin nyt tälläkertaa,että miten saan ohjelmastani ikkunan reunat pois? Eli siis,että ohjelmassa näkyisi vain ja ainoastaan minun piirtämäni pyöreä kuva?

Blaze [20.03.2006 17:06:05]

#

VB Classicissa reunat saa pois asettamella Formin BorderStyle 0 - Noneksi.

Pyöreän ikkunan tekeminen onkin sitten astetta hankalampaa, ks. esim. seuraava keskustelu: https://www.ohjelmointiputka.net/keskustelu/3310-pyöreä-formi

kayttaja-3842 [20.03.2006 17:57:38]

#

Joo,kiitos...Huomasin,että nytten ohjelmaa ei voi liikutaa ollenkaan..Joten miten voin tehä niin,että jos pidetään hiiren nappia pohjassa, niin kuvaan x ja y:tä voi liikuttaa?

Eikös se mene jotenkin niin,että:

Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Me.Left = //Tähän tulee hiiren x(" en tiedä miten sen tähän saa..)

Me.Top = //Tähän tulee hiiren y(" en tiedä miten sen tähän saa..)

End Sub

matpit [20.03.2006 18:06:15]

#

Täältä löydät formin liikutuksen kaikkialta formilta
https://www.ohjelmointiputka.net/koodivinkit/24222-vb6-formin-liikutus-kaikkialta

P.S. Eikös VB:eellä kommentit merkitä heittokerkillä ;-)

kayttaja-3842 [20.03.2006 18:39:58]

#

Juu kiitos...Yritin epätoivosesti saada muunnettua koodia niin,että kun kuvaa painaa niin koko formi liikkuu ,mutta eipä onnistunut..Voisko joku taas neuvoa minua epätoivosta?
(Tossahan formi liikkuu vain jos formia painaa....)

matpit [20.03.2006 18:44:36]

#

Kirjoitappa formin koodiin

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) 'Korvaa siis "Picture1" kuvasi nimellä
Liikkuu Me
End Sub

kayttaja-3842 [20.03.2006 18:49:53]

#

Lol, ei se voinut olla noin helppoa :D...Ajattelin,että se muokkaus pitäisi tehdä moduuliin ,mutta se olikin noin helppo,että se piti muokata vain liikutettavaa kohdetta...


Kiitos paljon....!!!!!!!!!!!!!!!


Kysyisin nytten,että miten print comento toimii?

Eli siis miten saan printattu kuvan päälle tekstin vaikka moi?

meneekö se näin?

kuva.Print "Moi"

Blaze [20.03.2006 19:05:39]

#

kayttaja-3842 kirjoitti:

meneekö se näin?

kuva.Print "Moi"

Ei tullu mieleen kokeilla?

Seuraavaks kuitenki kysyt, että miten sen paikan saa määrätä, niin se tapahtuu CurrentX ja CurrentY-ominaisuuksia muuttamalla.

kayttaja-3842 [20.03.2006 19:40:05]

#

:D....Kuhan varmisin nopeesti :D, mutta.

Voiko joku muo parempi (eli siis kaikki täällä) auttaa muo viimesen kerran (tältä päivältä?)

Eli siis tämä pitäisi saada sovellettua tohon toiseen koodiin.

Option Explicit

Private Type TagInfo
    Tag As String * 3
    Songname As String * 30
    artist As String * 30
    album As String * 30
    year As String * 4
    comment As String * 30
    genre As String * 1
End Type

Dim FileName As String
Dim CurrentTag As TagInfo

Private Sub Form_Load()
    Dim temp As String
    On Error Resume Next

    FileName = App.Path & IIf(Right(App.Path, 1) = "\", "", "\") &  _
    "myMP3.mp3"

    Open FileName For Binary As #1
    With CurrentTag

        Get #1, FileLen(FileName) - 127, .Tag
        If Not .Tag = "TAG" Then
            Label8.Caption = "No Tag"
            Close #1
            Exit Sub
        End If

        Get #1, , .Songname
        Get #1, , .artist
        Get #1, , .album
        Get #1, , .year
        Get #1, , .comment
        Get #1, , .genre
        Close #1

        txtTitle = RTrim(.Songname)
        txtArtist = RTrim(.artist)
        txtAlbum = RTrim(.album)
        txtYear = RTrim(.year)
        txtComment = RTrim(.comment)

        temp = RTrim(.genre)
        txtGenreCode = Asc(temp)
        Combo1.ListIndex = CInt(txtGenreCode) - 1
    End With
    Close #1
End Sub

Tähä------------

Private Sub avaa_Click()
CommonDialog.Filter = "Kaikki (*.*)|*.*|MP3 (*.mp3)|*.mp3"
CommonDialog.FilterIndex = 2
CommonDialog.Action = 1
txtAvaus = CommonDialog.FileName
End Sub

matpit [20.03.2006 21:18:03]

#

Tuo ilmeisesti lukee MP3:sten id3 tagejä?
Suosittelisin että teet tuosta functionin

Public Function HaeID3Tag(Kappale as String)
    Dim temp As String
    On Error Resume Next

    Open kappale For Binary As #1
    With CurrentTag

        Get #1, FileLen(FileName) - 127, .Tag
        If Not .Tag = "TAG" Then
            Label8.Caption = "No Tag"
            Close #1
            Exit Sub
        End If

        Get #1, , .Songname
        Get #1, , .artist
        Get #1, , .album
        Get #1, , .year
        Get #1, , .comment
        Get #1, , .genre
        Close #1

        txtTitle = RTrim(.Songname)
        txtArtist = RTrim(.artist)
        txtAlbum = RTrim(.album)
        txtYear = RTrim(.year)
        txtComment = RTrim(.comment)

        temp = RTrim(.genre)
        txtGenreCode = Asc(temp)
        Combo1.ListIndex = CInt(txtGenreCode) - 1
    End With
    Close #1

Ja käyttö:

Private Sub avaa_Click()
CommonDialog.Filter = "Kaikki (*.*)|*.*|MP3 (*.mp3)|*.mp3"
CommonDialog.FilterIndex = 2
CommonDialog.Action = 1
if commondialog.filename <> "" then
 txtAvaus = CommonDialog.FileName
 MsgBox HaeID3Tag(commondialog1.filename)
end if
End Sub

Eli tuo on ihan hatusta kirjoiteltu (en testannut mutta pitäisi toimia) ja täällähän EI ole tapana jaella valmiita koodinpätkiä, mutta jaoin nyt kuitenkin ;)

kayttaja-3842 [21.03.2006 15:13:13]

#

Miten saan tehtyä sellaseen järjestelmän,että jos painetaan nappia alas aukeaa isompi valikko ja jos painetaan nappia uudestaan valikko menee kiinni.

Itse kokeilin tällä tavalla, mutta ei onnistu,koska valikon auetessa ohjelma menee tilettiin. Mikä avuksi?

Minun tiletti versioni:

Private Sub Command1_Click()
var = 0
Do
If var = 0 Then
var = 1
Form1.Height = 3720
End If

If var = 1 Then
Form1.Height = 2220
var = 0
End If
Loop

End Sub

BadSource [21.03.2006 15:19:52]

#

Ohjelma kaatuu, koska looppisi ei lopu koskaan. Mihin edes tarvitset looppia? Käytä If...ElseIf...End if-rakennetta noiden kahden erillisen If...Then...End If-tarkastelun sijaan. Nykyisessä koodissasi ensimmäinen tarkistus avaa valikon ja toinen lyö sen kiinni ja tätä jatketaan koneen hyytymiseen asti.

kayttaja-3842 [21.03.2006 15:45:49]

#

Jos laitan sen näin

var = 0

If var = 0 Then
var = 1
Form1.Height = 3720
ElseIf var = 1 Then
Form1.Height = 2220
var = 0
End If

..niin se ei toimi!

Gaxx [21.03.2006 15:57:07]

#

if-elseif-endif rakenne ei sovi tuohon, sillä se tekee saman kuin kaksi kertaa if-endif rakenne. Johtuu siitä, että var:n arvo vaihdetaan...

Käytä select casea.

kayttaja-3842 [21.03.2006 16:13:24]

#

Gaxx kirjoitti:

if-elseif-endif rakenne ei sovi tuohon, sillä se tekee saman kuin kaksi kertaa if-endif rakenne. Johtuu siitä, että var:n arvo vaihdetaan...

Käytä select casea.

Täh?, ei se voi olla case....

Kato nyt.

Näin se nyt viimetteeksi toimii:
Vai teinkö jotain väärin?

var = 0

Select Case var

   Case 0
   Form1.Height = 2220

   Case 1
   Form1.Height = 3720

End Select

Gaxx [21.03.2006 16:52:50]

#

kayttaja-3842 kirjoitti:

Vai teinkö jotain väärin?

Kyllä. Muuta sitä var:n arvoa:

var = 0

Select Case var

   Case 0
   Form1.Height = 2220
   var = 1

   Case 1
   Form1.Height = 3720
   var = 0

End Select

Edit: Ja ethän alusta tuota var:a joka kerta juuri ennen tuota select casea...

Edit2: Rasittava homma, kun vb:n ja c++:n "caset" toimii vähän eri tavalla.

kayttaja-3842 [21.03.2006 17:34:29]

#

just ota arvelinkin ...:D

Edit1:

Ei tämä toimi!
Tämä vain sulkee valikon eikä sitä voi avata enää....

var = 0

Select Case var

   Case 0
   Form1.Height = 2220
   var = 1

   Case 1
   Form1.Height = 3720
   var = 0

End Select

Nyt vuorostaan kysyisin, että miten voin tehdä niin ,että jos tiedostoa ei ole ladattu/avattu, niin kuva on piilotettu? Sitten kun tiedosto on avattu niin kuva tulee esiin.


Eli tähän, siis jos tällä ei ole avattu mitään niin kuva on pilotettu:

Private Sub avaa_Click()
CommonDialog.Filter = "Kaikki (*.*)|*.*|MP3 (*.mp3)|*.mp3"
CommonDialog.FilterIndex = 2
CommonDialog.Action = 1
txtAvaus = CommonDialog.FileName
End Sub

matpit [21.03.2006 18:57:31]

#

if commondialog.filename <> "" then 'eli jos CommonDialogin tiedosto muuttuja ei ole tyhjä niin sitten näytä valikot
var = 0

Select Case var

   Case 0

   Form1.Height = 2220
   var = 1

   Case 1
   Form1.Height = 3720
   var = 0

End Select
end if

kayttaja-3842 [21.03.2006 20:38:37]

#

joo kiitos, miten voin muuttaa fmod:ia käyttäen äänen volumea?

Gaxx [21.03.2006 21:15:11]

#

kayttaja-3842 kirjoitti:

Ei tämä toimi!
Tämä vain sulkee valikon eikä sitä voi avata enää....

Määrittele se var:

Dim var as integer

Ja laita tästä lähtien jokaisen tiedoston alkuun

Option Explicit

setä [21.03.2006 23:43:57]

#

Tuolla on ties monessako lootassa:

var = 0

Select Case var

Tai Select-lauseen tilalla If-lause. Kantsii ehkä hieman miettiä tuota logiikkaa:-)


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta