![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) | |
![]() Date d'inscription: avril 2003
Messages: 334
|
Mon anglais étant plus que douteux et limité, un coup de pouce pour traduire ce texte serait le bienvenue.
Téléchargez COMate sur ce site : http://www.nxsoftware.com/ L'auteur s'est basé sur le code open source DispHelper écrit en C, qu'il a converti en PureBasic. L'archive contient un fichier d'aide,les sources en PureBasic et le code source d'une vingtaine d'exemples (utilisation des OCX , ouverture d'une feuille excel et remplissage des cellules, etc ...) Pour vous mettre en appétit, voici un des exemples (il ouvre une feuille excel et écrit dans les cellules) Code :
;///////////////////////////////////////////////////////////////////////////////// ;***COMate*** COM automation through iDispatch. ;*=========== ;* ;*Excel demo. ;///////////////////////////////////////////////////////////////////////////////// IncludePath "..\" XIncludeFile "COMate.pbi" date$ = FormatDate("%dd/%mm/%yyyy", Date()) Define.COMateObject ExcelObject, WorkBook ExcelObject = COMate_CreateObject("Excel.Application") If ExcelObject If ExcelObject\SetProperty("Visible = #True") = #S_OK WorkBook = ExcelObject\GetObjectProperty("Workbooks\Add") If WorkBook ExcelObject\SetProperty("Cells(1,1) = 'Hello'") ExcelObject\SetProperty("Cells(1,2) = 'from'") ExcelObject\SetProperty("Cells(1,3) = 'COMate!'") ExcelObject\SetProperty("Cells(1,5) = 'Today$0027s date is'") ;$0027 is a hex escape code used to insert a ' (ascii 39) character. ExcelObject\SetProperty("Cells(1,6) = '" + date$ + "' AS DATE") ExcelObject\SetProperty("Cells(4,1) = 6.25") ;Retrieve a double value and a date. dbl.d = ExcelObject\GetRealProperty("Cells(4,1)") MessageRequester("COMate - Excel demo", "Result Cells(4,1) : " + StrD(dbl)) ;For the date we retrieve it in string format. newDate$ = ExcelObject\GetStringProperty("Cells(1,6)") MessageRequester("COMate - Excel demo", "Result Cells(1,6) : " + newDate$) ExcelObject\Invoke("Quit()") WorkBook\Release() EndIf EndIf ExcelObject\Release() Else MessageRequester("COMate -Excel demo", "Couldn't create the application object!") EndIf Citation:
__________________
Rubrique PureBasic |
|
|
|
|
|
|
#2 (permalink) | |
![]() Date d'inscription: avril 2003
Messages: 334
|
Nouvelle mise à jour disponible
Citation:
Code x :
;works with OpenOffice 2/3 and also with IBM Symphony (aka Open Office with less bugs)
XIncludeFile "COMate.pbi"
XIncludeFile "VariantHelper_Include.pb"
Procedure.s ConvertToUrl(strFile.s)
strFile = ReplaceString(strFile, "\", "/")
strFile = ReplaceString(strFile, ":", "|")
strFile = ReplaceString(strFile, " ", "%20")
strFile = "file:///" + strFile
ProcedureReturn strFile
EndProcedure
Define.COMateObject oSM, oDesk, oDoc
Define.safearray *openpar
Define.variant openarray
V_ARRAY_DISP(openarray) = safearray
oSM = COMate_CreateObject("com.sun.star.ServiceManager")
If oSM
;Creating instance of Desktop
oDesk = oSM\GetObjectProperty("CreateInstance('com.sun.star.frame.Desktop')")
If oDesk
;Opening a exisiting Document
document.s = GetCurrentDirectory() + "test.odt"
oDoc = oDesk\GetObjectProperty("loadComponentFromURL('"+ConvertToUrl(document)+"', '_blank', 0, " + Str(openarray) + " as variant)")
Debug COMate_GetLastErrorDescription()
If oDoc
oDoc\Release()
EndIf
oDesk\Release()
EndIf
oSM\Release()
EndIf
Exemple pour ouvrir un document vide Code x :
XIncludeFile "COMate.pbi"
XIncludeFile "VariantHelper_Include.pb"
Procedure.s ConvertToUrl(strFile.s)
strFile = ReplaceString(strFile, "\", "/")
strFile = ReplaceString(strFile, ":", "|")
strFile = ReplaceString(strFile, " ", "%20")
strFile = "file:///" + strFile
ProcedureReturn strFile
EndProcedure
Define.COMateObject oSM, oDesk, oDoc
Define.safearray *openpar
Define.variant openarray
V_ARRAY_DISP(openarray) = safearray
oSM = COMate_CreateObject("com.sun.star.ServiceManager")
If oSM
;Creating instance of Desktop
oDesk = oSM\GetObjectProperty("CreateInstance('com.sun.star.frame.Desktop')")
If oDesk
;Opening a new writer Document
oDoc = oDesk\GetObjectProperty("loadComponentFromURL('private:factory/swriter', '_blank', 0, " + Str(openarray) + " as variant)")
If oDoc
oDoc\Release()
EndIf
oDesk\Release()
EndIf
oSM\Release()
EndIf
__________________
Rubrique PureBasic Dernière modification par comtois ; 07/09/2008 à 18h34 Motif: suppression colorisation code (elle ne correspond pas à PureBasic) |
|
|
|
|
|
![]() |
![]() |
||
COMate - Contrôle des objets COM
|
||
| Outils de la discussion | |
|
|