#include global $textechoisi[1][3] global $textecomplet[2] global $letexte="" global $nbcoltotal global $nbpixparcaracterehoriz=11 global $nbpixparcaracterevert=13 Global $NewPolice Dim $Cases[1][1] Dim $Casess[1][1] ReDim $Cases[$nbpixparcaracterevert][$nbpixparcaracterehoriz] ReDim $Casess[$nbpixparcaracterevert][$nbpixparcaracterehoriz] Dim $CouleurTexte = 0xA00000 Dim $CouleurFond = 0x002000 Dim $Texte = "" ;Dim $Position = 0 Dim $NbCaracteresX = 0 Dim $RandMin = 0 Dim $RandMax = 0 Dim $TempsDelai = 100 Dim $TaillePix[2] = [5, 5] Dim $EspacementPix[2] = [2, 2] Dim $EtatClignotement = False Dim $Defiler = False Dim $Clignoter = False ;=============================================================================== ; Nom: CreerPanneau() ; Description: Créé un panneau d'affichage (style tram) ; Paramètres: $TexteParam : Texte afficher par le panneau ; $PosX : Position dans la fenêtre (abscisse) ; $PosY : Position dans la fenêtre (ordonnée) ; $NbCaracteresXParam : Taille du panneau (en nombre de caractères) ; $Delai : Temps d'attente entre chaque mouvements du texte ; $TaillePixX : Taille d'un pixel d'affichage (abscisse) ; $TaillePixY : Taille d'un pixel d'affichage (ordonnée) ; $EspacementX : Taille de l'espacement entre 2 pixels d'affichage (abscisse) ; $EspacementY : Taille de l'espacement entre 2 pixels d'affichage (ordonnée) ; Auteur: TommyDDR ;=============================================================================== Func CreerPanneau($TexteParam, $PosX, $PosY, $NbCaracteresXParam, $TextCouleur = 0x00A000, $FondCouleur = 0x002000, $Delai = 100, $TaillePixX = 5, $TaillePixY = 5, $EspacementX = 2, $EspacementY = 2) If($TextCouleur = -1) Then $CouleurTexte = 0x00A000 Else $CouleurTexte = $TextCouleur EndIf If($FondCouleur = -1) Then $CouleurFond = 0x002000 Else $CouleurFond = $FondCouleur EndIf If($Delai = -1) Then $TempsDelai = 100 Else $TempsDelai = $Delai EndIf If($TaillePixX = -1) Then $TaillePix[0] = 5 Else $TaillePix[0] = $TaillePixX EndIf If($TaillePixY = -1) Then $TaillePix[1] = 5 Else $TaillePix[1] = $TaillePixY EndIf If($EspacementX = -1) Then $EspacementPix[0] = 2 Else $EspacementPix[0] = $EspacementX EndIf If($EspacementY = -1) Then $EspacementPix[1] = 2 Else $EspacementPix[1] = $EspacementY EndIf $TaillePix[0] = $TaillePixX $TaillePix[1] = $TaillePixY $EspacementPix[0] = $EspacementX $EspacementPix[1] = $EspacementY $NbCaracteresX = $NbCaracteresXParam ReDim $Cases[$nbpixparcaracterevert][$NbCaracteresX*$nbpixparcaracterehoriz] ReDim $Casess[$nbpixparcaracterevert][$NbCaracteresX*$nbpixparcaracterehoriz] Panneau_Set_Text($TexteParam) ;$Position = $NbCaracteresX*$nbpixparcaracterehoriz For $i = 0 To ($NbCaracteresX*$nbpixparcaracterehoriz)-1 For $j = 0 To $nbpixparcaracterevert-1 $Cases[$j][$i] = GUICtrlCreateLabel("", $PosX+$i*($TaillePix[0] + $EspacementPix[0])+Random($RandMin, $RandMax, 1), $PosY+$j*($TaillePix[1] + $EspacementPix[1])+Random($RandMin, $RandMax, 1), $TaillePix[0], $TaillePix[1]) $Casess[$j][$i] = 0 GUICtrlSetBkColor(-1, $CouleurFond) Next Next $Defiler = True DemarrerDefilement() EndFunc ;=============================================================================== ; Nom: ChangerDefilement() ; Description: Arrête / relance le défilement du texte ; Auteur: TommyDDR ;=============================================================================== Func ChangerDefilement() $Defiler = Not $Defiler If($Defiler) Then DemarrerDefilement() Else StoperDefilement() EndIf EndFunc ;=============================================================================== ; Nom: DemarrerDefilement() ; Description: Lance le défilement du texte ; Auteur: TommyDDR ;=============================================================================== Func DemarrerDefilement() AdlibEnable("FaireDefiler", $TempsDelai) EndFunc ;=============================================================================== ; Nom: StoperDefilement() ; Description: Arrête le défilement du texte ; Auteur: TommyDDR ;=============================================================================== Func StoperDefilement() AdlibDisable() EndFunc ;=============================================================================== ; Nom: ChangerClignotement() ; Description: Arrête / relance le clignotement du texte ; Auteur: TommyDDR ;=============================================================================== Func ChangerClignotement() $Clignoter = Not $Clignoter If($Clignoter) Then DemarrerClignotement() Else StoperClignotement() EndIf EndFunc ;=============================================================================== ; Nom: DemarrerClignotement() ; Description: Lance le clignotement du texte ; Auteur: TommyDDR ;=============================================================================== Func DemarrerClignotement() StoperDefilement() AdlibEnable("FaireClignoter", 200) EndFunc ;=============================================================================== ; Nom: StoperClignotement() ; Description: Arrête le clignotement du texte ; Auteur: TommyDDR ;=============================================================================== Func StoperClignotement() AdlibDisable() If($EtatClignotement) Then FaireClignoter() EndIf If($Defiler) Then DemarrerDefilement() EndIf EndFunc ;=============================================================================== ; Nom: FaireClignoter() ; Description: Fait clignoter le texte ; Auteur: TommyDDR ;=============================================================================== Func FaireClignoter() If($EtatClignotement) Then For $i = 0 To ($NbCaracteresX*$nbpixparcaracterehoriz)-1 For $j = 0 To $nbpixparcaracterevert-1 If($Casess[$j][$i] <> 0) Then GUICtrlSetBkColor($Cases[$j][$i], $CouleurTexte) EndIf Next Next Else For $i = 0 To ($NbCaracteresX*$nbpixparcaracterehoriz)-1 For $j = 0 To $nbpixparcaracterevert-1 If($Casess[$j][$i] <> 0) Then GUICtrlSetBkColor($Cases[$j][$i], $CouleurFond) EndIf Next Next EndIf $EtatClignotement = Not $EtatClignotement EndFunc ;=============================================================================== ; Nom: FaireDefiler() ; Description: Fait défiler le texte ; Auteur: TommyDDR ;=============================================================================== Func FaireDefiler() StoperDefilement() if $newpolice="" then $Police=$textecomplet[1] ;au début on charge le nouveau texte else $Police=$newpolice ; à chaque passage on charge le texte décallé endif $t=0 ;on parcours par colonne et par ligne For $i = 0 To ($NbCaracteresX*$nbpixparcaracterehoriz)-1 For $j = 0 To $nbpixparcaracterevert-1 $t+=1 $Couleur = StringMid($Police, $t, 1); on note la couleur If($Couleur = 0 And $Casess[$j][$i] = 1) Then ; si elle est à 0 et que la couleur actuelle est 1 on met 0 GUICtrlSetBkColor($Cases[$j][$i], $CouleurFond); on change la couleur du pixel $Casess[$j][$i] = 0 ElseIf($Couleur = 1 And $Casess[$j][$i] = 0) Then ; si elle est à 1 et que la couleur actuelle est 0 on met 1 GUICtrlSetBkColor($Cases[$j][$i], $CouleurTexte); on change la couleur du pixel $Casess[$j][$i] = 1 EndIf next next ;on décalle le texte d'une colonne $policedroite=stringmid($Police,14) $policegauche=stringleft($Police,13) $newpolice=$policedroite & $policegauche If($Defiler And Not $Clignoter) Then DemarrerDefilement() EndIf endfunc Func Panneau_Set_Text($NewTxt) If($Defiler) Then StoperDefilement() EndIf $Texte = $NewTxt $letexte=$Texte ;on efface tous les pixels For $i = 0 To ($NbCaracteresX*$nbpixparcaracterehoriz)-1 For $j = 0 To $nbpixparcaracterevert-1 If($Casess[$j][$i] <> 0) Then GUICtrlSetBkColor($Cases[$j][$i], $CouleurFond) $Casess[$j][$i] = 0 EndIf Next Next $nbcoltotal=0 $textecomplet[1]="" $nbcartxt=stringlen($Texte) dim $textechoisi[$nbcartxt+1][3] for $l=1 to $nbcartxt $textechoisi[$l][0]=$Alphabet[asc(stringmid($Texte,$l,1))-32][0];le caractère $textechoisi[$l][1]=$Alphabet[asc(stringmid($Texte,$l,1))-32][1];le nb colonne $textechoisi[$l][2]=$Alphabet[asc(stringmid($Texte,$l,1))-32][2]; les pixels $nbcoltotal+=$textechoisi[$l][1] ;on compte le nombre total de colonnes $textecomplet[0]=$Texte $textecomplet[1]&=$textechoisi[$l][2]; on concatène les pixels des différents caractères next for $t=1 to ($NbCaracteresX*$nbpixparcaracterehoriz)*$nbpixparcaracterevert $textecomplet[1]=0 & $textecomplet[1] ; devant, on ajoute des 0 pour combler le texte final next $newpolice="" If($Defiler) Then DemarrerDefilement() EndIf EndFunc