ATOUTFOX
    COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO

Forum AtoutFox

Le forum AtoutFox

Forum

RSS © www.atoutfox.org - Forum

Re: Clé VFP9 perdue
Bonsoir Francis

oui j'ai les numeros aussi dans la fenêtre "A propos" avec ma license accordé à...
cependant ce que j'évoquais ce sont les 5 blocs de 5 lettres/chiffres que MS demande au début du Setup pour continuer

Cordialement
Alain (de Guyane)


Fri, 16 Nov 2018 12:11:02 GMT

Re: Clé VFP9 perdue
Bonsoir,

théoriquement en fin de
[VFP]
? VERSION(1)
[/VFP]

Il y a le numéro de version sur l'ordi qui marche,

d'autre part, et toujours théoriquement il faut une licence par PC...

Cordialement
Francis


Thu, 15 Nov 2018 12:11:02 GMT

Clé VFP9 perdue
Bonjour

perdu mon CD original d'installation avec la clé inscrite dessus
MAIS je possède une clé USB en copie
Mon VFP9 est déjà installé sur un autre ordi portable

Bref, ou se trouve cachée dans le "registry" (ou dans VFP) cette clé d'installation afin de récupérer les renseignements ?

Cordialement
Alain (de Guyane)


Thu, 15 Nov 2018 12:11:02 GMT

Re=3a Pr=c3=a9paration des rencontres 2019
Bonjour à tous,

je peux faire une session "exploitation de Postgre à partir de VFP" : création
d'une base, mise à jour et requètes, appels de fonctions avec paramètres,
traitement des erreurs, etc ....

Bien cordialement,
J. MAURICE
Sun, 11 Nov 2018 12:11:02 GMT

Préparation des rencontres 2019
Bonjour,

Le week-end prochain (17 et 18 novembre), le bureau de l'association AtoutFox va se réunir pour commencer la préparation des rencontres 2019.
Vous pouvez nous aider !
D'abord en soumettant des idées de sujets pour les sessions, elles seront les bienvenues,
ou mieux encore, en vous proposant pour faire vous-même une session.
N'hésitez pas à répondre sous ce fil ou nous contacter.

Cordialement

Le Bureau




Sat, 10 Nov 2018 12:11:02 GMT

Re: Télécharger la version 8.0 (je n'ai trouvé que le lien SP1 mais impossible d'installer)
sur amazon.com

https://www.amazon.com/Visual-FoxPro-9-0-CD/dp/5941578822/ref=sr_1_16?ie=UTF8&qid=1541628351&sr=8-16&keywords=visual+foxpro+9

48$ us... pas sur que tu baignes dans la légalité !!!!


2018-11-07 BV69
> Bonjour,
> Un prospect possède la version 8.0. Je me suis arrêté à la version 2.6. J'ai
> assisté à la démo de VFP 3.0 en 1997 mais ai pratiqué pendant de nombreuses
> VB6 et WinDev. Je pense pouvoir m'adapter assez rapidement. J'ai téléchargé
> le SP1 mais l'installation ne fonctionne pas. Cela nécessite d'avoir
> l'installation de base de VFP 8.0. J'ai parcouru un grand nombre de liens via
> Google mais n'ai pas trouvé. Y-a-aurait-il une âme charitable pour me
> communiquer un lien ou m'envoyer le package via WeTransfer? Merci d'avance.

--
a+ Eddy
L'incompréhensible se réalise toujour avant le compréhensible parce que
tout simplement on ne l'a pas encore assimilé
Wed, 07 Nov 2018 12:11:02 GMT

Re: Télécharger la version 8.0 (je n'ai trouvé que le lien SP1 mais impossible d'installer)
allo

tant qu'à essayer de télécharger vfp 8.0.... recherche plutot la v.9

le sp1 et le sp2 ainsi qu'une petite manip sont disponibles...
Cependant ca te prend la v9 aisi qu'une license.

j'me demande si j'aurais le droit te vendre la mienne ...


Dans son message précédent, BV69 a écrit :
> Bonjour,
> Un prospect possède la version 8.0. Je me suis arrêté à la version 2.6. J'ai
> assisté à la démo de VFP 3.0 en 1997 mais ai pratiqué pendant de nombreuses
> VB6 et WinDev. Je pense pouvoir m'adapter assez rapidement. J'ai téléchargé
> le SP1 mais l'installation ne fonctionne pas. Cela nécessite d'avoir
> l'installation de base de VFP 8.0. J'ai parcouru un grand nombre de liens via
> Google mais n'ai pas trouvé. Y-a-aurait-il une âme charitable pour me
> communiquer un lien ou m'envoyer le package via WeTransfer? Merci d'avance.

--
a+ Eddy
L'incompréhensible se réalise toujour avant le compréhensible parce que
tout simplement on ne l'a pas encore assimilé
Wed, 07 Nov 2018 12:11:02 GMT

Télécharger la version 8.0 (je n'ai trouvé que le lien SP1 mais impossible d'installer)
Bonjour,
Un prospect possède la version 8.0. Je me suis arrêté à la version 2.6. J'ai assisté à la démo de VFP 3.0 en 1997 mais ai pratiqué pendant de nombreuses VB6 et WinDev. Je pense pouvoir m'adapter assez rapidement.
J'ai téléchargé le SP1 mais l'installation ne fonctionne pas. Cela nécessite d'avoir l'installation de base de VFP 8.0.
J'ai parcouru un grand nombre de liens via Google mais n'ai pas trouvé.
Y-a-aurait-il une âme charitable pour me communiquer un lien ou m'envoyer le package via WeTransfer?
Merci d'avance.



Wed, 07 Nov 2018 12:11:02 GMT

Re: Interface ChorusPro
Le 06/11/2018 à 10:34, THIVIND Cédric a écrit :
> Le 03/11/2018 à 12:48, Francis Faure a écrit :
>> Bonjour Cédric,
>> je suis aussi intéressé par les réponses à ta question.
>> Cordialement
>> Francis
>>
>>
> Bonjour
>
> On a un peu de mal à avoir un peu plus de détails
> On va sans doute tenter le format mixte FactureX (j'ai un doute sur la
> faisabilité technique de ce PDF qui inclut un XML) et sinon on fera de
> l'UBL (Universal Business Language)
>
> Cédric

Après lecture des options xfrx de génération PDF, je suis un peu plus
confiant sur la faisabilité (puisque xfrx semble gérer le format PDF/A3
ainsi que l'attachement d'un fichier)

A suivre...

Cédric
Tue, 06 Nov 2018 12:11:02 GMT

Re: Interface ChorusPro
Le 03/11/2018 à 12:48, Francis Faure a écrit :
> Bonjour Cédric,
> je suis aussi intéressé par les réponses à ta question.
> Cordialement
> Francis
>
>
Bonjour

On a un peu de mal à avoir un peu plus de détails
On va sans doute tenter le format mixte FactureX (j'ai un doute sur la
faisabilité technique de ce PDF qui inclut un XML) et sinon on fera de
l'UBL (Universal Business Language)

Cédric
Tue, 06 Nov 2018 12:11:02 GMT

Re: Interface ChorusPro
Bonjour Cédric,
je suis aussi intéressé par les réponses à ta question.
Cordialement
Francis


Sat, 03 Nov 2018 12:11:02 GMT

Interface ChorusPro
Bonjour

Comme vous le savez sans doute, les factures émises pour les
collectivités publiques doivent de plus en plus être dématérialisées et
passer par l'interface ChorusPro
On va donc sans doute développer cette interface pour que nos clients
puissent envoyer leurs factures

Mon "souci" est que les points d'entrée sont tellement multiples que je
patauge un peu dans le "bon choix" à faire

En effet ils mettent à dispo des services Web ainsi que de multiples
formats EDI

Parmi ces derniers ils mettent en avant
"Des formats structurés" (un fichier qui contient de façon exhaustive
toutes les données des factures)
- Format UBL Invoic
- Format CII 16b
"Des formats mixtes" (si j'ai bien compris un PDF de la facture avec un
fichier structuré explicatif)
- Format CPP Facture mixte
- Format UBL Invoic
- Format CII 16b
- Format FactureX

Si jamais vous avez déjà un retour d'expérience pour me guider dans le
"meilleur" choix à faire...

Merci !

Cédric
Tue, 30 Oct 2018 12:11:02 GMT

Re: SCANNER, LIRE CODE BARRE, SAUVEGARDER
Bonjour JPB,

Toutes mes excuses pour avoir répondu avec 3 mois de retard, suite Pb personnels.
Mon client venant de me relancer, je vais commencer par ta solution qui me semble la bonne pour moi.
Encore merci.
Bien cordialement


Sat, 27 Oct 2018 12:11:02 GMT

Re: SCANNER, LIRE CODE BARRE, SAUVEGARDER
Bonjour Rapido

Désolé pour cette réônse tardive.
Je te remercie pour tes informations que je vais exploiter dans les prochains jours.
Bien cordialement


Sat, 27 Oct 2018 12:11:02 GMT

Re: SCANNER, LIRE CODE BARRE, SAUVEGARDER
Bonjour Hamidou,

