|  | 
|   | 
 | 
| - Seite 1 - | 
 
  | 
  Thomas Freier | Ich finde keine Lösung oder den Fehler. Beim ersten Aufruf ist die Toobar wie gewünscht. Beim nächten Aufruf fehlen mir die Ico. Was mache ich falsch? KompilierenMarkierenSeparieren $H Windows.ph
Declare Ende%
var hToolBmp& = @create("hPic", 0, "TOOLBAR")
var hIL& = @Create("ImageList", 16, 16, hToolBmp&, rgb(192, 192, 192))
CLS ~GetSysColor(~Color_BTNFACE)
var D_Font&=@Create("Font","Verdana",14,0,0,0,0)
SETDIALOGFONT D_Font&
WindowTitle "Neues Projekt"
PopUp "&Programm"
AppendMenu 101,"Dialog öffnen"
Separator
AppendMenu 103,"&Ende"
Whilenot Ende%
    Waitinput
    If @MenuItem(103)
        Ende%=1
    ElseIf @MenuItem(101)
        ERFASSUNG
    EndIf
EndWhile
DeleteObject hToolBmp&
DeleteObject hIL&
DeleteObject D_Font&
End
Proc ERFASSUNG
    var dlg&=Create("Dialog",%hwnd,"Rechnungen",310,210,800,490)
    var  hToolbar& = @Create("TOOLBAR", dlg&, hIL&, 0, 0, 2000, 1)
    Toolbar("AddButton", hToolbar&, 11, 1150, "Alle anzeigen")
    Toolbar("AddButton", hToolbar&, 1, 1151, "Offene anzeigen")
    Toolbar("AddButton", hToolbar&, 60, 1152, "Bezahlte anzeigen")
    Toolbar("Separator", hToolbar&)
    Toolbar("AddButton", hToolbar&, 14, 1156, "Rechnung anzeigen")
    Waitinput
    DestroyWindow(dlg&)
EndProc
 |  
  | 
|   | 
 |  | 
|   | 
 
 
  | 
 | 
 |  | 
|   | 
| - Seite 1 - | 
 
  | 
  | Das Problem ist vlt. das Du mit DestroyWindow(dlg&) auch die Toolbar zerstörst und dies scheinbar die ImageListe mitreißt.
  Ohne DestroyWindow(dlg&) oder mit DestroyWindow(dlg&) und erneutem hIL& = @Create("ImageList", 16, 16, hToolBmp&, rgb(192, 192, 192)) funktioniert es jedenfalls.
  Vlt. insgesamt solch Fenster nicht "zerstören" sondern ein- und ausblenden. |  
  | 
|   | 
 |  | 
|   | 
 
 
  | 
 | 
  Thomas Freier | | Bleibt halt nur die "ImageList" zu erneuern. Schade! |  
  | 
|   | 
 |  | 
|   | 
 
 
  | 
 | 
  |  | 
|   | 
 |  | 
|   | 
 
 
  | 
 | 
  | Du musst nur die Imageliste "befreien", dann gehts.   KompilierenMarkierenSeparieren
Proc ERFASSUNG
    var dlg&=Create("Dialog",%hwnd,"Rechnungen",310,210,800,490)
    var  hToolbar& = @Create("TOOLBAR", dlg&, hIL&, 0, 0, 2000, 1)
    Toolbar("AddButton", hToolbar&, 11, 1150, "Alle anzeigen")
    Toolbar("AddButton", hToolbar&, 1, 1151, "Offene anzeigen")
    Toolbar("AddButton", hToolbar&, 60, 1152, "Bezahlte anzeigen")
    Toolbar("Separator", hToolbar&)
    Toolbar("AddButton", hToolbar&, 14, 1156, "Rechnung anzeigen")
    Waitinput
    SendMessage(hToolbar&, $430, 0, 0)'TB_SETIMAGELIST
    DestroyWindow(dlg&)
EndProc
 |  
  | 
|   | 
 |  | 
|   | 
 
 
  | 
 | 
  | | Meinst Du es wäre sinnvoll und machbar das Roland das mit einbaut? |  
  | 
|   | 
 |  | 
|   | 
 
 
  | 
 | 
  | | Machbar, sicher. Sinnvoll ists wohl nicht, jede Message gleich umzusetzen. |  
  | 
|   | 
 |  | 
|   | 
 
 
  | 
 | 
  | Schade das Du meine Frage nicht verstanden hast.
  Gäbe es einen Nachteil diese spezielle Nachricht:  KompilierenMarkierenSeparieren grundsätzlich anzuwenden? |  
  | 
|   | 
 |  | 
|   | 
 
 
  | 
 | 
  Thomas Freier | Im Beispiel gehts ja. Im Programm bei mir noch nicht. Da ist es die vorhandene Gridbox mit Icon , die auch die ImageListe mitreißt die Ursache. KompilierenMarkierenSeparieren |  
  | 
|   | 
 |  | 
|   | 
 
 
  | 
 | 
  | Wie siehts mit:
  iF  (06.10.11)
  Vlt. insgesamt solch Fenster nicht "zerstören" sondern ein- und ausblenden.
 
 
  aus? |  
  | 
|   | 
 |  | 
|   | 
 
 
  | 
 | 
  Thomas Freier | | Ist machbar, aber im Moment noch nicht meine Arbeitsweise. Das "Create("ImageList",....) ist jetzt in einer Proc und wird dann bei Bedarf erneuert. |  
  | 
|   | 
 |  | 
|   | 
 
 
  | 
 | 
  | Für Listviews ist ne andere Message zuständig. Funktioniert denn sendmessage(O_Lv&,~LVM_SETIMAGELIST,~LVSIL_SMALL,0) nicht?
  Ansonsten muss man auch mal im MSDN nachlesen: The current image list will be destroyed when the list-view control is destroyed unless the LVS_SHAREIMAGELISTS style is set.
  Wenn das oben also nicht geht, dann im Listview vorher den Style LVS_SHAREIMAGELISTS setzen, um zu verhindern, das die IList mit zerstört wird. |  
  | 
|   | 
 |  | 
|   | 
 
 
  | 
 |  | 
|   | 
| - Seite 2 - | 
 
  | 
 | 
  Thomas Freier | | @Frank: Danke für deine "Befreiungstipps". Klappt jetzt bestens. |  
  | 
|   | 
 |  | 
|   | 
 
 
  |