Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-06-2008
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 24
Paulao Va por buen camino
Noe facile quando no se habla bien.
Tengo 2 Form, Form1 y Form2. En el Form1 yo tengo mi classe TCalculadora(Ejemplo).
En Form2 yo la llamo y hago los calculos. En Form2, tengo 3 Edits para la entrada de datos y 4 botones(Soma, Sub, Multi y Divide). En este Form2, yo tengo que cargar mis variables que van a ser usada en el calculo. Entonces vamos a la implementacion de la classe asi:
Código Delphi [-]
TCalculadora = class
 public
  function soma(v1,v2:Integer):Integer;
 ...

function soma(v1,v2:Integer):Integer;
begin
 result := v1 + v2;
end;
Esto en Form1. En Form2 yo tengo la instancia asi:

Código Delphi [-]
var
 Form2: TForm;
 Calc : TCalculadora;
implementation
.....
procedure TForm1.btnSomaClick(Sender: TObject);
var
 vl1,vl2: Integer;
begin
 vl1 := StrToInt(Edit1.Text);
 vl2 := StrToInt(Edit2.Text);
 Edit3.Text := IntToStr(Calc.Soma(vl1,vl2));
end;

Mi gustaria de hacer, que los parametros que en Form2 son: vl1 y vl2 ya seria cargados en la declaracio da classe y no necesitaba hacer en Form2, de formas que en Form seria asi:
Código Delphi [-]
 Edit3.Text := IntToStr(Calc.Soma(V1,V2));
Yo no necesitaba de tener variables en este Form para hacer el calculo, yo ya pongava el valor en los edits y listo. Mi pregunta es: Hay como hacer? Es posible? Quedo mas claro?
Responder Con Cita
  #2  
Antiguo 03-06-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 26
maeyanes Va por buen camino
Hola...

Si te entendí bien podrías hacer algo como:

Código Delphi [-]
type
  TForm2 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    // demás componentes
  private
    function GetValor1: Double;
    function GetValor2: Double;
  public
    property Valor1: Double read GetValor1;
    property Valor2: Double read GetValor2;
  end;

implementation

functino TForm2.GetValor1: Double;
begin
  if Trim(Edit1.Text) <> '' then
    Result := StrToFloat(Edit1.Text)
  else
    Result := 0
end;

functino TForm2.GetValor2: Double;
begin
  if Trim(Edit2.Text) <> '' then
    Result := StrToFloat(Edit2.Text)
  else
    Result := 0
end;

procedure TForm2.btnSumaClick(Sender: TObject);
begin
  Edit3.Text := FloatToStr(Calc.Suma(Valor1, Valor2))
end;


Espero que el ejemplo te de una idea de como lo podrías hacer...


Saludos...
Responder Con Cita
  #3  
Antiguo 03-06-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 24
enecumene Va por buen camino
Paulao, se você tiver a dificuldade em falar o espanhol que você pode usar o traductore gratuitous na linha que está na rede mas, você pode a pôr em sua língua e talvez você eu posso traduzir em o mais possível.

Cumprimentos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #4  
Antiguo 03-06-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 28
Delphius Va camino a la fama
Veamos, entonces lo que buscas es que no se tengan que llamar a una función Suma con parámetros sino que estraiga los datos desde la propia clase?

¿Esto lo que buscas?:
Código Delphi [-]
Edit1.Text := IntToStr(Calc.Soma);

Para ello debes seguir el diseño que yo te aporté. Antes de llamar a Soma se necesita pasar de algún modo los valores a la clasy y que ésta los guarde. ¿Qué se necesita? Tener dos campos, sus respectivos métodos Get y Set y sus propiedades públicas.

En efecto esto:


Código Delphi [-]
TCalculadora = class
private
  // esto son los campos, variable auxiliares que guardarán los valores
  // de los operandos
  FOp1, FOp2: integer; //real... dependerá de lo que busques
  // luego van sus métodos Set y Get.
  procedure SetOp1(Value: integer);
  procedure SetOp2(Value: integer);
  function GetOp1: integer;
  function GetOp2: integer;