Toutes mes excuses pour ne pas avoir répondu à ton message plus tôt.
Je te remercie pour tes informations que je vais exploiter dans les prochains jours.
Bien cordialement


Sat, 27 Oct 2018 12:11:02 GMT

Re: Réinstalation
Francis Faure avait écrit le 23/10/2018 :
> Bonjour Guy,
>
> Peut être il te manque "SOAP Toolkit 3.0"
> il est installé dans les "prérequis" de l'installation VFP9
> le fichier s'appelle : "soapsdk.exe"
>
> autre solution : désactiver le taskpane
>
> puis configurer par défaut au démarrage
> set ressource on
> et
> set developpement on
>
> Cordialement
> Francis
>
>
>
> Le mar. 23 octobre 2018, 11h20 atoutfox.public.association a écrit :
>> Bonjour à tous
>>
>> Suite à un crash disque, j'ai du réinstaller mon CD VFOX9.
>> Avec difficultés de lecture de ce dernier. (impossible de réinstaller
>> dans un autre disque que c:)
>> Et ensuite maj sp2 (US)
>>
>> Finalement j'ai un problème lors de l'ouverture d'une action
>> Je suppose lié à taskpane qui s'ouvre intempestivement lors de chaque
>> action menu, commandes etc.
>>
>> Mess
>> 0: Class definition MSXML2.DOMDOCUMENT.4.0 is not found.
>>
>> Après qqes recherches maj de MSXML 4.0 Service Pack 3 (US)
>> Task pane se met en route mais impossible de le fermer sans
>> reconfigurer
>> tous mes projets anciens (perdu)
>> Une idéee
>>
>> --
>> Guy Bonemme
>> BeFox
>> .
>>

Merci francis tout est OK

--
Guy Bonemme
BeFox

---
Cet email a fait l'objet d'une analyse antivirus par AVG.
http://www.avg.com

Fri, 26 Oct 2018 12:11:02 GMT

La commande 'numlock()' de FoxPro 16 bits n'est pas active en 32 bits ...
Bonjour,

J'utilise toujours une application FoxPro DOS (v2.5) sous windows XP3 (32 bits donc).

Le problème est que la commande 'numlock()' de FoxPro 16 bits n'est pas active en 32 bits (donc sous windows XP).

Existe-t-il un substitut (genre 'numlock32') qui fasse l'affaire, ou bien comment le créer (assembleur, C ... ) puis l'appeler sous FoxPro DOS - je ne suis pas un pro de la programmation - ?

Cette version '32 bits' étant native dans les versions 'Visual Foxpro'.

NB : TameDos active le 'numlock() 16 bits' sous XP, mais de façon aléatoire et fait planter les sessions ... -> définitivement abandonné !

Vous remerciant,

Semaj


Fri, 26 Oct 2018 12:11:02 GMT

Re: Réinstalation
Francis Faure avait prétendu :
> Bonjour Guy,
>
> Peut être il te manque "SOAP Toolkit 3.0"
> il est installé dans les "prérequis" de l'installation VFP9
> le fichier s'appelle : "soapsdk.exe"
>
> autre solution : désactiver le taskpane
>
> puis configurer par défaut au démarrage
> set ressource on
> et
> set developpement on
>
> Cordialement
> Francis
>
>
>
> Le mar. 23 octobre 2018, 11h20 atoutfox.public.association a écrit :
>> Bonjour à tous
>>
>> Suite à un crash disque, j'ai du réinstaller mon CD VFOX9.
>> Avec difficultés de lecture de ce dernier. (impossible de réinstaller
>> dans un autre disque que c:)
>> Et ensuite maj sp2 (US)
>>
>> Finalement j'ai un problème lors de l'ouverture d'une action
>> Je suppose lié à taskpane qui s'ouvre intempestivement lors de chaque
>> action menu, commandes etc.
>>
>> Mess
>> 0: Class definition MSXML2.DOMDOCUMENT.4.0 is not found.
>>
>> Après qqes recherches maj de MSXML 4.0 Service Pack 3 (US)
>> Task pane se met en route mais impossible de le fermer sans
>> reconfigurer
>> tous mes projets anciens (perdu)
>> Une idéee
>>
>> --
>> Guy Bonemme
>> BeFox
>> .
>>

Meri Francis je teste

--
Guy Bonemme
BeFox
Tue, 23 Oct 2018 12:11:02 GMT

Re: Réinstalation
Bonjour Guy,

Peut être il te manque "SOAP Toolkit 3.0"
il est installé dans les "prérequis" de l'installation VFP9
le fichier s'appelle : "soapsdk.exe"

autre solution : désactiver le taskpane

puis configurer par défaut au démarrage
set ressource on
et
set developpement on

Cordialement
Francis



Le mar. 23 octobre 2018, 11h20 atoutfox.public.association a écrit :
> Bonjour à tous
>
> Suite à un crash disque, j'ai du réinstaller mon CD VFOX9.
> Avec difficultés de lecture de ce dernier. (impossible de réinstaller
> dans un autre disque que c:)
> Et ensuite maj sp2 (US)
>
> Finalement j'ai un problème lors de l'ouverture d'une action
> Je suppose lié à taskpane qui s'ouvre intempestivement lors de chaque
> action menu, commandes etc.
>
> Mess
> 0: Class definition MSXML2.DOMDOCUMENT.4.0 is not found.
>
> Après qqes recherches maj de MSXML 4.0 Service Pack 3 (US)
> Task pane se met en route mais impossible de le fermer sans
> reconfigurer
> tous mes projets anciens (perdu)
> Une idéee
>
> --
> Guy Bonemme
> BeFox
> .
>



Tue, 23 Oct 2018 12:11:02 GMT

Réinstalation
Bonjour à tous

Suite à un crash disque, j'ai du réinstaller mon CD VFOX9.
Avec difficultés de lecture de ce dernier. (impossible de réinstaller
dans un autre disque que c:)
Et ensuite maj sp2 (US)

Finalement j'ai un problème lors de l'ouverture d'une action
Je suppose lié à taskpane qui s'ouvre intempestivement lors de chaque
action menu, commandes etc.

Mess
0: Class definition MSXML2.DOMDOCUMENT.4.0 is not found.

Après qqes recherches maj de MSXML 4.0 Service Pack 3 (US)
Task pane se met en route mais impossible de le fermer sans
reconfigurer
tous mes projets anciens (perdu)
Une idéee

--
Guy Bonemme
BeFox
Tue, 23 Oct 2018 12:11:02 GMT

Re: update
Ouvre le dataenvironment de la forme, et souri-droite sur la table.




Sun, 14 Oct 2018 12:11:02 GMT

Re: combinaison plusieurs rapports
Bonjour,

SET REPORTBEHAVIOR 80

REPORT FORM dgf_cumul PREVIEW NORESET NOPAGEEJECT
REPORT FORM dgf_dossier PREVIEW NORESET NOPAGEEJECT
...
REPORT FORM fin_rapport PREVIEW

Tu peux mixer du portrait et du paysage.
JP



Fri, 12 Oct 2018 12:11:02 GMT

combinaison plusieurs rapports
Bonjour,

Comment faire une combinaison de plusieurs rapports Portrait et Paysage dans un seul travail d'impression ?

Merci


Thu, 11 Oct 2018 12:11:02 GMT

Re: update
Bonjour,

on ne peut pas empêcher la modification d'une table sauf en l'ouvrant avec
l'option NOUPDATE :
USE matable NOUPDATE

A+
Jean à Grenoble
Sat, 29 Sep 2018 12:11:02 GMT

Re: WIN32 API
trouvé

a+ Eddy

********************************************************************
* GDI+ wrapper
********************************************************************
* Classes defined:
* gdiplusbase, graphics, gdiimage, gdibitmap, gdifontcollection,
* gdifontfamily, gdifont, gdipen, gdimatrix, gdistringformat,
* gdiplusinit
********************************************************************
* an instance of gdiplusinit should be created before
* and released after using any of gdi+ objects
********************************************************************

DEFINE CLASS gdiplusbase As Custom
* abstract base class for graphics, gdiimage, gdifontcollection,
* gdifontfamily, gdifont and others
errorcode=0
ENDDEFINE

********************************************************************
DEFINE CLASS graphics As gdiplusbase
SmoothingMode=0
graphics=0
hdc=0

PROCEDURE SmoothingMode_ACCESS
LOCAL nSmoothingMode
nSmoothingMode = 0

IF GdipGetSmoothingMode(THIS.graphics, @nSmoothingMode) = 0
THIS.SmoothingMode = nSmoothingMode
ENDIF
RETURN THIS.SmoothingMode

PROCEDURE SmoothingMode_ASSIGN(vValue)
IF VARTYPE(vValue) = "N" AND;
GdipSetSmoothingMode(THIS.graphics, vValue) = 0
THIS.SmoothingMode = vValue
ENDIF

PROCEDURE Init(p1, p2)
IF PCOUNT()>0
THIS.CreateGraphics(p1, p2)
ENDIF

PROCEDURE Destroy
THIS.ReleaseGraphics
DODEFAULT()

PROCEDURE ReleaseGraphics
IF THIS.graphics = 0
RETURN
ENDIF

THIS.ReleaseDC
= GdipDeleteGraphics(THIS.graphics)
THIS.graphics=0

FUNCTION CreateGraphics(p1, p2)
#DEFINE OBJ_DC 3
THIS.ReleaseGraphics

LOCAL graphics, nObjType
STORE 0 TO graphics
nObjType = GetObjectType(m.p1)

DO CASE
CASE nObjType=0 AND IsWindow(m.p1)<>0
THIS.errorcode = GdipCreateFromHWND(m.p1, @graphics)
CASE nObjType=OBJ_DC AND PCOUNT()=1
THIS.errorcode = GdipCreateFromHDC(m.p1, @graphics)
CASE nObjType=OBJ_DC AND PCOUNT()=2
THIS.errorcode = GdipCreateFromHDC2(m.p1, m.p2, @graphics)
OTHERWISE
THIS.errorcode = -1
RETURN .F.
ENDCASE
THIS.graphics = m.graphics
RETURN (THIS.errorcode=0)

PROCEDURE GetDC
THIS.ReleaseDC
LOCAL hdc
hdc=0
IF THIS.graphics <> 0
= GdipGetDC(THIS.graphics, @hdc)
ENDIF
THIS.hdc = m.hdc
RETURN m.hdc

PROCEDURE ReleaseDC
IF THIS.hdc <> 0
= GdipReleaseDC(THIS.graphics, THIS.hdc)
THIS.hdc=0
ENDIF

PROCEDURE DrawImage(oImage, nX, nY, nWidth, nHeight)
IF VARTYPE(nWidth) <> "N"
nWidth = oImage.imgwidth
ENDIF
IF VARTYPE(nHeight) <> "N"
nHeight = oImage.imgheight
ENDIF
THIS.errorcode = GdipDrawImageRectI(THIS.graphics,;
oImage.himage, m.nX, m.nY, m.nWidth, m.nHeight)

PROCEDURE DrawText(cStr, oFont, p1, p2, p3, p4)
LOCAL rectf
IF VARTYPE(m.p1)="O"
rectf = p1.ToString()
ELSE
WITH CREATEOBJECT("rectf", m.p1, m.p2, m.p3, m.p4)
rectf = .ToString()
ENDWITH
ENDIF

= GdipSetTextRenderingHint(THIS.graphics, 0) && 0..5

THIS.errorcode = GdipDrawString(THIS.graphics,;
ToWideChar(m.cStr), -1, oFont.fnt, @rectf, 0, oFont.brush)
RETURN (THIS.errorcode=0)

FUNCTION MeasureString(cStr, oFont) As RectF
LOCAL fmt As gdistringformat, oRect, cRectSrc, cRectDst,;
nCharsFitted, nLinesFitted

fmt = CREATEOBJECT("gdistringformat", 0)

oRect = CREATEOBJECT("rectf", 0, 0, 0, 0)
STORE oRect.ToString() TO cRectSrc, cRectDst

STORE 0 TO nCharsFitted, nLinesFitted

THIS.errorcode = GdipMeasureString(THIS.graphics,
STRCONV(m.cStr+CHR(0),5),;
LEN(m.cStr), oFont.fnt, cRectSrc, fmt.fmt, @cRectDst,;
@nCharsFitted, @nLinesFitted)

oRect.FromString(m.cRectDst)
RETURN m.oRect

PROCEDURE FillRectangle(p1, p2, p3, p4, p5)
LOCAL brush
IF VARTYPE(m.p1)="O"
brush = p1.brush
ELSE
LOCAL oBrush
oBrush = CREATEOBJECT("gdisolidbrush", m.p1)
brush = oBrush.brush
ENDIF

IF VARTYPE(p2)="O"
= GdipFillRectangle(THIS.graphics, m.brush,;
p2.rleft, p2.rtop, p2.rwidth, p2.rheight)
ELSE
= GdipFillRectangle(THIS.graphics, m.brush,;
m.p2, m.p3, m.p4, m.p5)
ENDIF

PROCEDURE FillEllipse(p1, p2, p3, p4, p5)
LOCAL brush
IF VARTYPE(m.p1)="O"
brush = p1.brush
ELSE
LOCAL oBrush
oBrush = CREATEOBJECT("gdisolidbrush", m.p1)
brush = oBrush.brush
ENDIF

IF VARTYPE(p2)="O"
= GdipFillEllipse(THIS.graphics, m.brush,;
p2.rleft, p2.rtop, p2.rwidth, p2.rheight)
ELSE
= GdipFillEllipse(THIS.graphics, m.brush,;
m.p2, m.p3, m.p4, m.p5)
ENDIF

PROCEDURE DrawRectangle(p1, p2, p3, p4, p5)
LOCAL nHandle
IF VARTYPE(m.p1)="O"
nHandle = p1.hpen
ELSE
LOCAL oPenObj
oPenObj = CREATEOBJECT("gdipen", m.p1, 1)
nHandle = oPenObj.hpen
ENDIF

IF VARTYPE(p2)="O"
= GdipDrawRectangle(THIS.graphics, m.nHandle,;
p2.rleft, p2.rtop, p2.rwidth, p2.rheight)
ELSE
= GdipDrawRectangle(THIS.graphics, m.nHandle,;
m.p2, m.p3, m.p4, m.p5)
ENDIF

PROCEDURE DrawEllipse(p1, p2, p3, p4, p5)
LOCAL nHandle
IF VARTYPE(m.p1)="O"
nHandle = p1.hpen
ELSE
LOCAL oPenObj
oPenObj = CREATEOBJECT("gdipen", m.p1, 1)
nHandle = oPenObj.hpen
ENDIF

IF VARTYPE(p2)="O"
= GdipDrawEllipse(THIS.graphics, m.nHandle,;
p2.rleft, p2.rtop, p2.rwidth, p2.rheight)
ELSE
= GdipDrawEllipse(THIS.graphics, m.nHandle,;
m.p2, m.p3, m.p4, m.p5)
ENDIF

PROCEDURE DrawLine(p1, p2, p3, p4, p5)
LOCAL nHandle
IF VARTYPE(m.p1)="O"
nHandle = p1.hpen
ELSE
LOCAL oPenObj
oPenObj = CREATEOBJECT("gdipen", m.p1, 1)
nHandle = oPenObj.hpen
ENDIF

IF VARTYPE(p2)="O"
= GdipDrawLine(THIS.graphics, m.nHandle,;
p2.rleft, p2.rtop, p2.rwidth, p2.rheight)
ELSE
= GdipDrawLine(THIS.graphics, m.nHandle,;
m.p2, m.p3, m.p4, m.p5)
ENDIF

PROCEDURE SetTransform(vMatrix)
DO CASE
CASE VARTYPE(m.vMatrix) = "O"
THIS.errorcode = GdipSetWorldTransform(;
THIS.graphics, vMatrix.hmatrix)
CASE VARTYPE(m.vMatrix) = "N"
THIS.errorcode = GdipSetWorldTransform(;
THIS.graphics, m.vMatrix)
ENDCASE

PROCEDURE ResetTransform
THIS.errorcode=GdipResetWorldTransform(;
THIS.graphics)

ENDDEFINE

********************************************************************
DEFINE CLASS gdidbrush As gdiplusbase
brush=0
PROCEDURE Destroy
THIS.ReleaseBrush
PROTECTED PROCEDURE ReleaseBrush
IF THIS.brush <> 0
= GdipDeleteBrush(THIS.brush)
THIS.brush=0
ENDIF
ENDDEFINE

DEFINE CLASS gdisolidbrush As gdidbrush
PROCEDURE Init(argbcolor)
IF VARTYPE(m.argbcolor) <> "N"
argbcolor=0
ENDIF
THIS.SetBrushColor(argbcolor)

PROCEDURE SetBrushColor(argbcolor)
THIS.ReleaseBrush
LOCAL brush
brush=0
THIS.errorcode = GdipCreateSolidFill(m.argbcolor, @brush)
THIS.brush = m.brush
RETURN (THIS.errorcode=0)

ENDDEFINE

********************************************************************
DEFINE CLASS gdiimage As gdiplusbase
himage=0
hbitmap=0
filename=""
imgtype=0
imgwidth=0
imgheight=0
imgflags=0
guid=""
graphics=0

PROCEDURE Init(p1, p2, p3, p4, p5, p6)
DO CASE
CASE PCOUNT()=1 AND VARTYPE(p1)="C"
THIS.CreateFromFile(p1)
CASE PCOUNT()=1 AND VARTYPE(p1)="N"
THIS.CreateFromHandle(p1)
CASE PCOUNT()=1 AND VARTYPE(p1)="O"
THIS.CloneFromGdiBitmap1(p1)
CASE PCOUNT()>1 AND VARTYPE(p1)="O"
THIS.CloneFromGdiBitmap2(p1, p2, p3, p4, p5, p6)
ENDCASE

PROCEDURE Destroy
THIS.ReleaseImage
DODEFAULT()

