Seite 2 von 2

Verfasst: 05.02.2005 10:06
von ts-soft
@DarkDragon
Kannste bei vielen Screencapture Programmen einstellen

Verfasst: 05.02.2005 10:56
von bluejoke
Immer noch Offtopic: Ich kann dir IrfanView empfehlen - genial

@Andre: mach schnell! Ich freu mich schon soooooooooooooo

Verfasst: 05.02.2005 11:10
von DarkDragon
ts-soft hat geschrieben:@DarkDragon
Kannste bei vielen Screencapture Programmen einstellen
Ich dachte eher an eine art Tastenkombination mit der Druck/S-Abf Taste.
Naja macht nichts, beim ScreenVideoCapturing geht das mit dem Einstellen ob die Maus sichtbar ist nicht, da ist sie halt sichtbar, aber nicht immer mit dem aktuellen cursor ;) .

Verfasst: 05.02.2005 11:15
von ts-soft
@DarkDragon
Sehr empfehlenswert ist z.B: http://de.techsmith.com/

Verfasst: 05.02.2005 11:32
von DarkDragon
:? Danke, aber hab ich jemals danach gefragt(Nach einem externen Tool)?

Verfasst: 05.02.2005 14:00
von Andre
DarkDragon hat geschrieben:[OffTopic=Sorry]Andre, wie hast du den Mauszeiger ins Bild bekommen?[/OffTopic]
Wie bereits schon richtig vermutet wurde: ich habe Irfanview genommen mit der entsprechenden Option "Mauszeiger mit fotografieren".

"Back on topic": ich habe heute Nacht noch länger weiterprobiert, aber eben keine gewünschte Lösung gefunden. Vielleicht hat ja noch jemand eine Idee... :roll:

Verfasst: 05.02.2005 17:22
von Andre
Habe nun mit Hilfe meines Kumpels David 'tinman' die folgende Lösung aller Probleme !!! :D

(Verwendung eines Callback in Verbindung mit den speziellen Message/Notification-Flags war die einzige verbleibende Möglichkeit)

Code: Alles auswählen

Enumeration
  #MainWindow
  #AuthorWin
  #AuthorWinFrame
  #AuthorWinText
  #AuthorWinCombo
  #AuthorWinQuit
  #AuthorWinExit
  #AuthorWinChoose
  #SearchAuthorSelect
EndEnumeration


Global author_changed.l

