VB .NET


B∞₧nΘ matematickΘ operaceK≤d
Konverze mezi prom∞nn²mi a bajtov²m polemK≤d
MultithreadingK≤d
Gradientnφ vypl≥ovßnφK≤d
K≤d v panelu nßstroj∙Tip

B∞₧nΘ matematickΘ operace

Pro b∞₧n∞ pou₧φvanΘ matematickΘ operace je v .NET Frameworku vytvo°ena t°φda System.Math. Obsahuje goniometrickΘ funkce, sinus, cosinus, tangens, cotangens, logaritmy, zjistφ v∞tÜφ nebo menÜφ Φφslo ze dvou zadan²ch, absolutnφ hodnotu Φφsla, nejbli₧Üφ v∞tÜφ Φi menÜφ celΘ Φφslo, druhou odmocninu atd.

'Nejbli₧Üφ v∞tÜφ celΘ Φφslo - 6
MsgBox(System.Math.Ceiling(5.4))
'Nejbli₧Üφ ni₧Üφ celΘ Φφslo - 5
MsgBox(System.Math.Floor(5.4))
'Druhß odmocnina z 5 - 2.236...
MsgBox(System.Math.Sqrt(5))

Co vÜak stßle neumφ, je jakßkoliv odmocnina Φφsel, tzn. ₧e si musφte pomoci op∞t sami.

'T°etφ mocnina 4 - 64
MsgBox(4 ^ 3)
'T°etφ odmocnina 64 - 3
MsgBox(64 ^ (1 / 3))

Zp∞t na obsah


Konverze mezi prom∞nn²mi a bajtov²m polem

V .NET Frameworku najdete t°φdu BitConverter, kter² umφ p°esn∞ to, co °φkß titulek, tzn. konvertovat jednoduchΘ prom∞nnΘ do pole bajt∙ a naopak. Pro konverzi do pole bajt∙ slou₧φ jedna metoda GetBytes. Pro opaΦnou konverzi u₧ musφte zvolit jednu z metod To..., nap°. ToInt32, kterß z pole bajt∙ vytvo°φ prom∞nnou typu Integer.

Dim int As Integer, arr() As Byte
Dim i As Integer

int = 1253451
arr = System.BitConverter.GetBytes(int)
'VypφÜe 75, 32, 19 a 0
For i = arr.GetLowerBound(0) To arr.GetUpperBound(0)
  Debug.WriteLine(arr(i))
Next

int = System.BitConverter.ToInt32(arr, 0)
'VypφÜe 1253451
Debug.WriteLine(int)

Zp∞t na obsah


Multithreading

Tak, jak bylo ve starÜφch verzφch Visual Basicu obtφ₧nΘ vytvo°φt aplikaci s vφce vlßkny, tak je to ve VB .NET jednoduchΘ. Vytvo°it novΘ vlßkno, kterΘ spustφ jakoukoliv akci, zabere asi t°i °ßdky k≤du.

Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
  Dim t As System.Threading.Thread

  t = New System.Threading.Thread(AddressOf NoveVlakno)
  t.Start()
End Sub

Private Sub NoveVlakno()
  Debug.WriteLine("Nove vlakno spustilo toto okno")
End Sub

Stiskem tlaΦφtka Button1 se vytvo°φ novΘ vlßkno, kterΘ vykonß k≤d procedury NoveVlakno a ukonΦφ se. VÜimn∞te si, ₧e v okn∞ Output nenφ jen text "Nove vlakno spustilo toto okno", ale i "The thread '' (0x4d0) has exited with code 0 (0x0)."

Zp∞t na obsah


Gradientnφ vypl≥ovßnφ

Gradientnφ vypl≥ovßnφ a spousta dalÜφch grafick²ch technik je pomocφ .NET Frameworku mnohem jednoduÜÜφ ne₧ d°φve. V tomto p°φkladu si nakreslφme Φtverec, kter² bude vypln∞n barevn²m p°echodem od zelenΘ po bφlou barvu.

Imports System.Drawing.Drawing2D

Dim gp As New GraphicsPath()
Dim p() As Point = {New Point(10, 10), New Point(100, 10), New Point(100, 100), New Point(10, 100)}

gp.AddPolygon(p)

Dim pgb As New PathGradientBrush(gp)
Dim col() As Color = {Color.Green}
pgb.SurroundColors() = col
pgb.CenterPoint = New PointF(10, 10)
pgb.CenterColor = Color.White

Dim g As Graphics
g = Me.CreateGraphics()
g.FillPath(pgb, gp)

Zp∞t na obsah


K≤d v panelu nßstroj∙

Pou₧φvßte Φasto n∞jakou Φßst k≤du, nap°. volßnφ funkce apod.? "Ulo₧te" si tento k≤d do panelu nßstroj∙. StaΦφ jej oznaΦit a myÜφ na n∞j p°esunout. Objevφ se novΘ tlaΦφtko (jako normßlnφ prvek), kterΘ je dobrΘ si p°ejmenovat, originßl nßzev je toti₧ prvnφ °ßdek k≤du. Pokud potom chcete tento k≤d n∞kam vlo₧it, staΦφ tuto polo₧ku p°etßhnout na formulß° (strßnku atd.).

Zp∞t na obsah