ca ne multiplie pas !

Répondre
Isaac
le 05/03/2005 à 22:01
Isaac
Salut !

smiley Script avec Php-Gtk smiley

<?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


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 ? smiley J'espère au moins que c'est une faute qui en vaut la peine ... smiley

Merci d'avance ! smiley

++ smiley

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 smiley)
http://www.zmws.com
LA GLOBULE
le 05/03/2005 à 23:27
LA GLOBULE
Surement un problème dans tes méthodes aire et volume.

smiley

Essaye de debugguer.
Isaac
le 06/03/2005 à 20:25
Isaac
Heureusement que tu es là pour nous aider ! smiley
http://www.zmws.com
bibi
le 09/03/2005 à 23:11
bibi
Function rectangle ($longueur, $largeur) {
$this->longueur = $lo;
$this->largeur = $la;
}



$lo et $la ca existe pas lol
pareil dans pave
commit suicide
Lefounard
le 10/03/2005 à 00:03
Lefounard
Bonjour,
Juste une question au sujet de GTK car je fais la meme chose, ou plutot l'equivalent avec Qt , ormis que c pas destiner web, PHP-GTK ca sert vraiment et avez vous des exemple de site utilisant ce processus ?
Ciao,
I am singing in the rain , I am happy again !!
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours