Nouvelle version 13.10.25 de FlashPascal 2
Avec, comme amélioration, la possibilité d'exploiter les informations sur le poste de travail

Le , par Paul TOTH, Expert éminent sénior
Nouvelle version 13.10.25 de FlashPascal 2
Avec, comme amélioration, la possibilité d'exploiter les informations sur le poste de travail



http://flashpascal.execute.re/

C'est une mise à jour mineure, mais elle permet d'exploiter la classe System.capabilities (capabilities en FlashPascal) pour avoir des informations sur le poste de travail.

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
program SystemCapabilities; 
 
{$FRAME_WIDTH 550} 
{$FRAME_HEIGHT 400} 
{$FRAME_RATE 12} 
{$BACKGROUND $FFFFFF} 
 
uses 
  Flash8; 
 
var 
  t: TextField; 
 
begin 
  t := TextField.Create(_root, 't', 1, 0, 0, 550, 400); 
  t.Text := 'avHardwareDisable = ' + BoolToStr(capabilities.avHardwareDisable) + #13 + 
            'hasAccessibility = ' + BoolToStr(capabilities.hasAccessibility) + #13 + 
            'hasAudio = ' + BoolToStr(capabilities.hasAudio) + #13 + 
            'hasAudioEncoder = ' + BoolToStr(capabilities.hasAudioEncoder) + #13 + 
            'hasEmbeddedVideo = ' + BoolToStr(capabilities.hasEmbeddedVideo) + #13 + 
            'hasIME = ' + BoolToStr(capabilities.hasIME) + #13 + 
            'hasMP3 = ' + BoolToStr(capabilities.hasMP3) + #13 + 
            'hasPrinting = ' + BoolToStr(capabilities.hasPrinting) + #13 + 
            'hasScreenBroadcast = ' + BoolToStr(capabilities.hasScreenBroadcast) + #13 + 
            'hasScreenPlayback = ' + BoolToStr(capabilities.hasScreenPlayback) + #13 + 
            'hasStreamingAudio = ' + BoolToStr(capabilities.hasStreamingAudio) + #13 + 
            'hasStreamingVideo = ' + BoolToStr(capabilities.hasStreamingVideo) + #13 + 
            'hasVideoEncoder = ' + BoolToStr(capabilities.hasVideoEncoder) + #13 + 
            'isDebugger = ' + BoolToStr(capabilities.isDebugger) + #13 + 
            'language = ' + capabilities.language + #13 + 
            'localFileReadDisable = ' + BoolToStr(capabilities.localFileReadDisable) + #13 + 
            'manufacturer = ' + capabilities.manufacturer + #13 + 
            'os = ' + capabilities.os + #13 + 
            'pixelAspectRatio = ' + FloatToStr(capabilities.pixelAspectRatio) + #13 + 
            'playerType = ' + capabilities.playerType + #13 + 
            'screenColor = ' + capabilities.screenColor + #13 + 
            'screenDPI = ' + FloatToStr(capabilities.screenDPI) + #13 + 
            'ScreenResolutionX = ' + FloatToStr(capabilities.screenResolutionX) + #13 + 
            'ScreenResolutionY = ' + FloatToStr(capabilities.screenResolutionY) + #13 + 
            'serverString = ' + capabilities.serverString + #13 + 
            'version = ' + capabilities.version; 
 
end.


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Archimède Archimède - Membre expérimenté https://www.developpez.com
le 25/10/2013 à 18:43
Nickel, je regarde ça...
Avatar de joreveur joreveur - Membre averti https://www.developpez.com
le 25/10/2013 à 18:54
Bonjour

merci. le lien est dans la signature je suppose ?

Bon we
Avatar de Archimède Archimède - Membre expérimenté https://www.developpez.com
le 25/10/2013 à 19:17
Super l'exemple :
program SystemCapabilities;



J'ai essayé un truc simple :
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
program Project2; 
 
