le 05/03/2005 à 22:01
Isaac
Salut !
Script avec Php-Gtk
Je vous explique mon problème :
Quand je le lance via l'invite de commandes, l'aire devrait être calculée. Cela n'en est rien ! Voici ce que j'obtiens quand je clique sur le bouton pave ou rectangle dans l'invite :
Comme vous l'avez peut-être remarqué, l'aire, et le volume, par conséquent, est toujours à 0 ! C'est ça que je pige pas ! Que faut-il que je change ? J'espère au moins que c'est une faute qui en vaut la peine ...
Merci d'avance !
++
PS: Pour ceux qui s'intéressent à Php-Gtk ou qui se font chier, voilà l'adresse pour l'installer : >Cliquez ici< (Y z'en sont encore à Php 3 )
Script avec Php-Gtk
<?php
# by XGarreau
# modifié par Isaac
# (hum _ juste pour apprendre)
####################################### Classes
Class rectangle {
var $longueur, $largeur;
Function rectangle ($longueur, $largeur) {
$this->longueur = $lo;
$this->largeur = $la;
}
Function aire () {
return $this->longeur*$this->largeur;
}
}
Class pave extends rectangle {
var $hauteur;
Function pave ($longueur, $largeur, $hauteur) {
parent::rectangle($lo, $la);
$this->hauteur = $ha;
}
Function volume () {
return parent::aire()*$this->hauteur;
}
}
####################################### Messages
Function rect_cb ($button, $param) {
$la = rand(1, 100);
$lo = rand(1, 100);
echo "Création d'un rectangle de ".$lo."*".$la."\n";
$rect = new rectangle ($la, $lo);
echo "--> Aire : ".$rect->aire()."\n";
echo "--> Nom : $param[0]\n";
echo "--> Heure de création : $param[2]\n";
}
Function pave_cb ($button, $param) {
$la = rand(1, 100);
$lo = rand(1, 100);
$ha = rand(1, 100);
echo "Création d'un pave de ".$lo."*".$la."*".$ha."\n";
$pave = new pave ($la, $lo, $ha);
echo "--> Aire de la base : ".$pave->aire()."\n";
echo "--> Volume : ".$pave->volume()."\n";
echo "--> Nom : $param[1]\n";
echo "--> Heure de création : $param[2]\n";
}
Function on_ferme () {
echo "\nOn ferme ...\n\n";
gtk::main_quit();
}
####################################### Fenêtre
Function create_window () {
$window = &new GtkWindow ();
$vbox = &new GtkVBox(FALSE, 5);
$window -> add($vbox);
$hbbox_hi = &new GtkHButtonBox();
$vbox -> add($hbbox_hi);
$hbbox_lo = &new GtkHButtonBox();
$vbox -> add($hbbox_lo);
$rc_btn = &new GtkButton ("Rectangle");
$hbbox_hi -> add ($rc_btn);
$pv_btn = &new GtkButton ("Pave");
$hbbox_hi -> add ($pv_btn);
$qt_btn = &new GtkButton ("Quitter");
$hbbox_lo -> add ($qt_btn);
$param = array("Rectangle", "Pave", date("H:i:s"));
$rc_btn -> connect ("clicked", "rect_cb", $param);
$pv_btn -> connect ("clicked", "pave_cb", $param);
$qt_btn -> connect ("clicked", "on_ferme");
$window -> connect_object ("destroy", array("gtk", "main_quit"));
return $window;
}
####################################### Lancement
If (!class_exists('gtk')) :
If (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) dl('php_gtk.dll');
Else dl('php_gtk.so');
EndIf;
srand(time());
$ma_fen = create_window();
$ma_fen->show_all();
gtk::main();
?>
Je vous explique mon problème :
Quand je le lance via l'invite de commandes, l'aire devrait être calculée. Cela n'en est rien ! Voici ce que j'obtiens quand je clique sur le bouton pave ou rectangle dans l'invite :
Création d'un rectangle de 44*69
--> Aire : 0
--> Nom : Rectangle
--> Heure de création : 19:38:57
Création d'un pave de 95*10*65
--> Aire de la base : 0
--> Volume : 0
--> Nom : Pave
--> Heure de création : 19:38:57
--> Aire : 0
--> Nom : Rectangle
--> Heure de création : 19:38:57
Création d'un pave de 95*10*65
--> Aire de la base : 0
--> Volume : 0
--> Nom : Pave
--> Heure de création : 19:38:57
Comme vous l'avez peut-être remarqué, l'aire, et le volume, par conséquent, est toujours à 0 ! C'est ça que je pige pas ! Que faut-il que je change ? J'espère au moins que c'est une faute qui en vaut la peine ...
Merci d'avance !
++
PS: Pour ceux qui s'intéressent à Php-Gtk ou qui se font chier, voilà l'adresse pour l'installer : >Cliquez ici< (Y z'en sont encore à Php 3 )