none
Timer programmieren VB.NET RRS feed

  • Frage

  • Hallo,

    nachdem ich schon Erfahrung mit VBA und VB.NET habe, will ich nun etwas mit IoT und dem Raspberry PI rumspielen.

    Ziel ist es letztlich, ein Windows-Programm auf den Raspberry (mit Display als Universal Windows App) zu portieren.

    Dabei ist mir etliches unklar.

    Z.B. habe ich ein Image-Steuerelement, aber wie kann ich da nun ein Bild (Dateiname) zuweisen?

    Desweitern benötige ich einen Timer. Es gibt ja dazu kein Steuerelement. Wie realisiert man sowas? 

    Danke und Gruß

    Micha

    Freitag, 14. April 2017 13:55

Alle Antworten

  • Hallo Micha,

    unter UWP arbeitet man mit StorageFile, ein Bild könnte man so dem Image Control zu weisen:

    ImageHelper

    Public Class ImageHelper
    	Public Shared Function LoadImage(decodePixelWidth As Integer, file As Windows.Storage.StorageFile) As Task(Of BitmapImage)
    		Try
    			Dim bitmap As New BitmapImage()
    			Using stream = Await file.OpenAsync(Windows.Storage.FileAccessMode.Read)
    				bitmap.DecodePixelWidth = decodePixelWidth
    				Await bitmap.SetSourceAsync(stream)
    			End Using
    
    			Return bitmap
    		Catch generatedExceptionName As Exception
    			Return Nothing
    		End Try
    	End Function
    End Class

    Zuweisung:

    Dim img = New Image()
    Dim file = Await Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync("Bild.jpg")
    Dim bitmapImage = Await ImageHelper.LoadImage(600, file)
    img.Source = bitmapImage

    Ein Timer Control gibt es nicht hier aber noch ein Link zu Doku

    Leider wirst Du kaum beispiele in VB finden, da die meisten in C# sind. Hier noch ein Converter. Du solltest aber versuchen C# lesen zu lernen. So schwer ist das nicht.

    Die Klasse von oben würde ich C# so aussehen:

    public class ImageHelper
        {
            public static async Task<BitmapImage> LoadImage(int decodePixelWidth, Windows.Storage.StorageFile file)
            {
                try
                {
                    BitmapImage bitmap = new BitmapImage();
                    using (var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read))
                    {
                        bitmap.DecodePixelWidth = decodePixelWidth;
                        await bitmap.SetSourceAsync(stream);
                    }
    
                    return bitmap;
                }
                catch (Exception)
                {
                    return null;
                }
            }
        }
    Microsoft hat auf Github viele Samples zur Verfügung gestellt, die sehr viel abdecken. Link


    Gruß, Thomas

    Sage nie, ich kann es nicht - sage nur, ich kann es noch nicht!

    Icon für UWP

    Freitag, 14. April 2017 14:28
  • Hallo Thomas,

    danke für die schnelle Antwort.

    Ich werde mich mal damit beschäftigen, und ich hab schon gemerkt, das man mit VB ziemlich allein auf weiter Flur steht. Warum eigentlich?  Es ist vermutlich gegenüber dem normalen VB.NET noch mehr verkompliziert worden. Den Profis mag das egal sein, aber ich glaube nicht, dass man so viele Amateure begeistern kann, sich damit zu beschäftigen.

    Gruß

    und schöne Ostern.

    Micha

    Samstag, 15. April 2017 08:04
  • Warum das so ist kann ich dir auch nicht sagen.

    Auch dir schöne Ostern


    Gruß, Thomas

    Sage nie, ich kann es nicht - sage nur, ich kann es noch nicht!

    Icon für UWP

    Samstag, 15. April 2017 16:44