PROCEDURE ReleaseImage
#DEFINE OBJ_BITMAP 7
IF VARTYPE(THIS.graphics)="O"
THIS.graphics=0
ENDIF
IF THIS.himage <> 0
= GdipDisposeImage(THIS.himage)
THIS.himage=0
ENDIF
IF THIS.hbitmap <> 0
IF GetObjectType(THIS.hbitmap)=OBJ_BITMAP
= DeleteObject(THIS.hbitmap)
ENDIF
THIS.hbitmap=0
ENDIF
THIS.filename=""
THIS.imgtype=0
THIS.imgwidth=0
THIS.imgheight=0
THIS.imgflags=0
THIS.guid=""
THIS.errorcode = 0

FUNCTION CreateFromFile(cFile)
THIS.ReleaseImage
THIS.filename = m.cFile

LOCAL img, imgtype, imgwidth, imgheight, imgflags, guid
STORE 0 TO img, imgtype, imgwidth, imgheight, imgflags

TRY
THIS.errorcode = GdipLoadImageFromFile(;
ToWideChar(cFile), @img)
CATCH
THIS.errorcode =-1
ENDTRY

THIS.himage=m.img
THIS.GetImageParameters
RETURN (THIS.himage<>0)

FUNCTION CreateFromHandle(img)
THIS.ReleaseImage
THIS.himage=m.img
THIS.GetImageParameters
IF THIS.imgtype <> 0
RETURN .T.
ELSE
THIS.ReleaseImage
RETURN .F.
ENDIF

FUNCTION CloneFromGdiBitmap1(src)
LOCAL srcHBitmap, dstHImage, dst
srcHBitmap = src.GetHBITMAP()
IF srcHBitmap <> 0
dstHImage=0
THIS.errorcode = GdipCreateBitmapFromHBITMAP(;
m.srcHBitmap, 0, @dstHImage)
IF THIS.errorcode = 0
RETURN THIS.CreateFromHandle(dstHImage)
ENDIF
ENDIF
RETURN .F.

FUNCTION CloneFromGdiBitmap2(src, dstfmt, x0, y0, dstwidth, dstheight)
LOCAL dstHImage
dstHImage = 0
THIS.errorcode = GdipCloneBitmapArea(;
m.x0, m.y0, m.dstwidth, m.dstheight,;
dstfmt, src.himage, @dstHImage)
IF THIS.errorcode = 0
RETURN THIS.CreateFromHandle(dstHImage)
ENDIF
RETURN .F.

PROTECTED PROCEDURE GetImageParameters
LOCAL imgtype, imgwidth, imgheight, imgflags, guid, graphics
STORE 0 TO imgtype, imgwidth, imgheight, imgflags, graphics
guid = REPLICATE(CHR(0), 16)

IF THIS.himage <> 0
= GdipGetImageType(THIS.himage, @m.imgtype)
= GdipGetImageWidth(THIS.himage, @m.imgwidth)
= GdipGetImageHeight(THIS.himage, @m.imgheight)
= GdipGetImageFlags(THIS.himage, @m.imgflags)
= GdipGetImageRawFormat(THIS.himage, @m.guid)
ENDIF
THIS.imgtype = m.imgtype
THIS.imgwidth = m.imgwidth
THIS.imgheight = m.imgheight
THIS.imgflags = m.imgflags
THIS.guid = m.guid

IF VARTYPE(THIS.graphics) = "N"
THIS.errorcode =;
GdipGetImageGraphicsContext(THIS.himage, @graphics)
IF THIS.errorcode = 0
* 3=OutOfMemory
THIS.graphics = CREATEOBJECT("graphics")
THIS.graphics.graphics = m.graphics
ENDIF
ENDIF

FUNCTION GetHBITMAP
LOCAL hbitmap
hbitmap=0
IF THIS.hbitmap = 0
THIS.errorcode = GdipCreateHBITMAPFromBitmap(;
THIS.himage, @hbitmap, 0)
IF THIS.errorcode = 0
THIS.hbitmap = m.hbitmap
ENDIF
ENDIF
RETURN THIS.hbitmap

PROCEDURE CreateHICON
LOCAL hIcon
hIcon=0
THIS.errorcode = GdipCreateHICONFromBitmap(;
THIS.himage, @hIcon)
RETURN m.hIcon

FUNCTION SaveToFile(cTargetFile)
#DEFINE ccEncoderBitmap "{557cf400-1a04-11d3-9a73-0000f81ef32e}"
#DEFINE ccEncoderJpeg "{557CF401-1A04-11D3-9A73-0000F81EF32E}"
#DEFINE ccEncoderGif "{557cf402-1a04-11d3-9a73-0000f81ef32e}"
#DEFINE ccEncoderTiff "{557cf405-1a04-11d3-9a73-0000f81ef32e}"
#DEFINE ccEncoderPng "{557cf406-1a04-11d3-9a73-0000f81ef32e}"
LOCAL cType, cEncoder
cType = UPPER(ALLTRIM(SUBSTR(cTargetFile,;
RAT(".",cTargetFile)+1)))

DO CASE
CASE cType == "BMP"
cEncoder=StringToCLSID(ccEncoderBitmap)
CASE cType == "JPG" OR cType == "JPEG"
cEncoder=StringToCLSID(ccEncoderJpeg)
CASE cType == "GIF"
cEncoder=StringToCLSID(ccEncoderGif)
CASE cType == "TIF" OR cType == "TIFF"
cEncoder=StringToCLSID(ccEncoderTiff)
CASE cType == "PNG"
cEncoder=StringToCLSID(ccEncoderPng)
OTHERWISE
THIS.errorcode=-1
RETURN .F.
ENDCASE
THIS.errorcode = GdipSaveImageToFile(THIS.himage,;
ToWideChar(m.cTargetFile), m.cEncoder, 0)
RETURN (THIS.errorcode=0)
ENDDEFINE

********************************************************************
DEFINE CLASS gdibitmap As gdiimage

PROCEDURE Init(p1, p2)
IF PCOUNT()=2 AND VARTYPE(p1)="N" AND VARTYPE(p2)="N"
THIS.CreateBitmap(p1, p2)
ENDIF

PROCEDURE CreateBitmap(nWidth, nHeight)
RETURN THIS.CreateFromHWND(nWidth, nHeight, GetDesktopWindow())

PROCEDURE CreateFromHWND(nWidth, nHeight, hwindow)
LOCAL gr, lResult
gr = CREATEOBJECT("graphics", m.hwindow)
lResult = THIS.CreateFromGraphics(nWidth, nHeight, gr.graphics)
RETURN m.lResult

PROCEDURE CreateFromGraphics(nWidth, nHeight, graphics)
LOCAL img
img=0
THIS.errorcode = GdipCreateBitmapFromGraphics(;
m.nWidth, m.nHeight, m.graphics, @img)
IF THIS.errorcode = 0
RETURN THIS.CreateFromHandle(m.img)
ELSE
RETURN .F.
ENDIF

PROCEDURE CreateFromHBITMAP(hBitmap)
LOCAL img
img=0
THIS.errorcode = GdipCreateBitmapFromHBITMAP(;
m.hBitmap, 0, @m.img)
IF THIS.errorcode = 0
RETURN THIS.CreateFromHandle(m.img)
ELSE
RETURN .F.
ENDIF

PROCEDURE CreateFromHICON(hIcon)
LOCAL img
img=0
THIS.errorcode = GdipCreateBitmapFromHICON(;
m.hIcon, @m.img)
IF THIS.errorcode = 0
RETURN THIS.CreateFromHandle(m.img)
ELSE
RETURN .F.
ENDIF

PROCEDURE CreateFromBITMAPINFO(hBitmapinfo, hBitmapdata)
#DEFINE BITMAPINFOHEADER_SIZE 40
IF VARTYPE(hBitmapdata) <> "N" OR hBitmapdata=0
* simplified: null color table is assumed
hBitmapdata = hBitmapinfo +;
BITMAPINFOHEADER_SIZE
ENDIF
LOCAL img
img=0
THIS.errorcode = GdipCreateBitmapFromGdiDib(hBitmapinfo,;
hBitmapdata, @img)
IF THIS.errorcode = 0
RETURN THIS.CreateFromHandle(m.img)
ELSE
RETURN .F.
ENDIF

ENDDEFINE

********************************************************************
DEFINE CLASS gdifontcollection As gdiplusbase
* collection of fonts installed on the system
fontfamilies=0

PROCEDURE Init
THIS.GetFontFamilies

PROCEDURE GetFontFamily(vFamilyName)
LOCAL oFamily, ex as Exception
TRY
oFamily = THIS.fontfamilies.Item(vFamilyName)
CATCH TO ex
IF VARTYPE(vFamilyName)="C"
oFamily = THIS.GetFamilyByName(vFamilyName)
ELSE
oFamily = CREATEOBJECT("gdifontfamily")
ENDIF
ENDTRY
RETURN m.oFamily

PROTECTED PROCEDURE GetFamilyByName(cFamilyName)
cFamilyName = LOWER(ALLTRIM(m.cFamilyName))
LOCAL oFamily As gdifontfamily
FOR EACH oFamily IN THIS.fontfamilies
IF LOWER(oFamily.familyname) = m.cFamilyName
RETURN oFamily
ENDIF
NEXT
oFamily = CREATEOBJECT("gdifontfamily")
RETURN m.oFamily

