Moderator: Moderatoren



:





funktioniert es wohl nicht "richtig".Ist die Systemfarbe "transparent" (XBPSYSCLR_TRANSPARENT) als Hintergrundfarbe definiert, verwendet GraBackground() Grafikinformationen aus dem Ausgabebereich des Parent-Objekts des Xbase Parts zum Zeichnen des Hintergrunds.
aAttr [ GRA_AS_BACKCOLOR ] := XBPSYSCLR_TRANSPARENT
GRA_AS_MIXMODE GRA_FGMIX_* GRA_FGMIX_OVERPAINT
GRA_AS_BGMIXMODE GRA_BGMIX_* GRA_BGMIX_LEAVEALONE
// Vordergrund
aAttr [ GRA_AS_MIXMODE ] := GRA_FGMIX_OVERPAINT
* aAttr [ GRA_AS_MIXMODE ] := GRA_FGMIX_LEAVEALONE
// Hintergrund
aAttr [ GRA_AS_BGMIXMODE ] := GRA_BGMIX_OVERPAINT
* aAttr [ GRA_AS_BGMIXMODE ] := GRA_BGMIX_LEAVEALONEaAttr [ GRA_AS_BGMIXMODE ] := GRA_BGMIX_OVERPAINT
Beispiel nur für ccCFFiles getestet
#define EvOLECompleteDrag "OLECompleteDrag"
#define EvOLEDragDrop "OLEDragDrop"
#define EvOLEDragOver "OLEDragOver"
#define EvOLEStartDrag "OLEStartDrag"
...
oListView:OLEDragMode := ccOLEDragAutomatic
oListView:OLEDropMode := ccOLEDropManual
...
************************************************************************
*
* OLECompleteDrag Occurs when a source component is dropped onto a target component,
* informing the source component that a drag action was either performed or canceled.
*
* OLEDragDrop Occurs when a source component is dropped onto a target component when
* the source component determines that a drop can occur.
*
* OLEDragOver Occurs when one component is dragged over another.
*
* OLEStartDrag Occurs when a component's OLEDrag method is performed, or when a
* component initiates an OLE drag/drop operation when the OLEDragMode property is set to
* Automatic.
*
************************************************************************
::SubscribeEvent( EvDblClick , {|a,b,c,d| ::_itemSelected(a,b,c,d) })
::SubscribeEvent( EvColumnClick , {|a,b,c,d| ::_Sortitnow(a,b,c,d) })
::SubscribeEvent( EvOLECompleteDrag, {|a | ::_OLECompleteDrag(a) })
::SubscribeEvent( EvOLEDragDrop , {|a,b,c,d,e,f | ::_OLEDragDrop(a,b,c,d,e,f) })
::SubscribeEvent( EvOLEDragOver , {|a,b,c,d,e,f,g| ::_OLEDragOver(a,b,c,d,e,f,g) })
::SubscribeEvent( EvOLEStartDrag , {|a,b | ::_OLEStartDrag(a,b) })
RETURN self
METHOD XbpListView:_OLECompleteDrag(nEffect)
LOCAL cText := ""
cText += " Effekt :"+LTRIM(STR(nEffect))
LogIt(cText) // Debug Logfile
RETURN self
METHOD XbpListView:_OLEDragDrop(oData,nEffect,nButton,nShift,nx,ny)
LOCAL cData := ""
LOCAL cText := ""
LOCAL nFormat := 0
LOCAL oFiles
LOCAL i,iMax
DO CASE
CASE oData:GetFormat( ccCFText ) ; cData := oData:GetData(ccCFText)
CASE oData:GetFormat( ccCFBitmap ) ; cData := "Bitmap"
CASE oData:GetFormat( ccCFMetafile ) ; cData := "Metafile"
CASE oData:GetFormat( ccCFDIB ) ; cData := "DIB"
CASE oData:GetFormat( ccCFPalette ) ; cData := "Palette"
CASE oData:GetFormat( ccCFEMetafile) ; cData := "EMetafile"
CASE oData:GetFormat( ccCFFiles )
oFiles := oData:Files
iMax := oFiles:Count
FOR i:= 1 TO iMax
cData += oFiles:Item(i)
NEXT
CASE oData:GetFormat( ccCFRTF ) ; cData := "RTF"
ENDCASE
cText += cData
cText += " Effekt :"+LTRIM(STR(nEffect))
cText += " Button :"+LTRIM(STR(nButton))
cText += " Shift :"
IF NIL <> nShift
cText += LTRIM(STR(nShift))
ELSE
cText += "???"
ENDIF
cText += " nx :"
IF NIL <> nx
cText += LTRIM(STR(nx))
ELSE
cText += "???"
ENDIF
cText += " ny :"
IF NIL <> ny
cText += +LTRIM(STR(ny))
ELSE
cText += "???"
ENDIF
LogIt(cText) // Debug Logfile
RETURN self
METHOD XbpListView:_OLEDragOver(oData,nEffect,nButton,nShift,nx,ny,nState )
LOCAL cData := ""
LOCAL cText := ""
LOCAL nFormat := 0
LOCAL oFiles
LOCAL i,iMax
DO CASE
CASE oData:GetFormat( ccCFText ) ; cData := oData:GetData(ccCFText)
CASE oData:GetFormat( ccCFBitmap ) ; cData := "Bitmap"
CASE oData:GetFormat( ccCFMetafile ) ; cData := "Metafile"
CASE oData:GetFormat( ccCFDIB ) ; cData := "DIB"
CASE oData:GetFormat( ccCFPalette ) ; cData := "Palette"
CASE oData:GetFormat( ccCFEMetafile) ; cData := "EMetafile"
CASE oData:GetFormat( ccCFFiles )
oFiles := oData:Files
iMax := oFiles:Count
FOR i:= 1 TO iMax
cData += oFiles:Item(i)
NEXT
CASE oData:GetFormat( ccCFRTF ) ; cData := "RTF"
ENDCASE
cText += cData
cText += " Effekt :"+LTRIM(STR(nEffect))
cText += " Button :"+LTRIM(STR(nButton))
cText += " Shift :"
IF NIL <> nShift
cText += LTRIM(STR(nShift))
ELSE
cText += "???"
ENDIF
cText += " nx :"
IF NIL <> nx
cText += LTRIM(STR(nx))
ELSE
cText += "???"
ENDIF
cText += " ny :"
IF NIL <> ny
cText += +LTRIM(STR(ny))
ELSE
cText += "???"
ENDIF
cText += " State :"
IF NIL <> nState
cText += LTRIM(STR(nState))
ELSE
cText += "???"
ENDIF
LogIt(cText) // Debug Logfile
RETURN self
METHOD XbpListView:_OLEStartDrag(oData, nEffect)
/***********************************************
ccOLEDropEffectNone 0
ccOLEDropEffectCopy 1
ccOLEDropEffectMove 2
ccOLEDropEffectScroll -2147483648
***********************************************/
LOCAL cData
LOCAL cText := ""
LOCAL nCount := 0
IF NIL <> oData
nCount := oData:Files:Count
IF nCount > 0
cData := oData:Files:Item(nCount)
cText += cData
ELSE
cText += "oData ???"
ENDIF
ENDIF
cText += " Effekt :"+LTRIM(STR(nEffect))
LogIt(cText) // Debug Logfile
RETURN self
gibt es schon eine Antwort ...andreas hat geschrieben:Wird es hier noch über die Prioritäten abgestimmt oder kann ich die Liste so absenden?





