petit probleme avec mon programme ....

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Encore un truc:

Si tu as déjà un fichier dans l'éditeur, et que tu veux recharger un autre fichier, il faut mettre dans la procedure de chargement:

Code : Tout sélectionner

ClearGadgetItemList(#Document) 
Sinon, le second fichier va s'afficher à la suite du premier, et si les fichiers sont gros, c'est un plantage à plus ou moins brève échéance.

Code : Tout sélectionner

Procedure charger_document() 
   text.s = OpenFileRequester( "chargement d'un fichier texte", "", "Fichier text|*.txt", 0) 
   If text <> "" 
      If OpenFile(0, text) 
         ClearGadgetItemList(#Document)
     bla bla bla
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Message par jbernard13 »

j'essaye de mettre un font requester afin de choisir une plice mais je sais juste afficher le font reuqester mais ensuite le choix ne marche pas
Jbernard13
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Et on continue :lol:

Avec ta procedure de chargement, est-ce que tu as essayé de charger un fichier texte de 2 ou 300 Ko ?

250 Ko chez moi, ça prend environ 10 secondes.

Soit, tu limites la taille des fichier que tu peux charger dans ton bloc-notes, (par ex. 100 Ko), ou alors il faut que tu passes par une procédure qui te charge le fichier en mémoire avant de l'afficher.

J'en ai une, c'est cadeau.

Code : Tout sélectionner

Procedure LireFichier(Gagdet.l, Fichier.s)
  Size = FileSize(Fichier)
  Longueur = Size : Decalage = 0
  L_Max = 63999
  
  If Size > 0
    If ReadFile(0,Fichier)
      *Buffer = AllocateMemory(Size)
      If *Buffer
        ReadData(*Buffer, Size)
      EndIf
      CloseFile(0)
    EndIf
    
    If Longueur > L_Max
      Repeat
        Chaine.s = PeekS(*Buffer + Decalage, L_Max)
        AddGadgetItem(gadget,-1,Chaine)
        Longueur = Longueur - L_Max : Decalage = Decalage + L_Max
      Until Longueur < L_Max
      Chaine = PeekS(*Buffer + Decalage,Longueur)
      AddGadgetItem(gadget,-1,Chaine)
    Else
      Chaine.s = PeekS(*Buffer,Longueur)
      AddGadgetItem(gadget,-1,Chaine)
    EndIf
    FreeMemory(*Buffer)
  EndIf
EndProcedure
Pour l'appeler, tu lui donnes le gadget, et le fichier à charger.

Code : Tout sélectionner

        Case #barre_charger;:charger_document()
          text.s=OpenFileRequester("chargement d'un fichier texte","","Fichier text|*.txt",0) 
          If text<> "" 
            ClearGadgetItemList(#Document)
            LireFichier(#Document,text)
          EndIf
Dernière modification par Chris le jeu. 25/nov./2004 19:05, modifié 1 fois.
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Message par jbernard13 »

et pour choisir les fonts dans un font requester
Jbernard13
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Faudrait essayer d'être un peu patient, quand même :wink:

Comme je ne sais pas comment tu appelles le FontRequester, j'ai créé un menu. A toi d'adapter.

Code : Tout sélectionner

        Case #Menu_Police
          If FontRequester("Arial",12,0)
            Font = LoadFont(#Font, SelectedFontName(),SelectedFontSize(),SelectedFontStyle())
            SetGadgetFont(#Document,Font)
          EndIf
Il faudra que tu t'arranges pour sauvegarder les règlages de police dans un fichier de preferences, parce qu'a la prochaine ouverture de ton fichier, il s'affichera avec la police par défaut.

Tu ne peux pas modifier les polices d'un fichier en .txt, c'est le logiciel qui lit le fichier qui l'affiche selon la police sur laquelle il est règlé.

Pour modifier les polices dans le fichier, il faut faire du .rtf, mais là, c'est une autre histoire!
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Message par jbernard13 »

merci chris pour tes code
mais je comprend rien
c'est du chinois pour moi
a part dessiner l'interface le reste est trop compliquer pour moi
Jbernard13
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Message par jbernard13 »

j'arrive a changer les fontes a les sauvegader et meme a les recharger
rien ne bouge
Jbernard13
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

tu sais changer le texte avec un loadfont tout seul ?

FontID = LoadFont(#Police, "arial", 8) par exemple
FonID va stocker l'identifiant de la police pour pouvoir l'utiliser dans d'autre fonction (voir FontID() dans l'aide également)

pour l'appliquer au gadget, c'est
SetGadgetFont(#Gadget, FontID)

avec ça, on arrive à changer la police du gadget

après, il reste à pouvoir la choisir
donc c'est un FontRequester
Pour utiliser les résultat du FontRequester, il faut utiliser des fonctions mentionnée dans l'aide

SelectedFontName() donne le nom de la police sélectionnée "Arial" par exemple
SelectedFontSize() donne la taille de la police sélectionnée
SelectedFontStyle() donne le style (gras, italique) de la police sélectionnée

Il suffit d'utiliser ces param dans un LoadFond comme si dessus et voilà.

Si tu n'y arrive pas, donne ton code, on va t'aider
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

jbernard13 a écrit :j'arrive a changer les fontes a les sauvegader et meme a les recharger
rien ne bouge
Qu'est-ce que tu veux dire, quand tu dis "Rien ne bouge"?
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Message par jbernard13 »

je veux dire que ca marche
mais vous trop fort pour moi
je savais que creer les interface et apres c'est du chinois, je veux eviter les copier coller de bout de code
Jbernard13
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Le but, c'est pas de faire du copier/coller, c'est de prendre les bouts de code qu'on t'a donné, d'ouvrir l'aide, et de regarder, pour chaque commande, à quoi elle sert.
Répondre