PROTECTED PROCEDURE GetFontFamilies
THIS.fontfamilies = CREATEOBJECT("Collection")

LOCAL fonts, familycount, cBuffer, hfontfamily, nIndex
STORE 0 TO fonts, familycount
= GdipNewInstalledFontCollection(@fonts)
= GdipGetFontCollectionFamilyCount(fonts, @familycount)

cBuffer = REPLICATE(CHR(0), m.familycount*4)
= GdipGetFontCollectionFamilyList(fonts, familycount,;
@cBuffer, @familycount)
FOR nIndex=0 TO familycount-1
LOCAL oFontFamily
hfontfamily = buf2dword(SUBSTR(cBuffer,;
nIndex*4+1,4))
oFontFamily = CREATEOBJECT("gdifontfamily", m.hfontfamily)
THIS.fontfamilies.Add(oFontFamily, oFontFamily.familyname)
NEXT
ENDDEFINE

********************************************************************
DEFINE CLASS gdifontfamily As gdiplusbase
hfontfamily=0
familyname=""
hasregular=.F.
hasbold=.F.
hasitalic=.F.
hasbolditalic=.F.
hasunderline=.F.
hasstrikeout=.F.

PROCEDURE Init(hfontfamily)
IF VARTYPE(m.hfontfamily)="N"
THIS.hfontfamily = m.hfontfamily
THIS.GetFamilyData
ENDIF

PROTECTED PROCEDURE GetFamilyData
#DEFINE LF_FACESIZE 32
LOCAL familyname, langid
langid = VAL(SYS(3004))
familyname = REPLICATE(CHR(0), (LF_FACESIZE+1)*2) && widechar
= GdipGetFamilyName(THIS.hfontfamily, @m.familyname, m.langid)
THIS.familyname = STRCONV(m.familyname,6)
THIS.hasregular=THIS.IsStyleAvailable(0)
THIS.hasbold=THIS.IsStyleAvailable(1)
THIS.hasitalic=THIS.IsStyleAvailable(2)
THIS.hasbolditalic=THIS.IsStyleAvailable(3)
THIS.hasunderline=THIS.IsStyleAvailable(4)
THIS.hasstrikeout=THIS.IsStyleAvailable(8)

PROTECTED FUNCTION IsStyleAvailable(nStyle)
LOCAL nAvailable
nAvailable=0
= GdipIsStyleAvailable(THIS.hfontfamily, nStyle, @nAvailable)
RETURN (nAvailable<>0)
ENDDEFINE

********************************************************************
DEFINE CLASS gdifont As gdiplusbase
PROTECTED fontfamilycreated
hfontfamily=0
fnt=0
brush=0

PROCEDURE Init(vFamily, fntsize, fntstyle, argbcolor)
DO CASE
CASE PCOUNT()=0
THIS.InitFont("Arial", 10, 0, ARGB(0,0,0))
CASE PCOUNT()=1
THIS.InitFont(vFamily, 10, 0, ARGB(0,0,0))
CASE PCOUNT()=2
THIS.InitFont(vFamily, fntsize, 0, ARGB(0,0,0))
CASE PCOUNT()=3
THIS.InitFont(vFamily, fntsize, fntstyle, ARGB(0,0,0))
CASE PCOUNT()=4
THIS.InitFont(vFamily, fntsize, fntstyle, argbcolor)
ENDCASE

PROTECTED PROCEDURE InitFont(vFamily, fntsize, fntstyle, argbcolor)
THIS.ClearFont

DO CASE
CASE VARTYPE(m.vFamily)="O"
THIS.hfontfamily = vFamily.hfontfamily
CASE VARTYPE(m.vFamily)="N"
THIS.hfontfamily = m.vFamily
CASE VARTYPE(m.vFamily)="C"
LOCAL hfontfamily
hfontfamily=0
Fri, 28 Sep 2018 12:11:02 GMT

Re: WIN32 API
Allo Mike

pour tester quelques exemples de Gdiplus, il manque gdiplus.prg

ou peut on se procurer ce fichier ?

a+ Eddy


Après mûre réflexion, Mike Gagnon a écrit :
> Pour ceux que cela intéresse, tous les API qui étaient sur le site
> New2News.com (incluant ceux qui étaient les membres seulement) sont
> maintenant domaine publique. https://github.com/VFPX/Win32API

--
a+ Eddy
L'incompréhensible se réalise toujour avant le compréhensible parce que
tout simplement on ne l'a pas encore assimilé
Thu, 27 Sep 2018 12:11:02 GMT

Re: update
Merci eddy



Thu, 27 Sep 2018 12:11:02 GMT

Re: update
Merci eddy



Thu, 27 Sep 2018 12:11:02 GMT

Re: update
Merci eddy
je vais fouiller sur ce que vous m avez ecrit


Thu, 27 Sep 2018 12:11:02 GMT

Re: update
buffermodeoverride je la trouve pas il ya uniquement buffermode au choix de sans pessimiste ou optimiste
Merci


Thu, 27 Sep 2018 12:11:02 GMT

Re: update
Bonjour
Pouvez vous me citer quelles sont les commandes fvp6 ou 9 qui empecheraient la modification d une table
Merci


Thu, 27 Sep 2018 12:11:02 GMT

Re: update
Merci pour votre aide
jaimefoxpro


Thu, 27 Sep 2018 12:11:02 GMT

Re: update
je t'encourage à parcourir les exemples fournies avec l'environnement
de vifual foxpro.

aussi avec les assistants(wizards) de visual foxpro tu y trouveras du
code bien structuré et puissant.

Comment

créer un projet test Projet1 avec l'assistan
créer une database avec l'assistant de vfp
créer des tables avec l'assistant de vfp
créer un formulaire avec l'assistant de vfp

et ainsi de suite....

bonne chance


une réponse pour jaimefoxpro

Allo,
> bonjour
> Il aya buffermode qui donne le choix sur optimiste pessimiste et sans j
> ai pas trouve buffermodeoveride merci

--
a+ Eddy
Merci de partager avec moi votre immense savoir que je me ferai plaisir
d'absorber... il va de soi que je vais vous en laisser un peu
Politesse et savoir vivre oblige ;0)
Sun, 23 Sep 2018 12:11:02 GMT

Re: update
bonjour
Il aya buffermode qui donne le choix sur optimiste pessimiste et sans j ai pas trouve buffermodeoveride
merci


Sun, 23 Sep 2018 12:11:02 GMT

Re: update

C'est une propriété d'un curseur dans un data environnement.

par défaut =1 pour l'utilisation des parametres du formulaire.

les modes intéressants sont 3 et 5 pour un environnement optimiste.

dans une facture il y a généralement 2 alias(tables, vues ou curseurs)

L'Entête de la facture qui devrait etre 3 pour la mise en mémoire tampon des lignes optimiste

dans ce cas seul l'enregistrements sur lequel tu travailles est en tampon. Donc tant que tu ne change pas d'enregistrement, personne sur le réseau ne voit les modifications

Les items de la facture qui devrait etre à 5 pour mise en mémoire tampon optimiste de la table. Ce qui fait que tu peux travailler sur plusieurs records et valider par un tableUpdate(.t.). Ce qui a pour conséquence de traiter plusieurs enregistrements


Leurs pendants pessimiste est intéressant. Voir dans l'aide les modes 2 et 4

bonne journeé

--
a+ Eddy
Merci de partager avec moi votre immense savoir que je me ferai plaisir
d'absorber... il va de soi que je vais vous en laisser un peu
Politesse et savoir vivre oblige ;0)



Sun, 23 Sep 2018 12:11:02 GMT

Re: aide en francais vfp6 ou 9
Bonjour,

Les Contributions AtoutFox contiennent des utilitaires, des exemples déjà pour commencer :

http://www.vfp.fr/atoutfox.asp

mais il faudrait éplucher du coté de la doc en anglais de vfp9 ou vp6 très abondante
sur le le web

bon courage


Wed, 19 Sep 2018 12:11:02 GMT

aide en francais vfp6 ou 9
Bonjour
J ai besoin d'un help vfp6 ou vfp9 qui contient une diversité d'exemples pratiques pour debutant voulant se perfectionner
Merci


Wed, 19 Sep 2018 12:11:02 GMT

Re: update
bonjour,
dans l'environnement de données du formulaire, pour la table écrite,
quelle est la valeur de la propriété buffermodeoverride ?
je mettrais 5

Le 18/09/2018 à 11:33, jaimefoxpro a écrit :
> j essaye de modifier une table produit depuis une autre table comprod en utilsant une requete sql (select) puis update ...set le resultat est que le premier enregistrement est modifie les autres non que dois-je faire. Sachant que cela se produit uniquement quand j'introduis ce petit prg dans une form representant un programme de reception de donnees.
>
> Merci
> si quelqu'un peut m'aider par viber voici mon num 00213771288027
> Note j utilise VFP6 et vfp9
>
>

Tue, 18 Sep 2018 12:11:02 GMT

Re: update
Il va être très difficile de répondre par téléphone. Mais peux-tu nous donner,
ici, la structure des 2 tables (liste des champs, indexs) ainsi que les requêtes
que tu fais actuellement et qui ne fonctionnent pas ?

A+
Jean à Grenoble
Tue, 18 Sep 2018 12:11:02 GMT

programme de production
Bonjour
Je cherche une le programme de production prg qui en choisissant un element de la table produit j'aurais une fenetre qui affiche les autres elements toujours de la meme table produit et en les cochant on aurait choisi les elements composants de ce produit. et surtout les quantités des composants se deduisent automatiquement une fois le produit pere est receptionné.

Merci
si quelqu'un peut m'aider avec viber 00213771288027


Tue, 18 Sep 2018 12:11:02 GMT

update
j essaye de modifier une table produit depuis une autre table comprod en utilsant une requete sql (select) puis update ...set le resultat est que le premier enregistrement est modifie les autres non que dois-je faire. Sachant que cela se produit uniquement quand j'introduis ce petit prg dans une form representant un programme de reception de donnees.

Merci
si quelqu'un peut m'aider par viber voici mon num 00213771288027
Note j utilise VFP6 et vfp9


Tue, 18 Sep 2018 12:11:02 GMT

Re: espion du d=c3=a9boqueur
Bonjour Franck et merci
Je continue mes investigations


Sat, 15 Sep 2018 12:11:02 GMT

Re: espion du d=c3=a9boqueur
Bonjour,
le rouge veut dire que la valeur de cette donnée a changée lors de
l'exécution du pas suivi avec le débogueur.


Le 14/09/2018 à 14:12, JM ANDR? a écrit :
> J'affiche la valeur d'un champ (monfichier.nom par exemple) dans l'espion du débogueur. Je pense que les memos sont corrompus. Que signifie la couleur rouge pour cette valeur dans le débogueur ?
> Merci d'avance
>
>

Fri, 14 Sep 2018 12:11:02 GMT

espion du déboqueur
J'affiche la valeur d'un champ (monfichier.nom par exemple) dans l'espion du débogueur. Je pense que les memos sont corrompus. Que signifie la couleur rouge pour cette valeur dans le débogueur ?
Merci d'avance


Fri, 14 Sep 2018 12:11:02 GMT

Re: http://www.universalthread.com/
Bonjour Hamidou,
Bonne remarque, je vais mettre les liens à jour
Cordialement
Francis

Le mer. 12 septembre 2018, 10h42 Hamidou a écrit :
> Bonjour Francis
>
> Il y a 2 liens sur atoutfox.org qui ont changés
> et qui renvoient nul part, soit qu il ont changés de lien ou de propriétaires et qui peuvent intéresser les foxiens:
> à savoir:
> VFPX (projets open-sources° qui a migré vers
>
> https://github.com/VFPX
>
> et universalthread (archives des aricles et utilitaires vfp) vers
>
> https://www.levelextreme.com/
>
> y a t-il quelqu'un qui pourrait rétablire les bons liens
>
> merci Francis
>
> crdlt
>
>
> .
>



Wed, 12 Sep 2018 12:11:02 GMT

Re: Mes News
Francis Faure vient de nous annoncer :
> hello bis
> a moins que tu cherche le serveur de news :
> news://news.atoutfox.org/atoutfox.public.association Cordialement
> Francis

Merci Francis
c'était ce dernier que j'avais besoin J'utilise Mes News exclusivement
bien plus lisible que via le site.
A+
Guy Bonemme

--
Guy Bonemme
BeFox

---
Cet email a fait l'objet d'une analyse antivirus par AVG.
http://www.avg.com

Wed, 12 Sep 2018 12:11:02 GMT

Re: http://www.universalthread.com/
Bonjour Francis

Il y a 2 liens sur atoutfox.org qui ont changés
et qui renvoient nul part, soit qu il ont changés de lien ou de propriétaires et qui peuvent intéresser les foxiens:
à savoir:
VFPX (projets open-sources° qui a migré vers

https://github.com/VFPX

et universalthread (archives des aricles et utilitaires vfp) vers

https://www.levelextreme.com/

y a t-il quelqu'un qui pourrait rétablire les bons liens

merci Francis

crdlt


Wed, 12 Sep 2018 12:11:02 GMT

Re: Mes News
Bonjour Francis

Il y a 2 liens sur atoutfox.org qui ont changés
et qui renvoient nul part, soit qu il ont changés de lien ou de propriétaires et qui peuvent intéresser les foxiens:
à savoir:
VFPX (projets open-sources° qui a migré vers

https://github.com/VFPX

et universalthread (archives des aricles et utilitaires vfp) vers

https://www.levelextreme.com/

y a t-il quelqu'un pour pourrait retablire les bons liens

merci Francis

crdlt





Wed, 12 Sep 2018 12:11:02 GMT

Re: Mes News
hello bis
a moins que tu cherche le serveur de news : news://news.atoutfox.org/atoutfox.public.association
Cordialement
Francis


Tue, 11 Sep 2018 12:11:02 GMT

Re: Mes News
Guy
Pourtant ça marche
puisque tu as posté ce message
Cordialement
Francis


Tue, 11 Sep 2018 12:11:02 GMT

Mes News
Bonjour à tous,

Suite à une réinstallation, j'essaye de me connecter au serveur
avec http://www.atoutfox.org ou
avec http://www.atoutfox.org/nntp.asp

Réponse impossible de trouver le serveur?

Merci de me raffraichir les données
Guy Bonemme


Tue, 11 Sep 2018 12:11:02 GMT

Re: Mes News
news.atoutfox.org

bonne soirée

Guy Bonemme a utilisé son clavier pour écrire :
> Bonjour à tous,

> Suite à une réinstallation, j'essaye de me connecter au serveur
> avec http://www.atoutfox.org ou
> avec http://www.atoutfox.org/nntp.asp

> Réponse impossible de trouver le serveur?

> Merci de me raffraichir les données
> Guy Bonemme

--
a+ Eddy
Merci de partager avec moi votre immense savoir que je me ferai plaisir
d'absorber... il va de soi que je vais vous en laisser un peu
Politesse et savoir vivre oblige ;0)
Tue, 11 Sep 2018 12:11:02 GMT

Re: VFP to SQL
Bonjour

Ce téléchargement est à compléter par la lecture et la compréhension du Document en pdf :
http://catalogue.pearsoned.co.uk/samplechapter/0672326493.pdf
et en fin du document il y a l explication de l utilisation de Cursors (via les tables SQL)
qui faciliter les liens des champs avec les contrôlés dans les formulaire.

cordialement


Mon, 10 Sep 2018 12:11:02 GMT

Re: http://www.universalthread.com/
C'est devenu https://www.levelextreme.com/


Wed, 05 Sep 2018 12:11:02 GMT

Re: http://www.universalthread.com/
Bonjour
je trouve ceci
https://support.west-wind.com/Thread4YI0WXEJP.wwt
Franck


Le 05/09/2018 à 03:03, eddymaue a écrit :
> allo,
>
> savez-vous ce qui se passe .... page blanche pas de redirection
>
> est-ce que le site est mort ?
>
> a+ eddy
>

Wed, 05 Sep 2018 12:11:02 GMT

http://www.universalthread.com/
allo,

savez-vous ce qui se passe .... page blanche pas de redirection

est-ce que le site est mort ?

a+ eddy

--
a+ Eddy
Merci de partager avec moi votre immense savoir que je me ferai plaisir
d'absorber... il va de soi que je vais vous en laisser un peu
Politesse et savoir vivre oblige ;0)
Tue, 04 Sep 2018 12:11:02 GMT

Re: petit souci
[vfp]
*voilà j'avais oublié ce truc

Wait Window EmInputBox("Exemple : MaVariable = 5","Local as
string",'ll')

*
/¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
EmInputBox
* / Eddy Maue a+ -- Créer le : 2018-09-03
Procedure EmInputBox
Lparameters tcTitre,tcCaption, tcDefaultValue

Private gcRetVal
m.gcRetVal = ""

Local loFrm As Form
loFrm = Createobject("clssEMInputBox",tcTitre,tcCaption,
tcDefaultValue)
loFrm.Show(1)

Return gcRetVal
Endproc && EmInputBox





*If Not Empty(lo.cRetValue)


**************************************************
*-- Auteur : Eddy Maue
*-- Form: form1 (c:\vfp\dev\test_EmInputBox.scx)
*-- ParentClass: form
*-- BaseClass: form
*-- Time Stamp: 09/02/18 06:36:02 PM
*

Define Class clssEMInputBox As Form

AutoCenter= .T.
WindowType= 1 && modal
Top = -1
Left = 0
Height = 108
Width = 289
DoCreate = .T.
Caption = "EmInputBox : cDialogCaption"
cTitre = ""
cCaption = ""
cRetvalue = ""
Name = "Form1"

*
--------------------------------------------------------------------------------
Add Object lblPromptInput As Label With ;
AutoSize = .T., ;
Caption = "cInputPrompt ", ;
Height = 17, ;
Left = 5, ;
Top = 12, ;
Width = 78, ;
Name = "lblPromptInput "

*
--------------------------------------------------------------------------------
Add Object btnAccept As CommandButton With ;
Top = 72, ;
Left = 107, ;
Height = 27, ;
Width = 84, ;
Anchor = 12, ;
Caption = "Accepter", ;
Default = .T., ;
Name = "btnAccept"


*
--------------------------------------------------------------------------------
Add Object btnAnnuler As CommandButton With ;
Top = 72, ;
Left = 197, ;
Height = 27, ;
Width = 84, ;
Anchor = 12, ;
Cancel = .T., ;
Caption = "Annuler", ;
Name = "btnAnnuler"


*
--------------------------------------------------------------------------------
Add Object edit1 As EditBox With ;
Anchor = 15, ;
Height = 24, ;
Left = 5, ;
ScrollBars = 0, ;
Top = 36, ;
Width = 276, ;
Name = "Edit1"

*
--------------------------------------------------------------------------------
*
--------------------------------------------------------------------------------
Procedure ccaption_assign
Lparameters tcCaption

Store m.tcCaption To This.cCaption, This.Caption
Endproc


*
--------------------------------------------------------------------------------
*
--------------------------------------------------------------------------------
Procedure ctitre_assign
Lparameters tcTitre
This.cTitre = tcTitre
This.label1.Caption = tcTitre
Endproc


*
--------------------------------------------------------------------------------
*
--------------------------------------------------------------------------------
Procedure mAccept
Thisform.cRetvalue = Thisform.edit1.Text
Thisform.Release()
Endproc

Procedure Release
m.gcRetVal = This.cRetvalue
Endproc

Procedure Unload
Endproc


*
--------------------------------------------------------------------------------
*
--------------------------------------------------------------------------------
*
--------------------------------------------------------------------------------
Procedure Init
Lparameters tcTitre,tcCaption, tcDefaultValue

Local lsDefault As String
lsDefault = Transform(m.tcDefaultValue)

If Vartype(m.tcCaption)=="C" And Not Empty(m.tcCaption)
This.Caption = m.tcCaption
Endif

If Vartype(m.tcTitre)=="C" And Not Empty(m.tcTitre)
This.lblPromptInput.Caption = m.tcTitre
Endif

If Vartype(m.lsDefault)=="C" And Not Empty(m.lsDefault)
This.edit1.Value = Transform(m.lsDefault)
EndIf

this.edit1.setfocus()
this.edit1.selstart = 3000
Endproc


Procedure mAnnuler()

Thisform.Release()

Endproc


Procedure btnAccept.Click
Thisform.mAccept()
Endproc


Procedure btnAnnuler.Click()
Thisform.cRetvalue = ""
Thisform.Release()
Endproc

Procedure QueryUnload()
Thisform.cRetvalue = ""
Thisform.Release
Endproc



Enddefine
*
*-- EndDefine: form1
**************************************************
[vfp/]

--
a+ Eddy
Merci de partager avec moi votre immense savoir que je me ferai plaisir
d'absorber... il va de soi que je vais vous en laisser un peu
Politesse et savoir vivre oblige ;0)
Mon, 03 Sep 2018 12:11:02 GMT

Re: petit souci
Salut Eddy,
C'est normal, puisqu'elle est releasée.
Tu peux mettre ta variable en privée ou locale, et laisser ton
formulaire en modal. Remplace simplement les 3 thisform.release, par
thisform.hide(). Le code va alors continuer lors du clic sur les boutons
et ta variable lo sera remplie. Il faut quand même la tester pour le cas
d'appui sur la croix de fermeture, dans ce cas, il me semble qu'elle
vaut null.
Cdlt,
JC



Le 03/09/2018 à 02:13, eddymaue a écrit :
> bonsoir
>
> Public lo
>
> lo = Createobject("EMImputBox","Exemple : MaVariable = 5","Local as
> string",6)
> lo.show()
>
> Set Step On
> lcRetValue = lo.cRetValue
>
> la varible lo n'existe plus au retour du formulaire modal pourtant elle
> est publique
>
> une idée
>
> a+ eddy
>
>
> voilà le code
>
> Public lo
>
> lo = Createobject("EMImputBox","Exemple : MaVariable = 5","Local as
> string",6)
> lo.show()
>
> Set Step On
> lcRetValue = lo.cRetValue
>
>
> *If Not Empty(lo.cRetValue)
>
>
> **************************************************
> *-- Auteur     :  Eddy Maue
> *-- Form:         form1 (c:\vfp\dev\test_emimputbox.scx)
> *-- ParentClass:  form
> *-- BaseClass:    form
> *-- Time Stamp:   09/02/18 06:36:02 PM
> *
>
> Define Class EMImputBox As Form
>
>    AutoCenter= .T.
>    WindowType= 1 && modal
>    Top = -1
>    Left = 0
>    Height = 108
>    Width = 289
>    DoCreate = .T.
>    Caption = "EmImputBox : cDialogCaption"
>    *-- XML Metadata for customizable properties
>    * _memberdata = [> type="property" favorites="True"/>> display="cTitre"/>> display="cCaption"/>> display="cCaption_Assign"/>> display="cTitre_Assign"/>> display="cRetValue"/>> display="mAnnuler"/>> display="mAccept"/>]
>    cTitre = ""
>    cCaption = ""
>    cRetvalue = ""
>    Name = "Form1"
>
>
>    Add Object lblPromptInput As Label With ;
>        AutoSize = .T., ;
>        Caption = "cInputPrompt ", ;
>        Height = 17, ;
>        Left = 5, ;
>        Top = 12, ;
>        Width = 78, ;
>        Name = "lblPromptInput "
>
>
>    Add Object btnAccept As CommandButton With ;
>        Top = 72, ;
>        Left = 107, ;
>        Height = 27, ;
>        Width = 84, ;
>        Anchor = 12, ;
>        Caption = "Accepter", ;
>        Default = .T., ;
>        Name = "btnAccept"
>
>
>    Add Object btnAnnuler As CommandButton With ;
>        Top = 72, ;
>        Left = 197, ;
>        Height = 27, ;
>        Width = 84, ;
>        Anchor = 12, ;
>        Cancel = .T., ;
>        Caption = "Annuler", ;
>        Name = "btnAnnuler"
>
>
>    Add Object edit1 As EditBox With ;
>        Anchor = 15, ;
>        Height = 24, ;
>        Left = 5, ;
>        ScrollBars = 0, ;
>        Top = 36, ;
>        Width = 276, ;
>        Name = "Edit1"
>
>
>    Procedure ccaption_assign
>        Lparameters tcCaption
>
>        Store m.tcCaption To This.cCaption, This.Caption
>    Endproc
>
>
>    Procedure ctitre_assign
>        Lparameters tcTitre
>        This.cTitre = tcTitre
>        This.label1.Caption = tcTitre
>    Endproc
>
>
>    Procedure mAccept
>        Thisform.cRetvalue = Thisform.edit1.Text
>        Thisform.Release()
>    Endproc
>
>
>    Procedure Unload
>        Return This.cRetvalue
>    Endproc
>
>
>    Procedure Init
>        Lparameters  tcTitre,tcCaption, tcDefaultValue
>
>        Local lsDefault As string
>        lsDefault = Transform(m.tcDefaultValue)
>
>        If Vartype(m.tcCaption)=="C" And Not Empty(m.tcCaption)
>            This.Caption = m.tcCaption
>        Endif
>
>        If Vartype(m.tcTitre)=="C" And Not Empty(m.tcTitre)
>            This.lblPromptInput.Caption = m.tcTitre
>        Endif
>
>        If Vartype(m.lsDefault)=="C" And Not Empty(m.lsDefault)
>            This.edit1.Value = Transform(m.lsDefault)
>        Endif
>    Endproc
>
>
>    Procedure mAnnuler()
>
>        thisform.Release()
>
>    Endproc
>
>
>    Procedure btnAccept.Click
>        Thisform.mAccept()
>    Endproc
>
>
>    Procedure btnAnnuler.Click()
>        Thisform.cRetvalue = ""
>        Thisform.Release()
>    Endproc
>
>
> Enddefine
> *
> *-- EndDefine: form1
> **************************************************
>

Mon, 03 Sep 2018 12:11:02 GMT

Re: petit souci
ok j'essaie cela

merci Jean-Claude

a+ Eddy

Jean-Claude Rivière a pensé très fort :
> Salut Eddy,
> C'est normal, puisqu'elle est releasée.
> Tu peux mettre ta variable en privée ou locale, et laisser ton formulaire en
> modal. Remplace simplement les 3 thisform.release, par thisform.hide(). Le
> code va alors continuer lors du clic sur les boutons et ta variable lo sera
> remplie. Il faut quand même la tester pour le cas d'appui sur la croix de
> fermeture, dans ce cas, il me semble qu'elle vaut null.
> Cdlt,
> JC

> Le 03/09/2018 à 02:13, eddymaue a écrit :
>> bonsoir
>>
>> Public lo
>>
>> lo = Createobject("EMImputBox","Exemple : MaVariable = 5","Local as
>> string",6)
>> lo.show()
>>
>> Set Step On
>> lcRetValue = lo.cRetValue
>>
>> la varible lo n'existe plus au retour du formulaire modal pourtant elle est
>> publique
>>
>> une idée
>>
>> a+ eddy
>>
>> voilà le code
>>
>> Public lo
>>
>> lo = Createobject("EMImputBox","Exemple : MaVariable = 5","Local as
>> string",6)
>> lo.show()
>>
>> Set Step On
>> lcRetValue = lo.cRetValue
>>
>> *If Not Empty(lo.cRetValue)
>>
>> **************************************************
>> *-- Auteur     :  Eddy Maue
>> *-- Form:         form1 (c:\vfp\dev\test_emimputbox.scx)
>> *-- ParentClass:  form
>> *-- BaseClass:    form
>> *-- Time Stamp:   09/02/18 06:36:02 PM
>> *
>>
>> Define Class EMImputBox As Form
>>
>>    AutoCenter= .T.
>>    WindowType= 1 && modal
>>    Top = -1
>>    Left = 0
>>    Height = 108
>>    Width = 289
>>    DoCreate = .T.
>>    Caption = "EmImputBox : cDialogCaption"
>>    *-- XML Metadata for customizable properties
>>    * _memberdata = [>> favorites="True"/>>> name="ccaption" display="cCaption"/>>> display="cCaption_Assign"/>>> display="cTitre_Assign"/>>> display="cRetValue"/>>> display="mAnnuler"/>>> display="mAccept"/>]
>>    cTitre = ""
>>    cCaption = ""
>>    cRetvalue = ""
>>    Name = "Form1"
>>
>>    Add Object lblPromptInput As Label With ;
>>        AutoSize = .T., ;
>>        Caption = "cInputPrompt ", ;
>>        Height = 17, ;
>>        Left = 5, ;
>>        Top = 12, ;
>>        Width = 78, ;
>>        Name = "lblPromptInput "
>>
>>    Add Object btnAccept As CommandButton With ;
>>        Top = 72, ;
>>        Left = 107, ;
>>        Height = 27, ;
>>        Width = 84, ;
>>        Anchor = 12, ;
>>        Caption = "Accepter", ;
>>        Default = .T., ;
>>        Name = "btnAccept"
>>
>>    Add Object btnAnnuler As CommandButton With ;
>>        Top = 72, ;
>>        Left = 197, ;
>>        Height = 27, ;
>>        Width = 84, ;
>>        Anchor = 12, ;
>>        Cancel = .T., ;
>>        Caption = "Annuler", ;
>>        Name = "btnAnnuler"
>>
>>    Add Object edit1 As EditBox With ;
>>        Anchor = 15, ;
>>        Height = 24, ;
>>        Left = 5, ;
>>        ScrollBars = 0, ;
>>        Top = 36, ;
>>        Width = 276, ;
>>        Name = "Edit1"
>>
>>    Procedure ccaption_assign
>>        Lparameters tcCaption
>>
>>        Store m.tcCaption To This.cCaption, This.Caption
>>    Endproc
>>
>>    Procedure ctitre_assign
>>        Lparameters tcTitre
>>        This.cTitre = tcTitre
>>        This.label1.Caption = tcTitre
>>    Endproc
>>
>>    Procedure mAccept
>>        Thisform.cRetvalue = Thisform.edit1.Text
>>        Thisform.Release()
>>    Endproc
>>
>>    Procedure Unload
>>        Return This.cRetvalue
>>    Endproc
>>
>>    Procedure Init
>>        Lparameters  tcTitre,tcCaption, tcDefaultValue
>>
>>        Local lsDefault As string
>>        lsDefault = Transform(m.tcDefaultValue)
>>
>>        If Vartype(m.tcCaption)=="C" And Not Empty(m.tcCaption)
>>            This.Caption = m.tcCaption
>>        Endif
>>
>>        If Vartype(m.tcTitre)=="C" And Not Empty(m.tcTitre)
>>            This.lblPromptInput.Caption = m.tcTitre
>>        Endif
>>
>>        If Vartype(m.lsDefault)=="C" And Not Empty(m.lsDefault)
>>            This.edit1.Value = Transform(m.lsDefault)
>>        Endif
>>    Endproc
>>
>>    Procedure mAnnuler()
>>
>>        thisform.Release()
>>
>>    Endproc
>>
>>    Procedure btnAccept.Click
>>        Thisform.mAccept()
>>    Endproc
>>
>>    Procedure btnAnnuler.Click()
>>        Thisform.cRetvalue = ""
>>        Thisform.Release()
>>    Endproc
>>
>> Enddefine
>> *
>> *-- EndDefine: form1
>> **************************************************
>>

--
a+ Eddy
Merci de partager avec moi votre immense savoir que je me ferai plaisir
d'absorber... il va de soi que je vais vous en laisser un peu
Politesse et savoir vivre oblige ;0)
Mon, 03 Sep 2018 12:11:02 GMT

petit souci
bonsoir

Public lo

lo = Createobject("EMImputBox","Exemple : MaVariable = 5","Local as
string",6)
lo.show()

Set Step On
lcRetValue = lo.cRetValue

la varible lo n'existe plus au retour du formulaire modal pourtant elle
est publique

une idée

a+ eddy


voilà le code

Public lo

lo = Createobject("EMImputBox","Exemple : MaVariable = 5","Local as
string",6)
lo.show()

Set Step On
lcRetValue = lo.cRetValue


*If Not Empty(lo.cRetValue)


**************************************************
*-- Auteur : Eddy Maue
*-- Form: form1 (c:\vfp\dev\test_emimputbox.scx)
*-- ParentClass: form
*-- BaseClass: form
*-- Time Stamp: 09/02/18 06:36:02 PM
*

Define Class EMImputBox As Form

AutoCenter= .T.
WindowType= 1 && modal
Top = -1
Left = 0
Height = 108
Width = 289
DoCreate = .T.
Caption = "EmImputBox : cDialogCaption"
*-- XML Metadata for customizable properties
* _memberdata = [type="property" favorites="True"/>display="cTitre"/>display="cCaption"/>display="cCaption_Assign"/>display="cTitre_Assign"/>display="cRetValue"/>display="mAnnuler"/>display="mAccept"/>]
cTitre = ""
cCaption = ""
cRetvalue = ""
Name = "Form1"


Add Object lblPromptInput As Label With ;
AutoSize = .T., ;
Caption = "cInputPrompt ", ;
Height = 17, ;
Left = 5, ;
Top = 12, ;
Width = 78, ;
Name = "lblPromptInput "


Add Object btnAccept As CommandButton With ;
Top = 72, ;
Left = 107, ;
Height = 27, ;
Width = 84, ;
Anchor = 12, ;
Caption = "Accepter", ;
Default = .T., ;
Name = "btnAccept"


Add Object btnAnnuler As CommandButton With ;
Top = 72, ;
Left = 197, ;
Height = 27, ;
Width = 84, ;
Anchor = 12, ;
Cancel = .T., ;
Caption = "Annuler", ;
Name = "btnAnnuler"


Add Object edit1 As EditBox With ;
Anchor = 15, ;
Height = 24, ;
Left = 5, ;
ScrollBars = 0, ;
Top = 36, ;
Width = 276, ;
Name = "Edit1"


Procedure ccaption_assign
Lparameters tcCaption

Store m.tcCaption To This.cCaption, This.Caption
Endproc


Procedure ctitre_assign
Lparameters tcTitre
This.cTitre = tcTitre
This.label1.Caption = tcTitre
Endproc


Procedure mAccept
Thisform.cRetvalue = Thisform.edit1.Text
Thisform.Release()
Endproc


Procedure Unload
Return This.cRetvalue
Endproc


Procedure Init
Lparameters tcTitre,tcCaption, tcDefaultValue

Local lsDefault As string
lsDefault = Transform(m.tcDefaultValue)

If Vartype(m.tcCaption)=="C" And Not Empty(m.tcCaption)
This.Caption = m.tcCaption
Endif

If Vartype(m.tcTitre)=="C" And Not Empty(m.tcTitre)
This.lblPromptInput.Caption = m.tcTitre
Endif

If Vartype(m.lsDefault)=="C" And Not Empty(m.lsDefault)
This.edit1.Value = Transform(m.lsDefault)
Endif
Endproc


Procedure mAnnuler()

thisform.Release()

Endproc


Procedure btnAccept.Click
Thisform.mAccept()
Endproc


Procedure btnAnnuler.Click()
Thisform.cRetvalue = ""
Thisform.Release()
Endproc


Enddefine
*
*-- EndDefine: form1
**************************************************

--
a+ Eddy
Merci de partager avec moi votre immense savoir que je me ferai plaisir
d'absorber... il va de soi que je vais vous en laisser un peu
Politesse et savoir vivre oblige ;0)
Sun, 02 Sep 2018 12:11:02 GMT

Reproduction totale ou partielle strictement interdite • Propulsé par KitWeb • Hébergement Wan AgainValid XHTML 1.0 Transitional