Jump to content
PirateClub.hu

Visual Basic Kérdéseim [s0nt- nak ajánlott :)]


T.Sz.v2
 Share

Recommended Posts

Public Class Form1
    Private Sub LoadFile()
        Dim reader As New IO.StreamReader("c:\szovegfile.txt")
        Dim sor As String = ""
        Dim sorok As Integer = 0
        ListBox1.Items.Clear()
        Do
            sor = reader.ReadLine()
            If Not sor Is Nothing Then
                ListBox1.Items.Add(sor)
                sorok = sorok + 1
            End If
        Loop Until sor Is Nothing
        ListBox1.Items.Add("Összesen ez " & ListBox1.Items.Count & " ami ugyanannyi mint " & sorok)
        reader.Close()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        LoadFile()
    End Sub
End Class

Link to comment
Share on other sites

  • Replies 64
  • Created
  • Last Reply

Top Posters In This Topic

Nem tudom, erre gondoltál-e, de: :unsure:

Public Class Form1
    Private Sub panelBitmapba()
        Dim panelBitmap As New Bitmap(Panel1.Width, Panel1.Height)
        Panel1.DrawToBitmap(panelBitmap, New Rectangle(0, 0, Panel1.Width, Panel1.Height))
        panelBitmap.Save("C:\\fajlnev.png")
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        panelBitmapba()
    End Sub
End Class

Link to comment
Share on other sites

Public Class Form1
    Private Sub kijeloltekTorlese()
        For i As Integer = ListBox1.SelectedIndices.Count - 1 To 0 Step -1
            ListBox1.Items.RemoveAt(ListBox1.SelectedIndices.Item(i))
        Next
    End Sub

    Private Sub ListBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles ListBox1.KeyUp
        If (e.KeyCode = Keys.Delete) Then
            kijeloltekTorlese()
        End If
    End Sub
End Class

Link to comment
Share on other sites

  • 4 months later...
Public Class Form1
    Dim kep As New Bitmap("C:\\kep.jpg")

    Private Sub Form1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
        e.Graphics.DrawImage(kep, New Rectangle(0, 0, kep.Width, kep.Height))
    End Sub

    Private Sub Form1_MouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseClick
        If e.X >= 0 And e.Y >= 0 And e.X < kep.Width And e.Y < kep.Height Then
            Dim szin As Color = kep.GetPixel(e.X, e.Y)
            MsgBox("R: " & szin.R & ", G: " & szin.G & ", B: " & szin.B)
        End If
    End Sub
End Class

Link to comment
Share on other sites

Köszi, most van egy kis kérdésözönöm, nagyon fel leszel tüntetve a progiban, egy html-es webdesignos csajnak készül.

Na akkor, azt hogy oldom meg hogyha nagyobb a kép mint maga a terület akkor tegyen scrollbarokat? Mert próbálkoztam össze is jött de nem sitmmelt így próbáltam:

Panel1.AutoScroll = True
Panel1.AutoScrollMinSize = New Size(Panel1.Width, Panel1.Height)

Link to comment
Share on other sites

Hozzáadsz egy panelt a formhoz (ebben lesz a kép), a form-on beállítod, hogy AutoScroll legyen True.

Public Class Form1
    Dim kep As Bitmap
    Private Sub Panel1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Panel1.Paint
        e.Graphics.DrawImage(kep, New Rectangle(0, 0, kep.Width, kep.Height))
    End Sub
    Private Sub Panel1_MouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseClick
        If e.X >= 0 And e.Y >= 0 And e.X < kep.Width And e.Y < kep.Height Then
            Dim szin As Color = kep.GetPixel(e.X, e.Y)
            MsgBox(szin.R & " " & szin.G & " " & szin.B)
        End If
    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ChangePic("C:\\kep.jpg")
    End Sub
    Private Sub ChangePic(ByVal eleresiUtvonal As String)
        kep = New Bitmap(eleresiUtvonal)
        Panel1.Size = New Size(kep.Width, kep.Height)
        Me.Refresh()
    End Sub
