WebGadget ecriture dans plusieurs sens

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

WebGadget ecriture dans plusieurs sens

Message par Kwai chang caine »

Hello at all .....
Pfffff KCC il est bilingue alors y s'emmele les langues comme si il s'roulais un palo tout seul :?

Bonjour à tous

Cette année 2009,........ KCC est tres fecond :D
Il pond des oeufs, comme si il en pleuvait.

Il viens donc tout juste de poser sur la paille ce dernier, qu'il pense à le partager avec sa famille.
Le premier qui me le cuit, ou me le gobe ..... :?

Bref..voici un webgadget pas comme les autres :D
Mais "Quoit'ece quigna ton zeu" de difference me direz vous la langue pendante et le regard haletant 8O

Et ben, en vérité je vous le dit (Tiré de l'evangile selon mathieu, tiret 2 chapitre 5) Merci DOBRO :wink:
Nous pouvons le faire ecrire dans trois sens differents selon la constante choisie.

#Web_Normal (Ca été le plus dur a faire)
#Web_Reverse (C'est une erreur, j'ai trouvé ça joli, mais j'le dit a personne) Il ecrit de bas en haut
#Web_LastLine (Alors la le grand maitre SPARKIE m'a aidé sur ce coup la, car il ecrit et l'on voit toujours la derniere ligne ecrite :D)

Je ne doute pas que je doit etre le seul a avoir besoin d'un tel code, ou bien que l'un de vous va me sortir le meme en trois ligne :oops:
Mais bon, si un jour les dieux pouvaient creer "quinquin" de moins bon que moi.......et bah ce sera peut etre pour lui :D

Vala vala....des question ?????
Personne ........

Bon bah, treve de bavouillage, et voici l'oeuf (Don't forget, ...........no coque, no gobe :? )

Code : Tout sélectionner

; http://www.purebasic.fr/english/viewtopic.php?p=276073#276073
; Original code by the great SPARKIE despite that a KCC only on his back 
; Try to put in a Procedure and decayed by KCC :-(

#Form = 25 
#GadgetWeb = 2 

#Web_Normal = 1
#Web_Reverse = 2
#Web_LastLine = 3

Procedure WinCallback(hwnd, uMsg, wParam, lParam)

 Select uMsg 
  Case #WM_CLOSE 
   End 
  Case #WM_KEYDOWN 
   If wParam = #VK_ESCAPE 
    End
   EndIf 
  Case #WM_SIZING 
   ResizeGadget(#GadgetWeb, #PB_Ignore, #PB_Ignore, WindowWidth(#Form) - 10, WindowHeight(#Form) - 10) 
 EndSelect 

 ProcedureReturn #PB_ProcessPureBasicEvents 
 
EndProcedure 

Procedure WriteWebGadget(PbIdWebGadget, Texte.s, FontSize.f = 6, Affichage = #Web_Normal); #Web_Reverse / #Web_Normal / #Web_LastLine 
   
 Texte = ReplaceString(Texte, Chr(13), "<br>")
 LineHeight.f = FontSize / 0.85 
 ;- Convert font pt size to pixels 
 HwndFenetre = GetParent_(GadgetID(PbIdWebGadget))
 PbIdFenetre = GetProp_(HwndFenetre,"PB_WindowID") - 1
 hdc = StartDrawing(WindowOutput(PbIdFenetre))
 LogPixY = GetDeviceCaps_(hdc, #LOGPIXELSY) 
 StopDrawing() 
 
 Fontheight.f = FontSize / (72 / logPixY) ;-72pt = 1 inch 
 LinePixels = LineHeight / (72 / logPixY) ;-72pt = 1 inch 
 DivHeight.f= GadgetHeight(PbIdWebGadget) - (LineHeight * 2) 
 NBreLignesMax = (DivHeight / LinePixels)
 NbreLignesText = CountString(Texte, "<br>")
 
 EnteteHtml$ = "<html><head><title></title>" 
 FinHtml$ + "</div></body></html>"
 
 If Affichage = #Web_Normal

  EnteteHtml$ + "<body><div class='page' style='font-Size: " + Str(fontSize) + " pt; line-height: " + Str(lineHeight) + " pt'>" + #CRLF$ 
 
 Else
  
  EnteteHtml$ + "<body scroll='no'><div class='page' style='overflow-y: hidden; align: bottom; height: " + Str(divHeight) + "px; font-Size: " + Str(fontSize) + " pt; line-height: " + Str(lineHeight) + " pt'>" + #CRLF$  
  
  If NbreLignesText >= NBreLignesMax Or Affichage = #Web_Reverse
     
   Temp$ = ""
   
   For i = NBreLignesMax - 1 To 1 Step - 1
   
    String.s = Texte
            
    For r = 1 To NbreLignesText - i
    
     Pos = FindString(String, "<br>", 1) 
     
     If Pos 
      Field.s = Left(String, Pos - 1) 
     Else 
      Field.s = String 
     EndIf 
     
     String = Mid(String, Pos + Len("<br>"), Len(string)) 
    
    Next 
      
    Temp$ + Field + "<br>"
    
   Next
   
   Texte = Temp$
       
  EndIf 

 EndIf  

 SetGadgetItemText(PbIdWebGadget, #PB_Web_HtmlCode, EnteteHtml$ + Texte + FinHtml$)      
 While WindowEvent():Wend 
 
EndProcedure

OpenWindow(#Form, 0, 0, 800, 500, "", #PB_Window_SystemMenu|#PB_Window_SizeGadget) 
WebGadget(#GadgetWeb, 0, 0, WindowWidth(#Form) - 10, WindowHeight(#Form) - 10, "") 
SetWindowCallback(@WinCallback()) 

For i = 1 To 50
 
 a$ + "La line " + Str(i) + " of KCC is writting" + #CRLF$ 
 WriteWebGadget(#GadgetWeb, a$, 10, #Web_LastLine) 
 ;WriteWebGadget(#GadgetWeb, a$, 10, #Web_Reverse) 
 ;WriteWebGadget(#GadgetWeb, a$, 10, #Web_Normal)
 Delay(100)
 
Next

WriteWebGadget(#GadgetWeb, a$, 10, #Web_Normal) ; For Write the Page full and appears the Scrollbar

Repeat  
 Event = WaitWindowEvent() 
Until Event = #PB_Event_CloseWindow 

End
Merci de votre attention
Je vous donne rendez vous au troisieme truc de KCC
Et vous souhaite une excelent journée