public
  // tus propiedades públicas
  property Op1: integer read GetOp1 write SetOp1;
  property Op2: integer read GetOp2 write SetOp2;
  // otros métodos
  function Soma: integer;
  function Resta: integer;
  ...
end;

De este modo, por ejemplo, cuando tu necesites almacenar el operando1, haces esto:
Código Delphi [-]
Calc.Op1 := StrToInt(Edit1.Text);

Internamente el compilador se encarga de llamar al método SetOp1. y queda guardada en FOp1 el valor adecuado.

Ahora sólo debe programarse a los métodos para leer dichos campos privados y hacer la operación necesaria:

Código Delphi [-]
function TCalculadora.Soma: integer;
begin
  result := FOp1 + FOp2;
end;

Es un diseño similar al que te ofrecí en el otro hilo.

¿Es esto lo que buscas?

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #5  
Antiguo 03-06-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 26
maeyanes Va por buen camino
Hola...

Cita:
Empezado por Delphius Ver Mensaje
¿Qué se necesita? Tener dos campos, sus respectivos métodos Get y Set y sus propiedades públicas.

En efecto esto:


Código Delphi [-]
TCalculadora = class
private
  // esto son los campos, variable auxiliares que guardarán los valores
  // de los operandos
  FOp1, FOp2: integer; //real... dependerá de lo que busques
  // luego van sus métodos Set y Get.
  procedure SetOp1(Value: integer);
  procedure SetOp2(Value: integer);
  function GetOp1: integer;
  function GetOp2: integer;
public
  // tus propiedades públicas
  property Op1: integer read GetOp1 write SetOp1;
  property Op2: integer read GetOp2 write SetOp2;
  // otros métodos
  function Soma: integer;
  function Resta: integer;
  ...
end;
Si al momento de asignar o leer un valor de una propiedad no se necesita hacer ningún tipo de operación o validación, no es necesario usar los métodos Get y Set. Se puede hacer simplemente algo como:

Código Delphi [-]
property Op1: Integer read FOp1 write FOp1;
property Op2: Integer read FOp2 write FOp2;


Saludos...
Responder Con Cita
  #6  
Antiguo 03-06-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 28
Delphius Va camino a la fama
Cita:
Empezado por maeyanes Ver Mensaje
Hola...



Si al momento de asignar o leer un valor de una propiedad no se necesita hacer ningún tipo de operación o validación, no es necesario usar los métodos Get y Set. Se puede hacer simplemente algo como:

Código Delphi [-]property Op1: Integer read FOp1 write FOp1;
property Op2: Integer read FOp2 write FOp2;



Saludos...
Si lo se amigo. Se que en ocasiones puede que sea innecesesario estos métodos. Más yo preferí comentarselo puesto que esto proviene de la idea de practicar POO y es normal encontrarse con estos métodos. Paulao redactó el tema original en este hilo.

Si Paulao está interesado en aprender los conceptos POO me parece bien hacerle comentar que el capítulo 6 de la Cara Oculta de Delphi 4 puede serle útil para comprender los conceptos básicos de POO con Delphi.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #7  
Antiguo 04-06-2008
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 24
Paulao Va por buen camino
Hola, tengo si interes en aprender POO y los mas fundamentales comandos. Yo quiero desde el comienzo si. Gracias por la ayuda de todos.
Responder Con Cita
  #8  
Antiguo 04-06-2008
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 24
Delfino Va por buen camino
Aqui puedes aprender paso a paso lo de la OOP en Delphi..
__________________
¿Microsoft? No, gracias..
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Otra duda con SQL paladincubano SQL 2 14-02-2008 16:07:18
Mysql: copiar los campos de una tabla de una base de datos a otra tabla de otra base? patriram MySQL 4 02-11-2007 17:00:24
otra de MDI pablo OOP 6 28-02-2005 04:42:34
date otra ves yhoho SQL 1 08-10-2004 12:54:40
Hola Otra Vez......... David J. Conexión con bases de datos 1 28-08-2003 12:12:53


La franja horaria es GMT +2. Ahora son las 01:40:56.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi