Achtung! Bug in wNim/wImageList

  • Nachdem ich gestern wie blöd einen Fehler in meinem Programm gesucht habe, entdeckte ich den Fehler in "wNim/wImageList".

    Sowohl "getBitmap" als auch "getIcon" sind fehlerhaft!

    In beiden Fällen wird der übergebene Index nicht beachtet, sondern stattdessen immer mit "Index 0" gearbeitet.

    Die Original-Prozedur sieht so aus:

    Code
    proc getIcon*(self: wImageList, index: int): wIcon {.validate, property.} =
    ## Create the icon from specified index.
    if index <= self.getImageCount():
    var hIcon = ImageList_GetIcon(self.mHandle, 0, ILD_TRANSPARENT)
    result = Icon(hIcon, copy=false)

    Der zweite Parameter von "ImageList_GetIcon" muss eigentlich der Index sein, stattdessen steht da "0".

    Und in der Prozedur "getBitmap" das Gleiche:

    Der zweite Parameter von "ImageList_GetImageInfo" muss ebenfalls den Index enthalten, stattdessen "0".

    Ich habe die "getIcon"-Prozedur jetzt so geändert:

    Code
    proc newGetIcon*(self: wImageList, index: int): wIcon =
    if index <= self.getImageCount():
    var hIcon = ImageList_GetIcon(self.mHandle, cast[int32](index), ILD_TRANSPARENT)
    result = Icon(hIcon, copy=false)

    So arbeitet sie einwandfrei!

    Analog dazu kann man auch die "getBitmap"-Prozedur anpassen.