Seite 1 von 1

Bug im generiertem Source vom Visual Designer

Verfasst: 03.10.2004 11:16
von MVXA
Hallo
Weiß jetzt nicht ob der Bug schon bekannt ist aber der Visual Designer produziert falschen Code. ich Poste einfach mal die Funktion:

Code: Alles auswählen

Procedure BalloonTip(WindowID, Gadget, Text$ , Title$, Icon)
  
  ToolTip=CreateWindowEx_(0,"ToolTips_Class32","",#WS_POPUP | #TTS_NOPREFIX | #TTS_BALLOON,0,0,0,0,WindowID(WindowID),0,GetModuleHandle_(0),0)
  SendMessage_(ToolTip,#TTM_SETTIPTEXTCOLOR,GetSysColor_(#COLOR_INFOTEXT),0)
  SendMessage_(ToolTip,#TTM_SETTIPBKCOLOR,GetSysColor_(#COLOR_INFOBK),0)
  SendMessage_(ToolTip,#TTM_SETMAXTIPWIDTH,0,180)
  Balloon.TOOLINFO\cbSize=SizeOf(TOOLINFO)
  Balloon\uFlags=#TTF_IDISHWND | #TTF_SUBCLASS
  Balloon\hwnd=GadgetID(Gadget)
  Balloon\uID=GadgetID(Gadget)
  Balloon\lpszText=@Text$
  SendMessage_(ToolTip, #TTM_ADDTOOL, 0, Balloon)
  If Title$ > ""
    SendMessage_(ToolTip, #TTM_SETTITLE, Icon, @Title$)
  EndIf
  
EndProcedure
Der Fehler ist ganz klar beim CreateWindowEx. Das dort das WindowID einmal zu viel im Aufruf von WindowID selbst steht führt dazu, dass das Programm abstürzt.

Verfasst: 03.10.2004 16:03
von ChaOsKid
hi LittleFurz,

bei mir stürzt da nix ab :)

Code: Alles auswählen

Procedure BalloonTip(WindowID, Gadget, Text$ , Title$, Icon)
  
  ToolTip=CreateWindowEx_(0,"ToolTips_Class32","",#WS_POPUP | #TTS_NOPREFIX | #TTS_BALLOON,0,0,0,0,WindowID(WindowID),0,GetModuleHandle_(0),0)
  SendMessage_(ToolTip,#TTM_SETTIPTEXTCOLOR,GetSysColor_(#COLOR_INFOTEXT),0)
  SendMessage_(ToolTip,#TTM_SETTIPBKCOLOR,GetSysColor_(#COLOR_INFOBK),0)
  SendMessage_(ToolTip,#TTM_SETMAXTIPWIDTH,0,180)
  Balloon.TOOLINFO\cbSize=SizeOf(TOOLINFO)
  Balloon\uFlags=#TTF_IDISHWND | #TTF_SUBCLASS
  Balloon\hwnd=GadgetID(Gadget)
  Balloon\uID=GadgetID(Gadget)
  Balloon\lpszText=@Text$
  SendMessage_(ToolTip, #TTM_ADDTOOL, 0, Balloon)
  If Title$ > ""
    SendMessage_(ToolTip, #TTM_SETTITLE, Icon, @Title$)
  EndIf
  
EndProcedure

OpenWindow(0,0,0,200,100,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"Tooltip")
CreateGadgetList(WindowID(0))
ButtonGadget(0, 30, 30, 50, 20, "Button")
BalloonTip(0, 0, "oink" , "blub", 0)
Repeat
  Select WindowEvent()
    Case #PB_Event_CloseWindow
      Quit = 1
  EndSelect
  Delay(20)
Until Quit
mfG
Tobi

Verfasst: 03.10.2004 21:09
von MVXA
Hmpf, bei mir kommt ein dialog wie man es unter WinNT(XP) kennt. ".... hat ein Problem festgestellt und muss beendet werden". Wenn es weiterhilft kann ich auch gerne ein Screenshot anhängen. Villt sollte man die Variable WindowID in hWnd umtaufen :|

Verfasst: 05.10.2004 15:18
von MVXA
Hat sonst niemand was zu sagen :? ?

Verfasst: 05.10.2004 15:50
von HeX0R
Wieso sollte das einmal zuviel sein ??
WindowId() <- Eine Funktion
WindowId <- übergebene PB-Long-Variable...

Das is völlig i.o.!
Musst es halt mit PB's Gagdet-Konstanten nachher füttern un ned mit den ID's

Verfasst: 05.10.2004 16:04
von MVXA
aso, unter VB gab das normaler weise konflikte :|