#include Dim $Alphabet[95] $myfile=fileopen("Test_Ok.txt", 0) for $i=0 to 94 $Alphabet[$i]=FileReadline($myfile,2*$i+2) next fileclose($myfile) ;_ArrayDisplay($Alphabet) Dim $Cases[9][7] Dim $Casess[9][7] 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[9][$NbCaracteresX*8] ReDim $Casess[9][$NbCaracteresX*8] Panneau_Set_Text($TexteParam) $Position = $NbCaracteresX*8 For $i = 0 To ($NbCaracteresX*8)-1 For $j = 0 To 8 $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*8)-1 For $j = 0 To 8 If($Casess[$j][$i] <> 0) Then GUICtrlSetBkColor($Cases[$j][$i], $CouleurTexte) EndIf Next Next Else For $i = 0 To ($NbCaracteresX*8)-1 For $j = 0 To 8 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() Local $Start = 0 Local $NumeroLettre = "" Local $Police = "" Local $Couleur = "" Local $var = "" Local $Decalage = 0 $Position -= 1 If($Position < -(StringLen($Texte)*8)) Then $Position = $NbCaracteresX*8 EndIf $Start = $Position If($Position < 0) Then $Start = 0 $Decalage = Mod(Abs($Position), 8) EndIf If($Position >= 0) Then $NumeroLettre = 1 $Decalage = 0 Else $NumeroLettre = Int((Abs($Position))/8)+1 EndIf $Lettre = Asc(StringMid($Texte, $NumeroLettre, 1))-32 If(Not($Lettre >= 0 And $Lettre < 95)) Then $Lettre = 0 EndIf $Police = $Alphabet[$Lettre] For $i = $Start To ($NbCaracteresX*8)-1 If(Mod(($i-$Start+1+$Decalage), 8) = 0) Then $NumeroLettre += 1 $Lettre = Asc(StringMid($Texte, $NumeroLettre, 1))-32 If(Not($Lettre >= 0 And $Lettre < 95)) Then $Lettre = 0 EndIf $Police = $Alphabet[$Lettre] EndIf If($Lettre <= 95 And $Lettre >= 0) Then For $j = 0 To 8 $Couleur = StringMid($Police, $j*8+1+Mod($i-$Start+$Decalage, 8), 1) If($Couleur = 0 And $Casess[$j][$i] = 1) Then GUICtrlSetBkColor($Cases[$j][$i], $CouleurFond) $Casess[$j][$i] = 0 ElseIf($Couleur = 1 And $Casess[$j][$i] = 0) Then GUICtrlSetBkColor($Cases[$j][$i], $CouleurTexte) $Casess[$j][$i] = 1 EndIf Next EndIf Next If($Defiler And Not $Clignoter) Then DemarrerDefilement() EndIf EndFunc ;=============================================================================== ; Nom: Panneau_Set_Text() ; Description: Change le texte affiché ; Auteur: TommyDDR ;=============================================================================== Func Panneau_Set_Text($NewTxt) If($Defiler) Then StoperDefilement() EndIf ;$NewTxt = StringUpper($NewTxt) $Texte = $NewTxt For $i = 0 To ($NbCaracteresX*8)-1 For $j = 0 To 8 If($Casess[$j][$i] <> 0) Then GUICtrlSetBkColor($Cases[$j][$i], $CouleurFond) $Casess[$j][$i] = 0 EndIf Next Next If($Defiler) Then DemarrerDefilement() EndIf EndFunc