Bonjour !

Je continue d'écrire de petits exemples Flash-Pascal.

J'aimerais l'avoir suffisamment en main pour m'en servir comme d'un outil d'initiation à la programmation, à la place de Turbo Pascal. Gratuit, léger, fonctionnant sans installation, on ne peut plus simple dans sa présentation : dans un sens, c'est l'outil idéal. Je cherche donc à écrire les exemples classiques, dans un style de programmation aussi simple que possible.

Aujourd'hui j'ai travaillé sur l'affichage de texte, à partir de l'exemple "stringopenarraydemo" de Flash-Pascal 0.8. Très intéressant !

Voici ce que j'en ai tiré :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
program Texte;
 
// Exemple Flash-Pascal
 
{$FRAME_WIDTH  600}
{$FRAME_HEIGHT 400}
{$BACKGROUND $eeeeee}
 
uses
  Flash8, Strings;
 
var
  f : TextFormat;
  t : TextField;
  s1: TString;
  s2: TString;
  s3: string;
  s4: array of string;
 
procedure Ecrire(s: string);
begin
  t.text:=t.text+s;
  t.text:=t.text+#13;
end;
 
begin
  f:=TextFormat.Create('Tahoma',14);
  f.color:=$111111;
  f.bold:=True;
 
  s1:=TString.Create('abc');
  s2:=TString.Create(s1.substring(1,s1.length_));
 
  s3:='bla';
  s3:=s3+s3;
 
  s4:=['Pierre','Paul','Jacques'];
 
  t:=TextField.Create(nil,'t',0,10,10,400,300);
 
  Ecrire('Exercice Flash-Pascal'+#13);
  Ecrire('s1.valueOf = '+s1.valueOf);
  Ecrire('s2.valueOf = '+s2.valueOf);
  Ecrire('s3 = '+s3);
  Ecrire('s4[0] = '+s4[0]);
 
  t.setTextFormat(f);
end.
Je ne connaissais le type array of string. Peut-on le redimensionner après l'avoir initialisé, je veux dire ajouter des éléments ?

Ensuite j'ai réutilisé le même code pour faire la démonstration d'une fonction récursive basée sur un algorithme d'Euclide. Ça fonctionne.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
program ExPGCD;
 
// Exemple Flash-Pascal
 
{$FRAME_WIDTH  600}
{$FRAME_HEIGHT 400}
{$BACKGROUND $eeeeee}
 
uses
  Flash8;
 
var
  f : TextFormat;
  t : TextField;
 
procedure Ecrire(s: string);
begin
  t.text:=t.text+s;
  t.text:=t.text+#13;
end;
 
function PGCD (a, b: Integer): Integer;
begin
  Ecrire ('a='+IntToStr(a));
  Ecrire ('b='+IntToStr(b));
  if b = 0 then result := a
  else result := PGCD (b, a mod b);
end;
 
begin
  f:=TextFormat.Create('Tahoma',14);
  f.color:=$111111;
  f.bold:=True;
 
  t:=TextField.Create(nil,'t',0,10,10,400,300);
 
  PGCD(12,16);
 
  t.setTextFormat(f);
end.
Par contre, je n'ai pas réussi à afficher le résultat de ma fonction dans le programme principal. J'ai essayé de plusieurs façons, mais j'avais toujours le mot "undefined" à la place de mon résultat.