MsgBox nicht blocken

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
mk-soft
Beiträge: 3700
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: MsgBox nicht blocken

Beitrag von mk-soft »

Nicht aufregen... :wink:

Geht sehr gut mit Threads. RSBasic hat nur vergessen speicher für den Namen anzufordern

Code: Alles auswählen

EnableExplicit

CompilerIf Defined(EventCustomValue, #PB_Enumeration) = 0
  Enumeration EventCustomValue #PB_Event_FirstCustomValue 
    ; Nothing
  EndEnumeration
CompilerEndIf

Enumeration EventCustomValue
  #My_Event_OpenFileName
EndEnumeration

Procedure AllocateString(String.s)
  Protected *mem
  *mem = AllocateMemory(StringByteLength(String) + SizeOf(Character))
  If *mem
    PokeS(*mem, String)
  EndIf
  ProcedureReturn *mem
EndProcedure

Procedure.s FreeString(*Mem)
  Protected result.s
  If *Mem
    result = PeekS(*Mem)
    FreeMemory(*Mem)
  EndIf
  ProcedureReturn result
EndProcedure

Procedure thGetOpenFileName(Null)
  Protected OPENFILENAME.OPENFILENAME
  Protected *FileName
  
  *FileName = AllocateMemory(#MAX_PATH)
  OPENFILENAME\lStructSize = SizeOf(OPENFILENAME)
  OPENFILENAME\hWndOwner = 0
  OPENFILENAME\lpstrFile = *Filename
  OPENFILENAME\nMaxFile = #MAX_PATH
  OPENFILENAME\Flags = #OFN_EXPLORER | #OFN_ENABLESIZING | #OFN_FILEMUSTEXIST
  If GetOpenFileName_(OPENFILENAME)
    PostEvent(#My_Event_OpenFileName, 0, 0, 0, *FileName)
  Else
    FreeMemory(*FileName)
  EndIf
EndProcedure

  
If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
 
  CreateThread(@thGetOpenFileName(), 0)
  CreateThread(@thGetOpenFileName(), 0)
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        End
      Case #My_Event_OpenFileName
        Debug FreeString(EventData())
    EndSelect
  ForEver
EndIf

Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
¯\_(ツ)_/¯
Beiträge: 141
Registriert: 18.08.2017 09:35

Re: MsgBox nicht blocken

Beitrag von ¯\_(ツ)_/¯ »

@Bisonte
Ich weiß, das war nur ironisch und spaßig gemeint :)
Bild
¯\_(ツ)_/¯
Beiträge: 141
Registriert: 18.08.2017 09:35

Re: MsgBox nicht blocken

Beitrag von ¯\_(ツ)_/¯ »

Danke für den vollständigen Code lieber mk-soft :)
Bild
Antworten