Pipotron v1.4.2

Soyez le premier à donner votre avis sur cette source.

Vue 6 304 fois - Téléchargée 426 fois

Description

2012 approche et notre pays devra élire un nouveau chef de l'état. Vous vous sentez une âme de leader et souhaitez sortir notre pays du marasme générale mais vous ne savez pas vous produire en public et débiter des phrases éloquentes et purement politiciennes ? Pas de problèmes, avec le Pipotron soyez à l'avant-garde des discours, soyez le génial manipulateur de la sémantique.
Un programme totalement inutile donc indispensable.

Créé sur l'idée originale de : http://www.pipotron.free.fr/

Source / Exemple :


{===============================================================================
Code source : BEAUMONT Christophe
Version     : 1.4.2
Date        : 19 Mars 2010

Micro-projet 05 - Un générateur aléatoire d'expressions, programme amusant mais
qui ne sert strictement à rien.
Retrouvez ce source également sur mon site : "http://www.delphinautes.fr"
===============================================================================}
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ShellAPI, Math, XPMan;

type
  Tf_Main = class(TForm)
    List1: TListBox;
    Memo: TMemo;
    List2: TListBox;
    List3: TListBox;
    List4: TListBox;
    List5: TListBox;
    List6: TListBox;
    List7: TListBox;
    List8: TListBox;
    List9: TListBox;
    BtnGenere: TButton;
    LabSite: TLabel;
    XPLook: TXPManifest;
    procedure LabSiteMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure LabSiteMouseLeave(Sender: TObject);
    procedure LabSiteClick(Sender: TObject);
    procedure BtnGenereClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ListXClick(Sender: TObject);

  private
    { Déclarations privées }
    procedure PrintPipo;
  public
    { Déclarations publiques }
  end;

var
  f_Main: Tf_Main;
  Liste : array[1..9] of String;

Const
  PipoLine = '%s %s %s %s %s %s %s %s %s';

implementation

{$R *.dfm}

procedure Tf_Main.BtnGenereClick(Sender: TObject);
var i : integer;
begin
// On va traiter les 9 TListBox
 for i:=1 to 9 do
  with TListBox(FindComponent('List'+IntToStr(i))) do
  begin
// RandomRange renvoie un entier aléatoire entre 0 et le nombre d'expressions du TListBox
// ce qui va définir l'expression choisie
   ItemIndex := RandomRange(0, Items.Count);
// Et on sauvegarde le texte
   Liste[i]:=Items[ItemIndex];
  end;
  PrintPipo;
end;
// Procédure commune aux 9 TListBox, on récupère l'évènement et on sauvegarde
// l'expression à la position définie dans la propriété "Tag".
procedure Tf_Main.ListXClick(Sender: TObject);
begin
 if (Sender is TListBox) then
  begin
    with (Sender as TListBox) do
// On définit l'expression sélectionnée
     Liste[Tag] := Items[ItemIndex];
// On l'affiche dans le TMemo
     PrintPipo;
  end;
end;

procedure Tf_Main.PrintPipo;
const voy : array[1..10] of Char =('a','e','é','è','ê','i','o','u','y','h');
var s : string;
    i : integer;
begin
// On assemble l'ensemble des expressions
 s := Format(PipoLine,[Liste[1],Liste[2],Liste[3],Liste[4],Liste[5],Liste[6],Liste[7],Liste[8],Liste[9]]);
// On va passer en revue les voyelles et autres accords avec l'expression "de"
 for i := 1 to 10 do
   begin
// On remplace les expressions "de a...","de e..." par "d'a...","d'e..." etc...
    s:=StringReplace(s,'de '+voy[i],'d'''+voy[i],[rfReplaceAll]);
   end;
// Vide le composant TMemo de tout texte
 Memo.Clear;
// On affiche dans le TMemo l'ensemble des expressions choisies
 Memo.Lines.Add(s);
end;

procedure Tf_Main.FormCreate(Sender: TObject);
begin
// Initialise le générateur de nombre aléatoire, à faire avant d'utiliser RandomRange
 Randomize;
end;

procedure Tf_Main.LabSiteMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
// Souligne l'adresse du site quand la souris passe dessus
 LabSite.Font.Style := [fsUnderline];
end;

procedure Tf_Main.LabSiteMouseLeave(Sender: TObject);
begin
// Retire le soulignement du site quand la souris n'est plus dessus
 LabSite.Font.Style := [];
end;

procedure Tf_Main.LabSiteClick(Sender: TObject);
begin
 ShellExecute(Handle,'Open','http://www.delphinautes.fr',nil,nil,SW_SHOWDEFAULT)
end;

end.

Codes Sources

Ajouter un commentaire Commentaires
Messages postés
80
Date d'inscription
lundi 2 juin 2003
Statut
Membre
Dernière intervention
15 juin 2012

v1.4.2

Bonjour à tous,

Je laisse le mode du source sur "débutant" malgré l'évolution du code grâce à vos contributions.
Merci à tous ceux qui ont participé à ce projet car j'ai beaucoup appris au fil des changements.

Cordialement.

Christophe
Messages postés
65
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
8 août 2011

C'est fou ce que pipotron aura fait papoter.
Christophe, tu peux enlever "débutant" à ton introduction.
L'évolution de ce code aura été vraiment intéressante à suivre.
A+
Dom
Messages postés
3824
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
18 décembre 2020
37
ceci n'a rien à voir avec une préférence personnelle ... le but étant d'apprendre quelque chose à un débutant alors autant lui montrer le chemin correct .. ces opérateurs ("is" & "as") sont mis à disposition pas Delphi afin de vérifier et de transtyper en toute sécurité des objets (voir l'aide de Delphi à ce sujet)
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
13
Oui je ne contrôle pas car on ne mets cette procedure QUE sur les listbox, donc vérif inutile à mon gout.
Messages postés
3824
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
18 décembre 2020
37
Salut,

voici une petite modification au code de JulioDelphi qui ne faisait pas de contrôle sur le type de la classe et une simplification de la procédure "BtnGenereClick" ...
je te laisse voir ça tout seul !!

procedure Tf_Main.BtnGenereClick(Sender: TObject);
var i : integer;
begin
// On va traiter les 9 TListBox
for i:=1 to 9 do
with TListBox(FindComponent('List'+IntToStr(i))) do
begin
// RandomRange renvoie un entier aléatoire entre 0 et le nombre d'expressions du TListBox
// qui va définir l'expression choisie
// On sélectionne l'expression choisie
ItemIndex := RandomRange(0, Items.Count);
// Et on sauvegarde le texte
Liste[i] := Items[ItemIndex];
end;
PrintPipo;
end;
// Procédure commune aux 9 TListBox, on récupère l'évènement et on sauvegarde
// l'expression à la position définie dans la propriété "Tag".
procedure Tf_Main.ListXClick(Sender: TObject);
begin
// On récupère l'évènement du TListBox
if (Sender is TListBox) then
begin
with (Sender as TListBox) do
// On définit l'expression sélectionnée
Liste[Tag] := Items[ItemIndex];
// On l'affiche dans le TMemo
PrintPipo;
end;
end;
Afficher les 25 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.