Welches Fenster ist das?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Fox
Beiträge: 75
Registriert: 08.08.2007 10:14
Kontaktdaten:

Welches Fenster ist das?

Beitrag von Fox »

Hi... Weiss jemand wie diese Fenster bzw. Popups heissen und wie man sie in PB erzeugt?

Bild

Hoffe jemand kann mir sagen was is ist^^

Danke euch


Fox
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Welches Fenster ist das?

Beitrag von Kiffi »

@Fox: Das sind (Bubble-)Tooltips.

http://www.purebasic.fr/english/viewtop ... 764#243764

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Beitrag von Mok »

Wie Kiffi schon gesagt hat, nennt man sie BubbleToolTips.
Wenn du einen BTT für einen Button, ein Textfeld usw. machen willst, würe ich dir den Visual-Designer empfehlen, damit kann man auch Bubbles samt Text und Überschrift (ja, auch Symbole!) entwerfern ;)

MfG, M:Dk

//Edit: OK, eigeentlich heißen sie BaloonTips, aba in der HTL von einem Freund von mir nennen sie sie BubbleTips (weils ne Sprechblase is, schätz ich mal :))
Zuletzt geändert von Mok am 03.06.2008 15:00, insgesamt 1-mal geändert.
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
Fox
Beiträge: 75
Registriert: 08.08.2007 10:14
Kontaktdaten:

Beitrag von Fox »

Hi.. Danke hat mir schonmal sehr geholfen :)

Nur möchte ich,das die BTT am SysTrayIcon in der Taskleiste angezeigt wird, wenn etwas bestimmtes, z.b. ein download oder igrendeine Programmfunktion ausgeführt wurde...

Therotisch dachte ich gar kein Problem, aber ich kann ja den BTT nur mit Gadget IDS machen...Wie mache ich das, dass es am SysTrayIcon angezeigt wird?


Danke euch

Gruß

FoX
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

In dem du die Hilfe oeffnest und unter SysTray nachguckst.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

SysTrayIconEx V1.0 for PB4
Wirste wohl für PB 4.20 neu mit TailBite erstellen müssen, Source ist bei.

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

so auf die Schnelle gefunden:

Hier gibt's einen entsprechenden Code von MarkH(?):
http://www.purebasic.fr/english/viewtop ... 6304#66304

ich habe ihn mal PB4.x - lauffähig gemacht und unten gepostet:

Code: Alles auswählen

#TRAY_ID = 999
#NIM_ADD = $0
#NIM_MODIFY = $1
#NIM_DELETE = $2
#NIF_MESSAGE = $1
#NIF_ICON = $2
#NIF_TIP = $4
#NIF_STATE = $8
#NIF_INFO = $10
#NIS_SHAREDICON = $2
#NIFF_NONE = $0
#NIIF_INFO = $1
#NIIF_WARNING = $2
#NIIF_ERROR = $3
#NIIF_NOSOUND = $10
#NIN_BALLOONSHOW=$402
#NIN_BALLOONHIDE=$403
#NIN_BALLOONTIMEOUT =$404
#NIN_BALLOONUSERCLICK=$405
#NOTIFYICON_VERSION = $3
#NOTIFYICONDATA_V1_SIZE = 88
#NOTIFYICONDATA_V2_SIZE = 488
#NOTIFYICONDATA_V3_SIZE = 504
 
Enumeration 
  #Window_0
  #TRAYICON_0
  #image_0
EndEnumeration

Structure IconData
  cbSize.l
  hwnd.l
  uID.l
  uFlags.l
  uCallbackMessage.l
  hIcon.l
  szTip.b[128]
  dwState.l
  dwStateMask.l
  szInfo.b[256]
  StructureUnion
  uTimeout.l
  uVersion.l
  EndStructureUnion
  szInfoTitle.b[64]
  dwInfoFlags.l
EndStructure