... klaro gibt es ne Rueckmeldung. Leider werde ich aber hierzu
erst im September (2. Hälfte kommen). Habe ich dir aber
bereits in meiner dankes email-geschrieben. Wie bereits
ausgeführt haben wir die Liste kategorisiert, verteilt und
erst mal im Hause mit dem abgeglichen was da ist bzw. was
wir auch haben wollten, dann haben wir natürlich auch
einiges gelernt.
... Nochmal, wir würden uns wünschen
wenn Ihr eine derartige Liste 1 mal im Jahr erstellen
würdet das wäre auf jeden Fall hilfreich für uns.



Ein integrierter Reportgenerator wäre allerdings nicht schlecht.
). Wenn man sich anschaut, was Tools wie List & Label, Chrystal Reports usw. leisten, ist die Neuentwicklung eines vergleichbaren Tools als Bestandteil eines exotischen Compilers schlicht wahnwitzig. Es gab vor Jahren mal ein Package aus Xbase++ und L&L, aber das ist wieder aus dem Angebot genommen worden. Jedenfalls gibt es kaum einen Drucktraum, den man sich nicht erfüllen kann, wenn man z.B. mit dieser Kombination arbeitet. Viele andere Entwicklungsumgebungen bieten auch nur vergleichsweise rudimentäre Reportfunktionen an, und die Entwickler, die damit arbeiten, setzen zusätzlich leistungsstarke Reportgeneratoren ein.









Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast