Un tuto de l'API
super !! , mais tu t'es embeté pour pas grand chose 
exemple fait toi a l'aide de Wordpad (ou Word !!) un text formaté comme
tu le veux !! avec un gros titre, du text en couleur ect...
ce traitement de text te servira pour ecrire tes fiches !!
mais cela devrai etre transparent pour l'utilisateur , comme tu l'a fait
(donc pas de requester , mais chargement en fonction du lien cliqué
)
mais au lieu d'inclure le format RTF dans le code comme ton exemple
tu le met dans un fichier *.RTF que tu as précedement "redactionné" avec ton traitement de text preferé !!
bref tu ecrit tranquillement tes fiches sous Word , sauvé au format RTF
ce qui est plus simple que de se tapper des balises imbitable
et ensuite tu charge la fiche comme ça !!
CHARGEUR DE RTF
ho ! miracle, les attributs couleurs ect.. sont toujours la !!

exemple fait toi a l'aide de Wordpad (ou Word !!) un text formaté comme
tu le veux !! avec un gros titre, du text en couleur ect...
ce traitement de text te servira pour ecrire tes fiches !!
mais cela devrai etre transparent pour l'utilisateur , comme tu l'a fait
(donc pas de requester , mais chargement en fonction du lien cliqué

mais au lieu d'inclure le format RTF dans le code comme ton exemple
tu le met dans un fichier *.RTF que tu as précedement "redactionné" avec ton traitement de text preferé !!
bref tu ecrit tranquillement tes fiches sous Word , sauvé au format RTF
ce qui est plus simple que de se tapper des balises imbitable

et ensuite tu charge la fiche comme ça !!

CHARGEUR DE RTF
; PureBasic Visual Designer v3.95 build 1485 (PB4Code)
;- Window Constants
;
; Chargeur de RTF
; Code Dobro
;- Gadget Constants
;
Enumeration
#Window_0
#Editor_0
#Button_0
EndEnumeration
Procedure Open_Window_0()
If OpenWindow ( #Window_0 , 268, 68, 502, 517, "New window ( 0 )" , #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList ( WindowID ( #Window_0 ))
EditorGadget ( #Editor_0 , 10, 20, 480, 450)
ButtonGadget ( #Button_0 , 30, 480, 90, 30, "charge RTF" )
EndIf
EndIf
EndProcedure
Open_Window_0()
Repeat ; Start of the event loop
Event = WaitWindowEvent () ; This line waits until an event is received from Windows
WindowID = EventWindow () ; The Window where the event is generated, can be used in the gadget procedures
GadgetID = EventGadget () ; Is it a gadget event?
EventType = EventType () ; The event type
If Event = #PB_Event_Gadget
If GadgetID = #Editor_0
ElseIf GadgetID = #Button_0
Fichier$ = OpenFileRequester ( "Choisissez un fichier RTF à charger" , "*.rtf" , "Fichiers Textes|*.rtf" ,0)
If OpenFile (0, Fichier$)
While Eof (0) = 0 ; Boucle tant que la fin du fichier n'est pas atteinte. (Eof = 'End Of File')
Texte$=Texte$+ ReadString (0) ; lit ligne par ligne le contenu du fichier
Wend
CloseFile (0)
SetGadgetText ( #Editor_0 , Texte$)
Texte$= ""
EndIf
EndIf
EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop
End
;
ho ! miracle, les attributs couleurs ect.. sont toujours la !!

Dernière modification par Backup le ven. 21/sept./2007 18:51, modifié 2 fois.
J'aime bien ta façon de faire Ollivier, ça jette!
Une autre manière de faire format fenêtré.
Un vieux code que je viens de passer en PB 4.02 qui permet de gérer depuis un ListView. une fois le dossier chargé on peut naviguer dans la liste avec les flêches haut et bas du clavier et afficher instantanément la fiche sélectionnée.
Modif : Charge du TXT et du RTF mais n'enregistre que du TXT.
Quelques arrangements et optimisations (noms des constantes ToolBar entre autres)
Une autre manière de faire format fenêtré.
Un vieux code que je viens de passer en PB 4.02 qui permet de gérer depuis un ListView. une fois le dossier chargé on peut naviguer dans la liste avec les flêches haut et bas du clavier et afficher instantanément la fiche sélectionnée.
Modif : Charge du TXT et du RTF mais n'enregistre que du TXT.
Quelques arrangements et optimisations (noms des constantes ToolBar entre autres)
Code : Tout sélectionner
;-constantes
Enumeration
#ApiWin
#ToolBar
#TB_New
#TB_Open
#TB_Save
#TB_Cut
#TB_Copy
#TB_Paste
#TB_Undo
#TB_Redo
#TB_Sel
#TB_Print
#TB_Delete
#TB_Recycle
#String_dossier
#List_View
#Text_String_APIname
#String_APIname
#editeur
#API_choisie
#Text_compte_fichiers
#Text_compte_lignes
EndEnumeration
#version = "beta 01 - 2007"
#WindowWidth = 795 ; adaptation au 800x600
#WindowHeight = 550
;-Fonts
Global Font0 , Font1
Font0 = LoadFont(0, "courier", 8,#PB_Font_HighQuality)
Font1 = LoadFont(1, "Verdana", 8,#PB_Font_Bold|#PB_Font_HighQuality)
;-variables
Global AppliDir$,RepAPI$,RepAPIsave$
AppliDir$ = GetCurrentDirectory()
If FileSize(AppliDir$+"DossierAPI") = -1
CreateDirectory(AppliDir$+"DossierAPI");Dossier a créer pour contenir ou recevoir les fiches créées
EndIf
RepAPIsave$ = AppliDir$+"DossierAPI\"
Procedure List_View_API(DossierAPI$) ;CHARGEMENT DES FICHES TROUVEES DANS LE DOSSIER
NbFiles = 0 ; initialisation du compte total
If ExamineDirectory(0, DossierAPI$, "*.*") ; on examine tout le dossier
Chemin$ = GetPathPart(DossierAPI$)
SetGadgetText(#String_dossier,Chemin$)
Repeat
FileType = NextDirectoryEntry(0)
If FileType
FileName$ = DirectoryEntryName(0)
If FileName$ <> "." And FileName$ <> ".."
Ext$ = GetExtensionPart(FileName$)
If Ext$ = "txt" Or Ext$ = "rtf" ; on recherche les deux types
AddGadgetItem(#List_View, -1, FileName$) ; qu'on ajoute au listviewgadget()
NbFiles = NbFiles + 1 ; à chaque élément trouvés on incrémente de 1 pour compter le tout
EndIf
EndIf
EndIf
Until FileType = 0
SetGadgetState(#List_View, -1)
ClearGadgetItemList(#editeur)
SetGadgetText(#String_APIname,"")
Else
MessageRequester("Erreur","Impossible d'examiner le répertoire: "+Chr(10)+ DossierAPI$,64)
EndIf
SetGadgetText(#Text_compte_fichiers,"Il y a "+ Str(CountGadgetItems(#List_View))+" fiches API dans ce dossier")
ProcedureReturn NbFiles
EndProcedure
Procedure LoadApiFolder()
If DefautRepAPI$ = ""
DefautRepAPI$ = "c:\"
EndIf
NewRepAPI$ = PathRequester("Sélectionner un dossier", DefautRepAPI$)
If NewRepAPI$
ClearGadgetItemList(#List_View)
ClearGadgetItemList(#editeur)
SetGadgetState(#List_View, -1)
SetGadgetText(#String_APIname,"")
List_View_API(NewRepAPI$)
DefautRepAPI$ = NewRepAPI$
EndIf
EndProcedure
Procedure selectionner_tout(editor)
range.CHARRANGE\cpMin = 0
range\cpMax = -1
ProcedureReturn SendMessage_(GadgetID(editor),#EM_EXSETSEL,0,@range)
EndProcedure
Procedure Enregistrer_Fiche() ; Format texte
ApiFile$ = GetGadgetText(#String_APIname)
If ApiFile$ = ""
MessageRequester("ERREUR","Il n'y a rien à enregistrer!"+Chr(13)+"Vous devez d'abord créer ou modifier la fiche pour la sauvegarder.",#MB_ICONEXCLAMATION)
Else
Fichier.s = SaveFileRequester("Enregistrer une fiche",RepAPIsave$+ApiFile$,"Fichier Texte |*.txt", 0); enregistrement dans le dossier par défaut avec nom de fiche en cours
If Fichier = ""
Else
If GetExtensionPart(Fichier) = ""
Fichier = Fichier + ".txt"
EndIf
api.s = GetFilePart(Fichier.s)
EnregistreFichier = #True
If FileSize(Fichier.s)>0
Reponse = MessageRequester("Cette fiche existe déjà !","Voulez vous remplacer la fiche : " + api +" ?" ,#MB_ICONEXCLAMATION |#PB_MessageRequester_YesNo )
If Reponse <> 6
EnregistreFichier = #False
EndIf
EndIf
EndIf
If EnregistreFichier
If CreateFile(0,Fichier.s)
Nombre_de_lignes = CountGadgetItems(#editeur)
For n = 0 To Nombre_de_lignes -1
TexteEditor.s = GetGadgetItemText(#editeur,n,0)
WriteStringN(0,TexteEditor)
Next
CloseFile(0)
EndIf
EndIf
EndIf
EndProcedure
Procedure MoveToRecycleBin(Fiche.s)
Protected lpFileOp.SHFILEOPSTRUCT
If FileSize(Fiche) <> - 1
*Mem = AllocateMemory(Len(Fiche) + 2)
If *Mem
lpFileOp\hwnd = 0
lpFileOp\pTo = 0
lpFileOp\wFunc = #FO_DELETE
lpFileOp\pFrom = *Mem
lpFileOp\fFlags = #FOF_ALLOWUNDO | #FOF_NOCONFIRMATION
CopyMemoryString(Fiche, @*Mem)
CopyMemoryString(Chr(0))
CopyMemoryString(Chr(0))
retour=SHFileOperation_(@lpFileOp)
If retour=0 : retour=1 : Else : retour =0 : EndIf
ProcedureReturn retour
FreeMemory(*Mem)
EndIf
EndIf
EndProcedure
Procedure Suppression(FichierSelect$, mode.l) ; une seule procedure pour 2 modes de suppression
If mode = 0
mode$ = "SI VOUS CLIQUEZ SUR OUI LE FICHIER SERA DEFINITIVEMENT SUPPRIME !"
ElseIf mode = 1
mode$ = "SI VOUS CLIQUEZ SUR OUI LE FICHIER SERA ENVOYE A LA CORBEILLE !"
EndIf
NumElement = GetGadgetState(#List_View)
Resultat = MessageRequester("AVERTISSEMENT","VOUS ETES SUR LE POINT DE SUPPRIMER UNE FICHE!"+Chr(13)+""+Chr(13)+"VOULEZ VOUS CONTINUER ?"+Chr(13)+""+Chr(13)+"SI VOUS N'ÊTES PAS SÛR CLIQUEZ SUR NON"+Chr(13)+""+Chr(13)+mode$,#MB_ICONEXCLAMATION | #PB_MessageRequester_YesNo)
If Resultat = 6
;on a cliqué sur oui
If mode = 0
If DeleteFile(FichierSelect$)<>0
If NumElement<>-1
RemoveGadgetItem(#List_View, NumElement)
EndIf
ClearGadgetItemList(#editeur)
SetGadgetText(#String_APIname, "")
SetGadgetState(#List_View, -1)
SetGadgetText(#Text_compte_lignes,"")
SetGadgetText(#Text_compte_fichiers,"Il y a "+ Str(CountGadgetItems(#List_View))+" fiches API dans ce dossier")
Else
MessageRequester("ERREUR","Le fichier n'a pu être effacé!",#MB_ICONERROR)
EndIf
ElseIf mode = 1
If MoveToRecycleBin(FichierSelect$)
If NumElement<>-1
RemoveGadgetItem(#List_View, NumElement)
EndIf
ClearGadgetItemList(#editeur)
SetGadgetText(#String_APIname, "")
SetGadgetState(#List_View, -1)
SetGadgetText(#Text_compte_lignes,"")
SetGadgetText(#Text_compte_fichiers,"Il y a "+ Str(CountGadgetItems(#List_View))+" fiches API dans ce dossier")
Else
MessageRequester("ERREUR","Le fichier n'a pu être effacé!",#MB_ICONERROR)
EndIf
EndIf
ElseIf Resultat = 7
;on a cliqué sur non, donc rien.
EndIf
EndProcedure
;-Fenêtre
ExamineDesktops() ; on se réfère au bureau pour centrer ou non la fenêtre en fonction de sa taille
Largeur$ = Str(DesktopWidth(0))
Hauteur$ = Str(DesktopHeight(0))
If Val(Largeur$)>800 And Val(Hauteur$)>600
FlagWin = #PB_Window_SystemMenu|#PB_Window_ScreenCentered | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget |#PB_Window_TitleBar|#PB_Window_MaximizeGadget
Else
FlagWin = #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget |#PB_Window_TitleBar|#PB_Window_MaximizeGadget
EndIf
If OpenWindow(#ApiWin,0,0, #WindowWidth, #WindowHeight," API PureViewer "+#version, FlagWin)And CreateGadgetList(WindowID(#ApiWin))
SetWindowColor(#ApiWin,RGB(173, 191, 193))
If CreateToolBar(#ToolBar, WindowID(#ApiWin))
ToolBarStandardButton(#TB_New, #PB_ToolBarIcon_New) :ToolBarToolTip(#ToolBar,#TB_New,"Créer une nouvelle fiche")
ToolBarStandardButton(#TB_Open, #PB_ToolBarIcon_Open):ToolBarToolTip(#ToolBar,#TB_Open,"Sélectionner et ouvrir un autre dossier")
ToolBarStandardButton(#TB_Save, #PB_ToolBarIcon_Save):ToolBarToolTip(#ToolBar,#TB_Save,"Enregistrer sous")
ToolBarSeparator()
ToolBarStandardButton(#TB_Cut,#PB_ToolBarIcon_Cut) :ToolBarToolTip(#ToolBar,#TB_Cut,"Couper")
ToolBarStandardButton(#TB_Copy,#PB_ToolBarIcon_Copy) :ToolBarToolTip(#ToolBar,#TB_Copy,"Copier")
ToolBarStandardButton(#TB_Paste,#PB_ToolBarIcon_Paste):ToolBarToolTip(#ToolBar,#TB_Paste,"Coller")
ToolBarSeparator()
ToolBarStandardButton(#TB_Undo,#PB_ToolBarIcon_Undo):ToolBarToolTip(#ToolBar,#TB_Undo,"Annuler")
ToolBarStandardButton(#TB_Redo,#PB_ToolBarIcon_Redo):ToolBarToolTip(#ToolBar,#TB_Redo,"Recommencer")
ToolBarStandardButton(#TB_Sel ,#PB_ToolBarIcon_Find):ToolBarToolTip(#ToolBar,#TB_Sel,"Sélectionner tout dans l'éditeur")
ToolBarSeparator()
ToolBarStandardButton(#TB_Print,#PB_ToolBarIcon_Print):ToolBarToolTip(#ToolBar,#TB_Print,"Imprimer la fiche en cours")
ToolBarSeparator()
ToolBarStandardButton(#TB_Recycle,#PB_ToolBarIcon_Replace):ToolBarToolTip(#ToolBar,#TB_Recycle,"Envoyer la fiche sélectionnée à la corbeille")
ToolBarStandardButton(#TB_Delete ,#PB_ToolBarIcon_Delete) :ToolBarToolTip(#ToolBar,#TB_Delete ,"Supprimer définitivement la fiche sélectionnée")
EndIf
StringGadget(#String_dossier,10,25,770,18,"",#PB_String_ReadOnly)
ListViewGadget(#List_View,0,47,200,483)
SetGadgetColor(#List_View,#PB_Gadget_FrontColor,RGB(32, 233, 221))
SetGadgetColor(#List_View,#PB_Gadget_BackColor,RGB(75, 96, 98))
TextGadget(#Text_compte_fichiers,0,530,200,20,"Il y a "+ Str(CountGadgetItems(#List_View))+" fiches API dans ce dossier",#PB_Text_Border)
SetGadgetColor(#Text_compte_fichiers,#PB_Gadget_BackColor,RGB(75, 96, 98))
SetGadgetColor(#Text_compte_fichiers,#PB_Gadget_FrontColor,RGB(208, 219, 220))
EditorGadget(#editeur,200,47,595,483)
SendMessage_(GadgetID(#editeur), #EM_SETTARGETDEVICE, #Null, 0);retour à la ligne automatique
; SetGadgetFont(#editeur, Font0)
SetGadgetColor(#editeur, #PB_Gadget_BackColor, RGB(245, 243, 199))
;SetGadgetColor(#editeur, #PB_Gadget_FrontColor, RGB(64, 101, 53))
TextGadget(#Text_String_APIname,205,532,40,15,"Fichier")
SetGadgetColor(#Text_String_APIname,#PB_Gadget_BackColor,RGB(173, 191, 193))
;SetGadgetColor(#Text_String_APIname,#PB_Gadget_FrontColor,RGB(208, 219, 220))
StringGadget(#String_APIname,245,532,300,16,"",#PB_String_ReadOnly|#PB_Text_Center)
SetGadgetFont(#String_APIname, Font1)
TextGadget(#Text_compte_lignes,545,530,250,20," Cette fiche est composée de "+ Str(CountGadgetItems(#editeur))+" lignes",#PB_Text_Border)
SetGadgetColor(#Text_compte_lignes,#PB_Gadget_BackColor,RGB(75, 96, 98))
SetGadgetColor(#Text_compte_lignes,#PB_Gadget_FrontColor,RGB(208, 219, 220))
EndIf
;-Chargement des fiches
Load.l = List_View_API(RepAPIsave$)
If Load = 0 ; si dossier par défaut est vide
LoadApiFolder() ; on relance un chargement de dossier au choix
EndIf
;-Programme
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
Select EventGadget()
Case #List_View
Select EventType()
Case #PB_EventType_LeftClick
ClearGadgetItemList(#editeur)
PosElement = GetGadgetState(#List_View)
NomFichier$ = GetGadgetText(#List_View)
RepAPI$ = GetGadgetText(#String_dossier)
FicheVue$ = RepAPI$ + NomFichier$
If PosElement >= 0
If OpenFile(#API_choisie, FicheVue$)
While Eof(#API_choisie) = 0 ; Boucle tant que la fin du fichier n'est pas atteinte. (Eof = 'End Of File')
Texte$=Texte$+ ReadString(#API_choisie) ; lit ligne par ligne le contenu du fichier
Wend
CloseFile(#API_choisie)
SetGadgetText( #editeur , Texte$) ;affichage dans l'éditeur
Texte$= "" ; variable remise à zéro
SetGadgetText(#Text_compte_lignes," Cette fiche est composée de "+ Str(CountGadgetItems(#editeur))+" lignes")
SetGadgetText(#String_APIname, NomFichier$)
Else
MessageRequester("ERREUR","Impossible d'ouvrir ce fichier, il est peut être défectueux.",16)
EndIf
EndIf
EndSelect
EndSelect
EndIf
;-Menus events
Select Event
Case #PB_Event_Menu
Select EventMenu()
Case #TB_New
ClearGadgetItemList(#editeur)
SetGadgetText(#String_APIname, "Nouvelle fiche")
SetGadgetState(#List_View, -1)
SetGadgetText(#Text_compte_lignes,"")
ApiName$ = InputRequester("Création de fiche", "Donnez un nom à cette fiche","")
If ApiName$
SetGadgetText(#String_APIname, ApiName$+".txt")
SetActiveGadget(#editeur)
EndIf
Case #TB_Open : LoadApiFolder()
Case #TB_Save : Enregistrer_Fiche()
Case #TB_Cut
Vide$ = ""
SendMessage_(GadgetID(#editeur),#EM_GETSEL,@StartSel,@EndSel)
Buffer$ = Space(EndSel-StartSel)
SendMessage_(GadgetID(#editeur),#EM_GETSELTEXT,0,@Buffer$)
ClearClipboard()
SetClipboardText(Buffer$)
SendMessage_(GadgetID(#editeur),#EM_REPLACESEL,#True,@Vide$)
SetGadgetText(#Text_compte_lignes," Cette fiche est composée de "+ Str(CountGadgetItems(#editeur))+" lignes")
Case #TB_Copy
SendMessage_(GadgetID(#editeur),#EM_GETSEL,@StartSel,@EndSel)
Buffer$ = Space(EndSel-StartSel)
SendMessage_(GadgetID(#editeur),#EM_GETSELTEXT,0,@Buffer$)
ClearClipboard()
SetClipboardText(Buffer$)
Case #TB_Paste
Buffer$ = GetClipboardText()
SendMessage_(GadgetID(#editeur),#EM_REPLACESEL,#True,@Buffer$)
SetGadgetText(#Text_compte_lignes," Cette fiche est composée de "+ Str(CountGadgetItems(#editeur))+" lignes")
Case #TB_Undo : SendMessage_(GadgetID(#editeur),#EM_UNDO,0,0)
SetGadgetText(#Text_compte_lignes," Cette fiche est composée de "+ Str(CountGadgetItems(#editeur))+" lignes")
Case #TB_Redo : SendMessage_(GadgetID(#editeur),#EM_REDO,0,0)
SetGadgetText(#Text_compte_lignes," Cette fiche est composée de "+ Str(CountGadgetItems(#editeur))+" lignes")
Case #TB_Sel : selectionner_tout(#editeur)
Case #TB_Print ; impression à faire, j'ai la flemme et pas le temps maintenant...
Case #TB_Recycle
If GetGadgetText(#String_APIname)=""
MessageRequester("ERREUR","Il n'y a pas de fichier sélectionné",#MB_ICONEXCLAMATION)
Else
Selection$ = GetGadgetText(#String_dossier)+GetGadgetText(#String_APIname)
Suppression(Selection$, 1) ; mode corbeille
EndIf
Case #TB_Delete
If GetGadgetText(#String_APIname)=""
MessageRequester("ERREUR","Il n'y a pas de fichier sélectionné",#MB_ICONEXCLAMATION)
Else
Selection$ = GetGadgetText(#String_dossier)+GetGadgetText(#String_APIname)
Suppression(Selection$, 0) ; mode suppression directe
EndIf
;-Fin
EndSelect
; Case #WM_SIZE
Case #PB_Event_CloseWindow :Quitter = 1
EndSelect
Until Quitter
End
Dernière modification par Jacobus le sam. 22/sept./2007 11:06, modifié 1 fois.
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
j'aime bien 
ce que je reproche au code par contre c'est les Case 0,1,2,3 pas tres parlant !!

pour ne pas que ce topic devienne trop long, je vous propose de rééditer au besoin vos code posté ....!!
de cette façon on va eviter une succession de code a la file !!
et pour chaque version proposé on saura ou la trouver
puisque chaque version remplace l'ancienne
(en attendant d'etre d'accord sur une version definitive , bien sur
)
autre chose l'un d'entre nous a mis "m'en fout" , qui c'est ??

ce que je reproche au code par contre c'est les Case 0,1,2,3 pas tres parlant !!


pour ne pas que ce topic devienne trop long, je vous propose de rééditer au besoin vos code posté ....!!
de cette façon on va eviter une succession de code a la file !!

et pour chaque version proposé on saura ou la trouver

puisque chaque version remplace l'ancienne

(en attendant d'etre d'accord sur une version definitive , bien sur

autre chose l'un d'entre nous a mis "m'en fout" , qui c'est ??
-
- Messages : 1202
- Inscription : sam. 31/déc./2005 23:52
j'avais pas compris que ton editeur etait "editable !!"

d'ailleurs , je ne suis pas sur qu'il ne faudrai pas une securité pour eviter de modifier une fiche existante !!
avec mon system , je pensai a un lecteur de fiche RTF ..
donc non modifiable puisqu'en lecture seule !!!
l'ecriture se faisant dans un traitement de text, mais c'est sur qu'apres
la présentation des differentes fiches ecrites par differentes personnes
risque d'avoir un aspect heu.... different
ps :
j'ai Réédité ton code a ta place
(le dernier que tu as posté)


d'ailleurs , je ne suis pas sur qu'il ne faudrai pas une securité pour eviter de modifier une fiche existante !!
avec mon system , je pensai a un lecteur de fiche RTF ..
donc non modifiable puisqu'en lecture seule !!!
l'ecriture se faisant dans un traitement de text, mais c'est sur qu'apres
la présentation des differentes fiches ecrites par differentes personnes
risque d'avoir un aspect heu.... different

ps :
j'ai Réédité ton code a ta place

(le dernier que tu as posté)
@Dobro
@Ollivier
Si on veut pas choisir entre les deux formes de codes, on peut peut-être les fondre en un seul. Avec le mode containers on pourrait avoir l'editeur et le lecteur...
En effet c'est nul, mais c'est un vieux code que j'ai ressorti et je ne m'étais pas cassé le tronc (juste un lecteur de code externe à l'ide pb pour soulager ce dernier) c'est donc à refaire en bonne et due formece que je reproche au code par contre c'est les Case 0,1,2,3 pas tres parlant !!

M'est avis que son pseudo commence par Bernard et fini par 13autre chose l'un d'entre nous a mis "m'en fout" , qui c'est ??

@Ollivier
Bonne idée, mettre des fiches en communs par exemple...On peut faire des liens (par exemple URL que je peux récupérer dans ma boucle d'événements) depuis l'EditorGadget?
Si on veut pas choisir entre les deux formes de codes, on peut peut-être les fondre en un seul. Avec le mode containers on pourrait avoir l'editeur et le lecteur...
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
@Jacobus.
Je n'arrive à rien avec ton code (que veux-tu, je suis trop nullos!!). Toi, par contre tu peux récupérer mon code très facilement. Il est super en présentation ton prog.
Il te suffit de:
1) copier/coller le tout en tête de ton code
2) observer les 3, 4 lignes que je vais commenter en évidence dans la procédure principale (DocApiFr() ) (dans 5, 10 minutes)
3) vérifier que les 4 noms de chaîne n'existent pas déjà dans ton code. Sinon, il faut renommer les unes ou les autres (Titre$, DLL$, Def$ et Syntax$)
4) Virer DocApiFr()
On verra plus tard pour remoduler (mettre en procédure) si nécessaire.
Je n'arrive à rien avec ton code (que veux-tu, je suis trop nullos!!). Toi, par contre tu peux récupérer mon code très facilement. Il est super en présentation ton prog.
Il te suffit de:
1) copier/coller le tout en tête de ton code
2) observer les 3, 4 lignes que je vais commenter en évidence dans la procédure principale (DocApiFr() ) (dans 5, 10 minutes)
3) vérifier que les 4 noms de chaîne n'existent pas déjà dans ton code. Sinon, il faut renommer les unes ou les autres (Titre$, DLL$, Def$ et Syntax$)
4) Virer DocApiFr()
On verra plus tard pour remoduler (mettre en procédure) si nécessaire.
Code : Tout sélectionner
UpDateLayeredWindow
USER32.DLL
Modifie l'apparence d'une fenêtre transparente.
WindowID.L;ID de la fenêtre qui subit la modification.;
Dst.L;Handle de l'image destinataire dans le cas d'une opération interne (à étudier). Sinon 0.;
*FenetreCoords;Pointe vers une structure POINT définissant les nouvelles coordonnées de la fenêtre. Si les coordonnées ne doivent pas être modifiées *FenetreCoords = 0;
*FenetreDims;Pointe vers une structure POINT définissant les nouvelles dimensions de la fenêtre. Si la taille de la fenêtre reste inchangée, *FenetreDims = 0;
Src.L;Handle de l'image. 0 dans le cas d'une modification autre que l'image de la fenêtre.;
*ImageCoords;Pointe vers une structure POINT définissant les coordonnées du point haut gauche de la zone à récupérer dans l'image.;
CouleurTransparence.L;Valeur de la couleur considérée comme transparente;
*Blend;Pointe vers une structure BLENDFUNCTION;
Mode.L;Mode d'exécution de la fonction;
[tag]layer;window;fenêtre;transparent;translucide;modif;change
[ex][/ex]
Dernière modification par Ollivier le dim. 23/sept./2007 11:05, modifié 4 fois.
@Olivier :Ollivier a écrit :Pardon, il n'y a pas de bug...
Code : Tout sélectionner
UpDateLayeredWindow USER32.DLL Modifie l'apparence d'une fenêtre transparente. WindowID.L;ID de la fenêtre qui subit la modification.; Dst.L;Handle de l'image destinataire dans le cas d'une opération interne (à étudier). Sinon 0.; *FenetreCoords;Pointe vers une structure POINT définissant les nouvelles coordonnées de la fenêtre. Si les coordonnées ne doivent pas être modifiées *FenetreCoords = 0; *FenetreDims;Pointe vers une structure POINT définissant les nouvelles dimensions de la fenêtre. Si la taille de la fenêtre reste inchangée, *FenetreDims = 0; Src.L;Handle de l'image. 0 dans le cas d'une modification autre que l'image de la fenêtre.; *ImageCoords;Pointe vers une structure POINT définissant les coordonnées du point haut gauche de la zone à récupérer dans l'image.; CouleurTransparence.L;Valeur de la couleur considérée comme transparente; *Blend;Pointe vers une structure BLENDFUNCTION; Mode.L;Mode d'exécution de la fonction; [tag]layer;window;fenêtre;transparent;translucide;modif;change [ex][/ex]
essaye pour la compréhension de tous d'etre plus exlicite

par exemple, tu poste ceci ce Quote ci dessus , mais tu ne dit pas a quoi ça sert ??

essayont d'etre le plus clair possible, quitte a paraitre lourds, il vaut mieux etre tres explicatif !

je ne me suis pas intéressé encore au system d'interface que vous proposez, parce que gérer un List_View n'est pas trop mon truc
(je n'en ai jamais eu besoin , donc je vous laisse cette partie du programme que vous semblez maitriser) , j'interviendrai éventuellement après ...
intégrez moi mon code de chargement de RTF
dans votre interface (on prends laquelle ?)
A faire :
il faut rajouter une routine d'exploration de dossier du nom de "Fiches"
(faut bien lui donner un nom

cette routine doit lire le contenu du dossier "Fiches" et charger dans le prg tout fichier RTF trouvé !!
ajouter dans la partie gauche du prg, le titre du RTF (son nom) trouvé
de façon a ce que lorsque l'on clique sur ce titre, cela affiche le contenu du fichier a Droite dans l'editeur

somme nous d'accord sur ce protocole ??


Ah ben va bien falloir être d'accord!
Sinon, je suis presque en permanence sur le forum, notamment en train de faire les test copier/coller. C'est pour ça que tu as atterri sur un ramassis bizarre!
Pour tester:
1) prends mon code,
2) copie la fiche (le ramassis bizarre)
3) dans l'exécution du code: menu fichier >> importer une fiche
Sinon, pour le choix de l'interface, Jacobus a assuré donc (et j'espère que ça le dérange pas!) on la prendra au final. Ou, à l'inverse, mon code étant modulaire, il est facilement intégrable dans son code.
Et puis «mon», «ton», «son»... ça fera «notre»
Sinon, je suis presque en permanence sur le forum, notamment en train de faire les test copier/coller. C'est pour ça que tu as atterri sur un ramassis bizarre!
Pour tester:
1) prends mon code,
2) copie la fiche (le ramassis bizarre)
3) dans l'exécution du code: menu fichier >> importer une fiche
Sinon, pour le choix de l'interface, Jacobus a assuré donc (et j'espère que ça le dérange pas!) on la prendra au final. Ou, à l'inverse, mon code étant modulaire, il est facilement intégrable dans son code.
Et puis «mon», «ton», «son»... ça fera «notre»
