Speichere es als Bild um es dann zu einzulesen:
pic = Temp$()
TRY OPEN pic FOR CREATE AS #fs
PRINT #fs, cache
CLOSE #fs
image = NEW Image
image.Load (pic)
KILL pic


Verwendung von Gambas-Funktionen

Die Verwendung von Gambas-Funktionen erfordert die Aktivierung der Komponenten gb.desktop und gb.desktop.x11, von denen zwei Methoden verwendet werden können.


Verwendung der Methode Desktop.GetFileIcon()

Die Methode Desktop.GetFileIcon() gibt das einem Dateityp zugeordnete Symbol, z. B. Picture, zurück.

Im folgenden einfachen Beispiel platzieren wir eine PictureBox auf dem Anwendungsformular, die das mit dem gewählten Dateityp verbundene Symbol anzeigt:

Public Sub Formular_Öffnen()

  PictureBox1.Picture = Desktop.GetFileIcon("/path/del/file", 48)

Ende

Der zweite Parameter, der im Beispiel einen Wert von 48 hat, gibt die Größe in Pixeln an, mit der das Symbol in der PictureBox angezeigt wird.


Verwendung der DesktopMime-Klasse

In der DesktopMime-Klasse werden wir die Methoden .FromFile() und .GetIcon() verwenden.

Im folgenden einfachen Beispiel aktivieren wir die gb.desktop-Komponente und platzieren einen Button und eine PictureBox auf dem Anwendungsformular, in denen das Symbol des Dateityps angezeigt wird:

Public Sub Button1_Click()
     
 Dim path As String
 Dim im as Image
 
 Pfad = "/Pfad/Del/Datei".

 im = DesktopMime.FromFile(path).GetIcon(48)
 PictureBox1.Picture = i.Picture
 
Ende

Auch in diesem anderen Fall stellt der von der Methode .GetIcon() geforderte Wert, den wir im Beispiel mit dem Wert 48 angegeben haben, die in Pixeln ausgedrückte Dimension dar, mit der das Icon in der PictureBox angezeigt werden soll. 

Übersetzt mit www.DeepL.com/Translator (kostenlose Version)


Private Sub ShowFiles()

    Dim aWords As New Variant[]
    Dim row, col As Integer
    Dim sFiletype As String

    tbSelected.Text = ""
    gvRemoteFile.UnSelectAll()
    gvRemoteFile.rows.Count = 0

    For row = 0 To $aRemoteFiles.count - 1
        aWords = $aRemoteFiles[row]
        If aWords[1] = "d" Then
            If Not $ShowDirs Then Continue
            Inc gvRemoteFile.Rows.Count
            gvRemoteFile[gvRemoteFile.Rows.Max, 0].Picture = Stock["directory"]
            For col = 1 To aWords.count - 1
                gvRemoteFile[row, col].text = aWords[col]
            Next
        Else
            sFiletype = "/tmp" &/ "t." & File.Ext(aWords[2])
            Try File.Save(sFiletype, "")
            If Error Then
                sFiletype = "/tmp/c.txt"
                File.Save(sFiletype, "")
            Endif
            Inc gvRemoteFile.Rows.Count
            gvRemoteFile[gvRemoteFile.Rows.Max, 0].Picture = DesktopMime.FromFile(sFiletype).GetIcon(16).Picture
            For col = 1 To aWords.count - 1
                gvRemoteFile[gvRemoteFile.Rows.Max, col].text = aWords[col]
            Next
        Endif

    Next

Catch

    Message("Error: " & Error.Text & "\nIn: " & Error.where)

End

