wie fang ich bloss an ...
Code: Alles auswählen
Procedure Main
...
oMainDlg := XbpDialog(...)
...
// kpl. Browse Fenster als Function
oWinBro := myBrowse(oMainDlg)
// OBJ in Array speichern
AADD(aDLGOWNER,oWinBro)
...
oMainDlg:Show()
oWinBro:Show()
DO WHILE .NOT. lExit
nEvent := AppEvent( @mp1, @mp2, @oXbp, nTimeout )
DO CASE
...
ENDCASE
...
ENDDO
...
RETURN
Function myBrowse(oParent)
LOCAL aDBF := {{ "W9MARK" , 1,"*" ,"MARK" ,"","" },;
...
SELECT 5
USE (zPATH+"WM9MARK.DBF") ALIAS WM9MARK SHARED
...
oDlgBrowse := XbpDialog(oParent:drawingArea,....)
oBrowse := GuiBrowseDb( oDlgBrowse:drawingArea,...)
FOR i :=1 TO LEN(aDBF)
IF VALTYPE(aDBF[i,1])=="C"
oCol:dataLink := &("{||"+aDBF[i,1]+"}")
* oCol:dataLink := FieldWBlock(aDBF[i,1], nSelectNo )
ELSE
oCol:dataLink := aDBF[i,1]
ENDIF
...
NEXT
oBrowse:stableblock := {|| Ref2Gets(aEditControls) }
...
oBrowse:show()
//
// KEIN Eventloop sondern OBJ zurück geben
//
oDlgBrowse:hide()
oDlgBrowse:cargo := oBrowse
Return oDlgBrowse
auf den oBrowse loslassen ...
Code: Alles auswählen
// in Procedure MAIN
...
CASE nKey = xbeK_F12
IF aoChild[CH_WMP]:PlayState >= wmppsPaused ....
PLAYSNIP(oMainDlg,aoChild,aDLGOWNER)
ENDIF
...
Code: Alles auswählen
STATIC lPlaySnip := .F.
FUNCTION PLAYSNIP(oMainDlg,aoChild,aDLGOWNER)
LOCAL oPlaySnip
IF lPlaySnip // is fieldwide STATIC
ELSE
lPlaySnip := .T.
oPlaySnip := Thread():new()
oPlaySnip:start("PLAYPART",oMainDlg,aoChild,aDLGOWNER)
ENDIF
RETURN lPlaySnip
PROCEDURE PLAYPART(oMainDlg,aoChild,aDLGOWNER)
...
// anderes SELECT !!!
//
SELECT 1
//
// es MUSS der selbe ALIAS verwendet werden sonst meckert
// FieldWBlock obwohl ich es gar nicht verwende
//
USE (zPATH+"WM9MARK.DBF") ALIAS WM9MARK SHARED
...
DO WHILE !EOF()
...
IF aDLGOWNER[DI_DLGMARKER]:isvisible()
aDLGOWNER[DI_DLGMARKER]:cargo:Refreshall()
ENDIF
...
DO WHILE nIstPos < nEndPosi .AND..NOT. lPlayNext
nEvent := AppEvent( @mp1, @mp2, @oXbp, 5 )
DO CASE
...
ENDCASE
SLEEP(10)
ENDDO
lPlayNext := .F.
...
SKIP
IF aDLGOWNER[DI_DLGMARKER]:isvisible()
aDLGOWNER[DI_DLGMARKER]:cargo:RefreshCurrent()
ENDIF
ENDDO
und auch nicht an den "aktuellen" Workspace.
obwohl es "optisch" grundsätzlich funktioniert stimmt was nicht,
den ich hab im meinen oBrowse (oDlgBrowse:cargo) mit dem
Keyboard keine Kontrolle (up,down,PgUp,PgDown).
... im Main Thread wird, in SELECT 5 "WM9MARK.DBF", auch noch
der SCOPE gewechselt und er ist gewöhnlich in SELECT 1.
So ich hoffe es einigermassen verständlich gemacht zu haben was
ich wissen möchte wie man das besser/richtig macht.
gruss by OHR
Jimmy