{$FRAME_RATE 12} 
{$BACKGROUND $FFFFFF} 
 
uses 
  Flash8; 
 
 
 
begin 
  with _Root do 
  begin 
   beginFill($ff0000); 
   linestyle(1,0); 
   lineto(capabilities.screenResolutionX,0); 
   lineto(capabilities.screenResolutionX,100); 
   lineto(0,100); 
   endFill(); 
   beginFill($ffff00); 
   moveto(capabilities.screenResolutionX-100,0); 
   lineto(capabilities.screenResolutionX,0); 
   lineto(capabilities.screenResolutionX,100); 
   lineto(capabilities.screenResolutionX-100,100); 
   lineto(capabilities.screenResolutionX-100,0); 
   endFill(); 
  end; 
  stage.align:='TL'; 
end.
ça ne fonctionne pas... j'ai fait la même chose en actionscript :
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
package  
{ 
	import flash.display.Sprite; 
	import flash.events.Event; 
	import flash.system.Capabilities; 
	 
	public class MyScreen extends Sprite  
	{ 
		 
		public function MyScreen():void  
		{ 
		   
		  with (graphics) 
		  { 
		    beginFill(0xFF0000); 
		    lineStyle(1, 0); 
		    drawRect(0, 0, Capabilities.screenResolutionX,100); 
		    endFill(); 
		    beginFill(0xFFFF00); 
		    drawRect(Capabilities.screenResolutionX-100,0,100,100); 
		    endFill(); 
		  }	  
		  stage.align = "TL"; 
		}	 
	}	 
}
là, le fichier swf généré n'est pas bon non plus mais flashdevelop que j'utilise génére un fichier index en html contenant un script qui me l'affiche comme convenu...

Ce doit être réalisable en javascript pour flashpascal...
Avatar de Roland Chastain Roland Chastain - Rédacteur/Modérateur https://www.developpez.com
le 25/10/2013 à 22:00
Bravo, Paul !

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
 
// Date littérale en trois langues 
// FlashPascal2 13.10.25 
 
// Formats retenus : 
// Friday 25 October 2013 
// Freitag, 25. Oktober 2013 
// vendredi 25 octobre 2013 
 
program DateLitterale2; 
 
uses 
  Flash8, 
  Date; // http://flashpascal.sourceforge.net/ 
 
{$FRAME_WIDTH 320} 
{$FRAME_HEIGHT 32} 
 
const 
  EN = 0; 
  DE = 1; 
  FR = 2; 
  NOM_JOUR: array[EN..FR, 0..6] of string = ( 
    ('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'), 
    ('Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'), 
    ('dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi') 
  ); 
  NOM_MOIS: array[EN..FR, 0..11] of string = ( 
    ('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'), 
    ('Januar', 'Februar', "März", 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'), 
    ('janvier', "février", 'mars', 'avril', 'mai', 'juin', 'juillet', "août", 'septembre', 'octobre', 'novembre', "décembre") 
  ); 
   
var 
  f: TextFormat; 
  t: TextField; 
  d: TDate; 
  l: integer; 
 
begin 
  f := TextFormat.Create('Times', 24); 
  t := TextField.Create(nil, 't', 0, 0, 0, 320, 32); 
  d := TDate.Create; 
   
  if capabilities.language = 'de' then 
    l := DE 
  else 
    if capabilities.language = 'fr' then 
      l := FR 
    else 
      l := EN; 
   
  f.align := 'center'; 
  t.setNewTextFormat(f); 
   
  t.text := NOM_JOUR[l, d.getDay]; 
  if l = DE then t.text := t.text + ','; 
  t.text := t.text + #32; 
   
  t.text := t.text + IntToStr(d.getDate); 
  if l = DE then t.text := t.text + '.'; 
  if (l = FR) and (d.getDate = 1) then t.text := t.text + 'er'; 
  t.text := t.text + #32; 
   
  t.text := t.text + NOM_MOIS[l, d.getMonth]; 
  t.text := t.text + #32; 
   
  t.text := t.text + IntToStr(d.getFullYear); 
end.
Avatar de Paul TOTH Paul TOTH - Expert éminent sénior https://www.developpez.com
le 26/10/2013 à 7:38
Citation Envoyé par Archimède  Voir le message
Super l'exemple :

.

je pense que tu veux faire un SWF fullscreen, dans ce cas il te manque un Stage.scaleMode := 'noScale'; et probablement un Stage.displayState := 'fullScreen';.
Avatar de Paul TOTH Paul TOTH - Expert éminent sénior https://www.developpez.com
le 26/10/2013 à 7:39
Citation Envoyé par joreveur  Voir le message
Bonjour

merci. le lien est dans la signature je suppose ?

Bon we

oui le site c'est http://flashpascal.execute.re, mais si tu as une version du logiciel, au lancement il t'indique quand une nouvelle version est disponible.
Avatar de joreveur joreveur - Membre averti https://www.developpez.com
le 26/10/2013 à 9:14
Bonjour,
Citation Envoyé par Paul TOTH  Voir le message
oui le site c'est http://flashpascal.execute.re, mais si tu as une version du logiciel, au lancement il t'indique quand une nouvelle version est disponible.

Merci

oui je découvre tranquillement tout ton travail ...

Comme j'ai pris la version portable et étant sous Linux ( avec Wine) je n'ai juste qu'un demi popup qui s'affiche quelques secondes (mais maintenant je saurai)

Ce n'est pas ça le plus important tout le reste marche impeccablement bien.

petites questions au passage, dans les nouvelles versions qu'est-ce qui change ? le dossier bin ou l'unit ou voire les 2 ? i

Serait il possible dans ton zip de les inclure dans un un dossier (du nom de la version) comme ça, en décompressant ça n’écraserait pas les anciennes versions. (c'est ce que je fait manuellement)

Bien à toi
Avatar de Paul TOTH Paul TOTH - Expert éminent sénior https://www.developpez.com
le 26/10/2013 à 17:00
Citation Envoyé par joreveur  Voir le message
Bonjour,

Merci

oui je découvre tranquillement tout ton travail ...

Comme j'ai pris la version portable et étant sous Linux ( avec Wine) je n'ai juste qu'un demi popup qui s'affiche quelques secondes (mais maintenant je saurai)

Ce n'est pas ça le plus important tout le reste marche impeccablement bien.

petites questions au passage, dans les nouvelles versions qu'est-ce qui change ? le dossier bin ou l'unit ou voire les 2 ? i

Serait il possible dans ton zip de les inclure dans un un dossier (du nom de la version) comme ça, en décompressant ça n’écraserait pas les anciennes versions. (c'est ce que je fait manuellement)

Bien à toi

ça dépend de la version...par contre pour le coup je ne conserve pas l'historique des versions, je ne propose toujours que la dernière qui est la seule maintenue...libre à toi de conserver le zip de chaque version.

je n'ai pas testé sous WINE, il doit y avoir un petit problème de positionnement de la fenêtre.
Avatar de Archimède Archimède - Membre expérimenté https://www.developpez.com
le 26/10/2013 à 22:21
Citation Envoyé par Paul TOTH  Voir le message
je pense que tu veux faire un SWF fullscreen, dans ce cas il te manque un Stage.scaleMode := 'noScale'; et probablement un Stage.displayState := 'fullScreen';.

En effet, ça fonctionne ainsi. D'ailleurs, il existe
Code : Sélectionner tout
		  stage.fullScreenWidth
mais je ne sais pas s'il est opérationnel en as2...

En fait, je voudrais faire un site internet entièrement en flash bien qu'il ne soit pas reconnu par le W3C...et il est nécessaire qu'il occupe la totalité de la surface client du navigateur. Pour la largeur, il n'y a plus de souci mais pour la hauteur, je voudrais mettre une scrollbar qui corresponde exactement à cette dimension; et je ne vois pas comment obtenir la hauteur exacte de la surface client du navigateur qui va supporter ma page index.

Une idée ?
Avatar de Paul TOTH Paul TOTH - Expert éminent sénior https://www.developpez.com
le 27/10/2013 à 2:06
Citation Envoyé par Archimède  Voir le message
En effet, ça fonctionne ainsi. D'ailleurs, il existe
Code : Sélectionner tout
		  stage.fullScreenWidth
mais je ne sais pas s'il est opérationnel en as2...

En fait, je voudrais faire un site internet entièrement en flash bien qu'il ne soit pas reconnu par le W3C...et il est nécessaire qu'il occupe la totalité de la surface client du navigateur. Pour la largeur, il n'y a plus de souci mais pour la hauteur, je voudrais mettre une scrollbar qui corresponde exactement à cette dimension; et je ne vois pas comment obtenir la hauteur exacte de la surface client du navigateur qui va supporter ma page index.

Une idée ?

attention, capabilities.screenResolutionX c'est la résolution de l'écran du PC, pas celle de la fenêtre du navigateur; c'est pour ça que je pensais que tu voulais travailler en fullscreen. Si tu veux occuper toute la page du navigateur tu as deux solutions:
1) pointer directement sur le SWF sans passer par une page HTML (tu ne peux pas alors gérer les navigateurs qui ne gèrent pas Flash)

2) faire une page HTML avec un objet qui prend toute la page...quelque chose comme ça
Code html : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  
<!DOCTYPE HTML> 
<html> 
  <head> 
   <title>FlashPascal</title> 
   <style type="text/css"> 
    body, html { 
      padding: 0px; 
     margin: 0px; 
     width:100%; 
     height:100%; 
    } 
        embed { position: absolute; top: 0px; left: 0px } 
   </style> 
  </head> 
  <body> 
    <embed type="application/x-shockwave-flash" src="fullpage.swf" width="100%" height="100%"/> 
  </body> 
</html>

avec un code comme celui-ci

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
program fullpage; 
 
{$FRAME_WIDTH 550} 
{$FRAME_HEIGHT 400} 
{$FRAME_RATE 12} 
{$BACKGROUND $FFFFFF} 
 
uses 
  Flash8; 
   
type 
  TFullPage = class(MovieClip) 
    constructor Create; 
    procedure onResize; 
  end; 
 
constructor TFullPage.Create; 
begin 
  inherited Create(_root, 'FullPage', 1); 
  Stage.addListener(Self); 
  onResize; 
end; 
 
procedure TFullPage.onResize; 
begin 
  clear(); 
  beginFill($ff0000); 
  linestyle(1,0); 
  lineto(Stage.Width,0); 
  lineto(Stage.Width,100); 
  lineto(0,100); 
  endFill(); 
  beginFill($ffff00); 
  moveto(Stage.Width-100,0); 
  lineto(Stage.Width,0); 
  lineto(Stage.Width,100); 
  lineto(Stage.Width-100,100); 
  lineto(Stage.Width-100,0); 
  endFill(); 
end; 
 
begin 
  Stage.scaleMode := 'noScale'; 
  Stage.align := 'TL'; 
  TFullPage.Create(); 
end.
Note que l'image étant dynamique, elle doit être redessinée quand la page change de dimensions (onResize lié à Stage.addListener)
Offres d'emploi IT
Architecte sécurité des systèmes d'information embarqués H/F
Safran - Ile de France - 100 rue de Paris 91300 MASSY
Ingénieur conception en électronique de puissance H/F
Safran - Ile de France - Moissy-Cramayel (77550)
Architecte systèmes études & scientifiques H/F
Safran - Ile de France - Vélizy-Villacoublay (78140)

Voir plus d'offres Voir la carte des offres IT
Responsables bénévoles de la rubrique Pascal : Gilles Vasseur - Alcatîz -