End Class

Link to comment
Share on other sites

  • 3 months later...
  • 2 weeks later...

Halihó. Most én kérnék segítséget 2 dologban is.

 

Első: Random számokból (de ha ezen múlik lehet fix egy darab karakter is) kéne megadott hosszúságút gyártani.

 

Pl, ha a textboxban az van, hogy "512" akkor "512" karaktert pakol egymás után majd elmenti egty string változóba.

 

Második: Valahogy ki kéne számoltatni, hogy ha én pl "512" karaktert küldök el "100" ms-el folyamatosan, akkor az mennyi sávszélességet fogna le, vagy a realtime valós kimenő adatforgalmat kéne mérni ami csak a programra vonatkozik.

 

Tudom nem túl egyszerűek, de hátha van valaki aki tudja.

Ha valamit nem írtam le elég egyértelműen írjatok és pontosítok!

 

Előre is köszönöm!

Link to comment
Share on other sites

Public Function VeletlenKaraktersorozat(ByVal darab) As String
    Dim random As Random = New Random()
    Dim str As String = ""

    For i As Integer = 1 To darab
        str &= Chr(random.Next(65, 91))
    Next
    Return str
End Function

 

egy karakter ha egy byte (mint most itt), akkor ha egy másodperc alatt elküldesz 1024-et, akkor 1kb/sec. a sebesség

Link to comment
Share on other sites

Hali!

Köszönöm a választ. Holnap vagyis ma ki fogom próbálni.

 

A sebességmérézhez pedig annyi, hogy hogyan és a winsockon belül melyik funkcióban tudom mérni a sebességet?

Tehát nekem leginkább valós időben kéne mérni a tényleges kimenő adatforgalmat.

 

Már megint be vagyok rúgva de remélem világos voltam :D

Link to comment
Share on other sites

ilyen funkció szerintem nincs a winsock-ban, (MS VB 2008 Express-em van, abban nem találtam winsock component-et, de) ha le akarod mérni, akkor szerintem valami olyasmi kéne, hogy küldéskor tárolod a küldés időpontját másodpercben, és a winsock SendComplete event-ben lekérdezett másodpercekből kivonod.

az elküldött byte-ok számát elosztod a küldés és idejével megkapod hogy hány byte/sec a sebesség, (ha elosztod az így kapott eredményt 1024-el, megkapod a kb/sec-ben a sebességet)

(vagy elindítasz egy időzítőt a küldéskor, amikor elküldte leállítod)

Public Function UnixTimeNow() As Long
    Dim TimeSpan As TimeSpan = DirectCast((DateTime.UtcNow - New DateTime(1970, 1, 1, 0, 0, 0)), TimeSpan)
    Return CLng(TimeSpan.TotalSeconds)
End Function

Link to comment
Share on other sites

Hali. Ha jól gondolom ez a kód nem vb6hoz készült, de így is szuper mert megadta az ihletet.

 

így oldottam meg:

 

for i = 1 to 1024

text1.text = text1.text & "a"

next i

 

1000 - interval - 1 kb/s

100 - interval - 10 kb/s

10 - interval - 100 kb/s

1 - interval - 1000 kb/s

 

és a küldés sebességét majd a timer intervalal lehet majd szabályozni.

Link to comment
Share on other sites

igen, de azt is meg kellene nézned, hogy az adat mikor kerül elküldésre (függ attól, hogy milyen gyors a kapcsolat).

 

(azt viszont nem tudom, hogy a winsock küldés függvénye "blokkolja"-e a program futását, de valahogy meg kellene nézni, mikor sikerült elküldeni)

(ez az UnixTimeNow függvény megadja az 1970 óta eltelt másodpercek számát.

eltárolod ezt az értéket küldés előtt és amikor sikeresen elküldte, kivonod, és megkapod, hogy hány másodpercig tartott a küldés)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Hozzászólás a témához...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Jelenleg olvassa   0 members

    • No registered users viewing this page.



×
×
  • Create New...