Procedure.l callback(hwnd.l, Message.l, wParam.l, lParam.l)
  DefType.l   result
  DefType.l   control_id
  DefType.l   notification
  
  result = #PB_ProcessPureBasicEvents
  
  If IsWindow(#AuthorWin) And hwnd = WindowID(#AuthorWin)
    If Message=#WM_COMMAND
      notification = (wParam >> 16) & $FFFF
      control_id = wParam & $FFFF
      
      If control_id = #AuthorWinCombo
        If notification = #CBN_CLOSEUP
          state = GetGadgetState(#AuthorWinCombo)
          ;Debug "Callback selected item "+GetGadgetText(#AuthorWinCombo)+" "+Str(state)
          If state>=0
            author_changed = 1
          EndIf
        EndIf
      EndIf
    EndIf
  EndIf
  
  ProcedureReturn result
EndProcedure


;- Authors-Window
Procedure OpenAuthors()
  ; Opens a new window for choosing authors
  ; nearby the mouse cursor
  If OpenWindow(#AuthorWin,0,0,190,104,#PB_Window_BorderLess|#PB_Window_Invisible,"",WindowID(#MainWindow))
    SetWindowCallback(@callback())
    
    If CreateGadgetList(WindowID())
      x = 8 : y = 28 : w = 174
      Frame3DGadget (#AuthorWinFrame, 3,3,184,98,"Choose author")                        ; Title: Choose author to search:
      TextGadget    (#AuthorWinText, x,y,w,20,"Authors",#PB_Text_Center) : y + 16   ; Authors
      
      AdvancedGadgetEvents(#TRUE)
      ComboBoxGadget(#AuthorWinCombo,x,y,w,400)                              : y + 26
      For a=1 To 100
        AddGadgetItem(#AuthorWinCombo,-1,"Test "+Str(a))
      Next
      AdvancedGadgetEvents(#FALSE)
      
      ButtonGadget  (#AuthorWinQuit,  x,y,w,24,"Cancel")              ; Cancel  (after choosing a keyword the window will be automatically closed)
    EndIf
    AddKeyboardShortcut(#AuthorWin,#PB_Shortcut_Escape,#AuthorWinExit)
    AddKeyboardShortcut(#AuthorWin,#PB_Shortcut_Return, #AuthorWinChoose)
    
    ActivateGadget(#AuthorWinCombo)
  EndIf
EndProcedure

Procedure ShowAuthors()
  SetGadgetState(#AuthorWinCombo,-1)
  UseWindow(#AuthorWin)
  MoveWindow(DesktopMouseX(),DesktopMouseY())
  HideWindow(#AuthorWin,0)
  SetWindowPos_(WindowID(#AuthorWin),#HWND_TOPMOST,0,0,0,0,#SWP_NOMOVE|#SWP_NOSIZE)
  EnableWindow_(WindowID(#MainWindow), #False)
EndProcedure

Procedure HideAuthors()
  EnableWindow_(WindowID(#MainWindow), #True)
  HideWindow(#AuthorWin,1)
EndProcedure

Flags.l = #PB_Window_SystemMenu|#PB_Window_TitleBar
MainWin = OpenWindow(#MainWindow, 100, 100, 200, 100, Flags, "Test")
If MainWin
  If CreateGadgetList(WindowID())
    ButtonGadget(#SearchAuthorSelect, 50, 50, 20, 20, "...")
  EndIf
EndIf

OpenAuthors()


run = #True
Repeat
  author_changed = 0
  
  Event = WaitWindowEvent()
  
  WindowID = EventWindowID()
  GadgetID = EventGadgetID()
  MenuID   = EventMenuID()
  EvTypeID = EventType()
  
  ;- Events MainWin
  If WindowID = #MainWindow
    ;- MainWin ExitEvent
    If Event = #PB_EventCloseWindow
      run = #False
      
    ElseIf Event = #PB_EventGadget
      If GadgetID = #SearchAuthorSelect
        ShowAuthors()
      EndIf
    EndIf
    
    ;- Events Authors
  ElseIf WindowID = #AuthorWin
    
    If Event = #PB_EventGadget
      
      If GadgetID = #AuthorWinQuit
        HideAuthors()
        
      ElseIf GadgetID = #AuthorWinCombo      ; Author choosen
        
        If author_changed
          Debug "Selected item: " + GetGadgetText(#AuthorWinCombo)+" "+Str(GetGadgetState(#AuthorWinCombo))
          HideAuthors()
        EndIf
      EndIf
      
    EndIf
    
    Select MenuID
    Case #AuthorWinExit
      Debug "cancelled author list"
      HideAuthors()
      
    Case #AuthorWinChoose
      Debug "Return selected item: " + GetGadgetText(#AuthorWinCombo)+" "+Str(GetGadgetState(#AuthorWinCombo))
      HideAuthors()
    EndSelect
    
  EndIf
  
Until run = #False

Verfasst: 05.02.2005 17:45
von Donald
Andre hat geschrieben:... Hat jedoch einen kleinen Haken: bei Tastaturbedienung wird jetzt bereits beim Scrollen mit den Cursortasten ein Element ausgewählt.
versuche es mal damit

Code: Alles auswählen

; ********** Abfrage der Auswahlliste ********** 
      If event2 = 1  Or event2 = 13         ; LeftMouseButton or RETURN pressed 
      maus1=1
      EndIf
      If event2=0 And maus1=1
      maus1=0
        a = GetGadgetState(#AuthorWinCombo) 
        If a > 0 
          Debug "Selected item: " + GetGadgetText(#AuthorWinCombo) 
          HideAuthors() 
        EndIf 
      EndIf 
; **********************************************   

Verfasst: 05.02.2005 18:11
von Andre
@Donald: nützt leider nichts, damit tritt wieder das ursprüngliche Problem auf, dass bei einem Klick auf den Scrollbalken trotzdem ein Eintrag ausgewählt wird.

Verfasst: 06.02.2005 04:56
von Donald
Andre hat geschrieben:@Donald: nützt leider nichts, damit tritt wieder das ursprüngliche Problem auf, dass bei einem Klick auf den Scrollbalken trotzdem ein Eintrag ausgewählt wird.
ja hast recht, aber ein anderer "Fehler" wurde damit behoben.
Sobald man die linke Maustaste klickt und festhält wurde bei deiner
Routine sofort der Eintrag gewählt.
Nach dem ändern konnte dann mit der Maus bei gehaltender Maustaste
aus gescrollt werden.

Aber egal du hast was anderes gesucht. Sollte wohl etwas genauer
lesen und nicht so schnell überfliegen.