Procedure MyWindowCallback(WindowID, Message, wParam, lParam)
  Result = #PB_ProcessPureBasicEvents
  Select Message
    Case #WM_USER
      Select lParam
        Case #WM_LBUTTONDOWN
          Debug "Left mousebutton click on Icon"
          
        Case #WM_RBUTTONDOWN
          Debug "Right mousebutton click on Icon"
          
        Case #WM_LBUTTONDBLCLK
          Debug "Left button doublecklick on Icon"
          
        Case #WM_MOUSEMOVE
          ;Debug "Mouse moved over TrayIcon"
          
        Case #NIN_BALLOONSHOW
          Debug "SHow balloon"
          
        Case #NIN_BALLOONTIMEOUT
          Debug "Timeout or X pressed" ; The 'X' doesn't seem to be available in W2K?!
        Case #NIN_BALLOONUSERCLICK
          Debug "Balloon user click"
          
        Case #NIN_BALLOONHIDE
          Debug "Balloon closed"
          
      EndSelect
  EndSelect
  
  ProcedureReturn Result
EndProcedure

Procedure.w GetDataSize()
  
  If OpenLibrary(1,"VERSION.DLL")
    BuffSize.l= CallFunction(1,"GetFileVersionInfoSizeA","shell32.dll",0)
    If BuffSize>0
      databuf.s=Space(BuffSize-1)
      ;Dim databuf.b(BuffSize-1)
      Result=CallFunction(1,"GetFileVersionInfoA","shell32.dll",0,BuffSize,@databuf)
      Result=CallFunction(1,"VerQueryValueA",@databuf,"\",@lpBuffer,@puLen)
      CopyMemory(lpBuffer+10,@nVerMajor,2)
    EndIf
    CloseLibrary(1)
    Select nVerMajor
      Case 6
        ProcedureReturn #NOTIFYICONDATA_V3_SIZE
        
      Case 5
        ProcedureReturn #NOTIFYICONDATA_V2_SIZE
        
      Default
        ProcedureReturn #NOTIFYICONDATA_V1_SIZE
    EndSelect
  EndIf
  
EndProcedure

Procedure StatusAreaAddIcon(tooltiptext.s)
  Balloon.IconData\cbSize=GetDataSize()
  
  Balloon\hwnd = WindowID(#Window_0)
  Balloon\uId = #TRAY_ID
  Balloon\uFlags = #NIF_MESSAGE | #NIF_ICON | #NIF_TIP
  Balloon\hIcon = ImageID(#image_0)
  Balloon\dwState = #NIS_SHAREDICON
  Balloon\uCallbackMessage=#WM_USER
  If OSVersion() < #PB_OS_Windows_2000
    Balloon\uVersion = 0
  Else
    Balloon\uVersion = #NOTIFYICON_VERSION
  EndIf
  Balloon\uTimeout = 11000 ; The balloon will not disappear if you don't move the mouse!
  Balloon\dwInfoFlags = #NIIF_INFO
  If Balloon.IconData\cbSize=#NOTIFYICONDATA_V1_SIZE
    PokeS(@Balloon\szTip, tooltiptext,64)
  Else
    PokeS(@Balloon\szTip, tooltiptext,128)
  EndIf
  
  Result= CallFunction(0,"Shell_NotifyIcon",#NIM_ADD,@Balloon)
EndProcedure

Procedure StatusAreaRemoveIcon()
  Balloon.IconData\cbSize=GetDataSize()
  
  Balloon\hwnd = WindowID(#Window_0)
  Balloon\uId = #TRAY_ID
  Result= CallFunction(0,"Shell_NotifyIcon",#NIM_DELETE,@Balloon)
EndProcedure

Procedure ShowBalloonTip(title.s,maintext.s,tooltiptext.s,IconType.l)
  Balloon.IconData\cbSize=GetDataSize()
  
  Balloon\hwnd = WindowID(#Window_0)
  Balloon\uId = #TRAY_ID
  Balloon\uFlags =  #NIF_INFO | #NIF_MESSAGE | #NIF_ICON | #NIF_TIP
  Balloon\hIcon = ImageID(#image_0)
  Balloon\dwState = #NIS_SHAREDICON
  Balloon\uCallbackMessage=#WM_USER
  Balloon\uTimeout = 10000
  If OSVersion() < #PB_OS_Windows_2000
    Balloon\uVersion = 0
  Else
    Balloon\uVersion = #NOTIFYICON_VERSION
  EndIf
  Balloon\dwInfoFlags = IconType
  
  If Balloon.IconData\cbSize=#NOTIFYICONDATA_V1_SIZE
    PokeS(@Balloon\szTip, tooltiptext,64)
  Else
    PokeS(@Balloon\szTip, tooltiptext,128)
    PokeS(@Balloon\szInfo,maintext.s,255)
    PokeS(@Balloon\szInfoTitle,title.s,63)
  EndIf
  Result= CallFunction(0,"Shell_NotifyIcon",#NIM_MODIFY,@Balloon)
EndProcedure


OpenLibrary(0,"shell32.dll")

If OpenWindow(#Window_0,0,0,300,90,"Status Area(Systray) Balloon tip example",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) And CreateGadgetList(WindowID(#Window_0))
  ButtonGadget  (1, 50, 10,200, 20, "Add Status area icon")
  ButtonGadget  (2, 50, 30,200, 20, "Show Balloon tip")
  ButtonGadget  (3, 50, 50,200, 20, "Remove Icon")
  CatchImage(#image_0,?Icon)
  SetWindowCallback(@MyWindowCallback())
  
  Repeat
    EventID = WaitWindowEvent()
    
    Select EventID
        
      Case #PB_Event_Gadget
        Select EventGadget()
          Case 1
            StatusAreaAddIcon("Tool tip text")
          Case 2
            ShowBalloonTip("Status Area Balloon Tip demo","This is the first line"+Chr(13)+"This should be the second line","Tool tip text",#NIIF_INFO)
          Case 3
            StatusAreaRemoveIcon()
        EndSelect
    EndSelect
  Until EventID = #PB_Event_CloseWindow
  StatusAreaRemoveIcon()
  CloseLibrary(0)
EndIf
End

DataSection
  Icon:
  IncludeBinary "c:\programme\PureBasic\Examples\Sources\Data\CdPlayer.ico"
EndDataSection
Grüße ... Kiffi

// Edit:

@edel: kann man nativ einen Tooltip aufrufen, ohne mit der Maus über
dem Icon zu sein?
a²+b²=mc²
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Beitrag von Mok »

Kiffi hat geschrieben:@edel: kann man nativ einen Tooltip aufrufen, ohne mit der Maus über
dem Icon zu sein?
Ich bin zwar nich edel, aber bei mir funzt's nich... aber ich arbeite auch mit Bild
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Mok hat geschrieben:aber ich arbeite auch mit Bild
<OT>
wieso nicht 4.2?
</OT>

Dann nimmst Du halt den von mir verlinkten Code.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Beitrag von Mok »

Kiffi hat geschrieben:
Mok hat geschrieben:aber ich arbeite auch mit Bild
<OT>
wieso nicht 4.2?
</OT>
Das is ne sehr lange Story, ich könnte sie dir per PN schreiben, da würdest du aber viele Dosen RedBull brauchen um nicht einzuschlafen (wegen der Länge... und der Langweile :)). Ich mach's mal kurz: Ich hab damals, als noch 4.0-Zeiten waren mal die Beta runtergeladen. Als ich sie öffnette, sah sie auch ganz so wie 3.94 aus. Ich hatte bisher nur 94er Codes, und ich war ahnungslos, dass sich einige Befehle in v4 änderten. Also importierte ich einen Anno-3.94-Code und als ich [F5] drückte was in ungefähr jeder Zeile ein Fehler (Anzahl der Parameter, String gehört zu String und Float ist nicht Long und so weiter)
Wenn alle Befehle nun andere (mehr) Parameter haben, ist v4 fast so wie eine eigene Programmiersprache, die sich stark an 3.94 anlehnt. Aber ich glaub trotz alldem werd ich mir Version 4.20 besorgen, da ich wahrscheinlich der Einzige im Forum bin, der se noch nicht hat, und wenn ich mal wieder ein Prob hab, kann mir keiner helfen, da in v4 allen anders is.
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Antworten