Mostrar resultado

Enviada por Edmar 
Edmar
Mostrar resultado
25 de June de 2004 às 03:25PM
Aos Senhores programadores em php-gtk:

Bom eu estou estudando php-gtk, comprei o livro do
Pablo e ainda sempre busco códigos novo para estudar
esta tão fascinate linguagem mas estou com problemas,
fiz um pequeno programinha para somar dois numeros
digitado por uma pessoa e mostrar em outro formulario o
problema é que não estou conseguindo mostrar o
resultado da soma no formulário que surge depois de
somar as variaveis se vcs puderem me ajudar ficarei
muito grato, abaixo tem o código que usei e também vou
anexo com a extensão em php-gtk , desde já agradeço a
atenção

<?php
// carrega a extenssão PHP-GTK, de acordo com sistema operacional utilizado
if (strtoupper(substr(PHP_OS, 0, 3))=='WIN') {
dl('php_gtk.dll');
} else {
dl('php_gtk.so');
}

// essa função é chamada quando o usuário clica
// no botão fechar ( X ) da janela principal
function destroy()
{
Gtk::main_quit(); //Fecha a aplicação
}

// essa função é chamada toda vez que é inserido
// algo no banco de dados - serve como confirmação
function nova_janela()
{
$janela = &new GtkWindow; //Instancia a classe GtkWindow e cria o objeto $janela
$janela->set_title('Aviso'); //Seta um título para a janela secundária

$janela->set_default_size(250,95); //Define o tamanho da janela
$janela->set_position (GTK_WIN_POS_CENTER); //Define a posição da janela, quando criada

$texto= &new GtkLabel('$total'); //Define um texto para a janela
$janela->add($texto); //Adiciona o objeto texto ao objeto janela

$rotulo=new GtkLabel("$total");
$janela->add($rotulo);

$janela->show_all(); //Mostra o objeto janela e seu conteúdo
}


// função para somar
function soma ()
{
global $entrada; // reaproveita o objeto $entrada do programa principal;
global $entrada2; // reaproveita o objeto $entrada2 do programa principal;

$v1 = $entrada->get_text(); // captura o valor do primeiro campo
$v2 = $entrada2->get_text(); // captura o valor do segundo campo

$total=$v1+$v2;
echo "$total";

$entrada->set_text(''); // esvazia o campo
$entrada2->set_text(''); // esvazia o campo
nova_janela(); // chama a função de confirmação
}

$janela = &new GtkWindow; // instancia a classe GtkWindow e cria o objeto $janela
$janela->set_title('Soma'); // define o título da janela principal
$janela->set_default_size(500,150); // define o tamanho da janela principal
$janela->set_position (GTK_WIN_POS_CENTER); // define a posição da janela principal
$janela->connect_object('destroy', 'destroy'); // chama a função destroy, quando o evento destroy é aberto.

$tabela = &new GtkTable(6,4); // cria uma tabela com 6 linhas e 4 colunas
$janela->add($tabela); // adiciona o objeto tabela ao objeto janela

$botao = &new GtkButton('Calcular'); // cria o objeto botão
$botao->connect_object ("clicked", "soma"); // chama a função armazena quando o evento clicked é aberto

$entrada = &new GtkEntry (); // cria o objeto caixa de texto

$entrada2 = &new GtkEntry (); // cria a segunda caixa de texto

$texto1 = &new GtkLabel ('Primeiro Número'); // cria um objeto label

$texto2 = &new GtkLabel ('Segundo Número'); // cria um segundo label

// define a posição dos objeto (Labels, caixa de textos e botão) dentro da tabela
$tabela->attach($texto1, 0, 1, 0, 1);
$tabela->attach($texto2, 0, 1, 2, 3);
$tabela->attach($entrada2, 2, 3, 2, 3);
$tabela->attach($entrada, 2, 3, 0, 1);
$tabela->attach($botao, 2, 3, 4, 5);

$janela->show_all(); // mostra a janela e seu conteúdo

Gtk::main(); // entra em loop para mostrar a aplicação
?>
Andre Paschoal
Re: Mostrar resultado
30 de August de 2004 às 05:15PM
A var. $total não é global, portanto quando vc passa o valor à ela na função soma() ela fica por lá mesmo. Ninguém mais no programa "enxerga" essa var.

Tente passar a var.$total como argumento para a função que cria a janela.

Ex.
....
nova_janela($total);
}

function nova_janela($sub)
{
$total = $sub;
....
Andre Paschoal
Re: Mostrar resultado
30 de August de 2004 às 05:15PM
A var. $total não é global, portanto quando vc passa o valor à ela na função soma() ela fica por lá mesmo. Ninguém mais no programa "enxerga" essa var.

Tente passar a var.$total como argumento para a função que cria a janela.

Ex.
....
nova_janela($total);
}

function nova_janela($sub)
{
$total = $sub;
....
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.