Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ayuda por favor... (https://www.clubdelphi.com/foros/showthread.php?t=52831)

BuRtOn 01-02-2008 05:06:48

Ayuda por favor...
 
:confused:, hola amigos, soy nuevo en cuanto al lengua delphi, solo llevo 2 dias programado en el, y necesito saber lo siguiente, tengo un programa con esta estructura:


Operaciones salir
suma
rest
mul
div


Inserta 1 numero: |________________|
Inserta 2 numero: |________________|

resultado
|conocer resltado|



trabaje menu, y statictext. edit, y botton, entonces inserto el primero y segundo numero le doy click en la operacion deseada, a la cual los submenus ya estan programados para que ejecuten las operaciones pertinentes, pero no logro imprimir el resultado en el boton, que es conocer resultado, como hago amigos ???, en cada operacion que realice tengo una variable llamada r, que es el reultado de cada operacion r=resultado...entonces como hago eso ????? coloque en el botton ShowMessage(floattostr(r)); y no me funciona, que mas le tengo que agregar ??por favor espero pronta respuesta, muchas gracias y comprendamen que soy pollo en esto...

poliburro 01-02-2008 05:10:09

Amigo, por favor lee la guiá de estilo.

http://www.clubdelphi.com/foros/guiaestilo.php

Neftali [Germán.Estévez] 01-02-2008 09:48:36

Te recomiendo al igual que poliburro que revises la Guía de estilo.
También que coloques títulos descriptivos los hilos; El texto "ayuda por favor..." no da mucha información de tu problema.

Ah, bienvenido al Club.

En cuanto al problema, estaría bien que colocaras algo de código que estás utilizando, porque no queda muy clara la explicación (al menos a mi no).
Intenta concretar el problema. Pregunta algo concreto, y si obtienes errores (como dices) es bueno que coloques qué error exactamente te está apareciendo; De otra forma es difícil ayudarte.

Un saludo.

PeterPunk 01-02-2008 12:03:51

Yo tampoco he entendido muy bien el problema, pero si tienes funciones que devuelven el resultado y quieres que éste se muestre como el texto de un botón, sería así:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  r: double;
begin
  r := 1/4;
  button1.Caption := FloatToStr(r);
end;

BuRtOn 01-02-2008 13:11:11

Insertar Impresiones a un Botton delphi 7.0
 
Saludos amigo, gracias punk por tu respuesta, pero lo que trato de hacer es tratar de insertar determinados datos para que se impriman en un botton, osea que inserte los numeros, el primero y el segundo voy al menu y selecciono la operacion deseada, ya sea suma,resta,division,multiplicacion, despues de seleccionar la operacion voy hacia el botton de resultado doy click sobre el y que me imprima el resultado....recordar que en el menu tengo programado cada operacion, por ejemplo asi tengo el de la suma:

procedure Tfrmsegundo.icoSumaClick(Sender: TObject);
var x,y,r1:real;
begin
x := strtofloat(lblEdit1.text);
y := strtofloat(lblEdit2.text);
r1 := (x+y);

end;

asi es con todas las otras operaciones solo que cambia el r1,por r2, asi sucesivamente, ahora lo que nesecito es que el botton me arroje el resultado amigo, eso es lo que no puedo hacer,mira como tengo el botton:

procedure Tfrmsegundo.Button1Click(Sender: TObject);
var r1,r2,r3,r4 :real;
begin
Button1.Caption := FloatToStr(r1);
Button1.Caption := FloatToStr(r2);
Button1.Caption := FloatToStr(r3);
Button1.Caption := FloatToStr(r4);
end;

end.

Gracias.

PeterPunk 01-02-2008 13:42:19

BuRtOn así lo que estás haciendo es que en cada procedimiento use su propia variable "r1" cuando éstas variables deberían ser globales para poder acceder desde distintos procedimientos. O sea que se deberían declarar en
Código Delphi [-]
implementation
{$R *.dfm}
var
  r1, r2, r3, r4: double;
cambié real por double, porque la primera está obsoleta.

De todas formas sería más lógico que cada operación que quieras realizar se ejecute como una función que ya devuelva el resultado, por ejemplo:
Código Delphi [-]
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    function Suma: string;
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
function Tform1.Suma: string;
begin
  Result := FloatToStr(StrToFloat(Edit1.Text) + StrToFloat(Edit2.Text));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  label1.Caption:= Suma; //con esto se muestra el resultado en una etiqueta
  ShowMessage(Suma); //con esto se muestra el resultado en un mensaje
end;
end.
Ésto mostraría la suma de las cajas de texto tanto en una etiqueta como en un mensaje.

BuRtOn 01-02-2008 14:56:48

Mensaeje botton delphi 7.0
 
Gracias punk, se nota que heres un duro en delphi, pero me puedes decir la fomita mas sencilla, osea como lo estoy haciendo,que debo cambiar ??, es k soy pollo en este lenguaje solo llevo 2 dias programando en delphi, y aun no veo funciones amigo, si vez...pero mas o menos entendi lo que me querias decir...pero que debo hacerle a mi programita, tal como tu lo vez, que le cambio o que le agrego, te agradeceria mucho amigo, gracias por tu tiempo y paseincia...

ContraVeneno 01-02-2008 15:51:42

A ver... solo porque tienes dos días programando....

Lo mejor que puedes hacer, es tomar un buen libro de delphi. Hay mucho en el mercado, a estas alturas, cualquiera te serviría. Incluso, un libro es mucho mejor que los maestros que puedas tener en la escuela. En fin.

Tienes dos TEdit, un Tlabel (para el resultado :eek:) y las operaciones las haces en el evento onclick de un menu...

lo más fácil:
Código Delphi [-]
procedure Tfrmsegundo.icoSumaClick(Sender: TObject);
begin
 label1.caption := strtofloat(Edit1.text) + strtofloat(Edit2.text);
 Suma:= strtofloat(Edit1.text) + strtofloat(Edit2.text);
end;

suma es variable global, lo mismo para la resta, división y demás operaciones.

Ahora lo de tu botón, que no entiendo la lógica de lo que quieres hacer y no entiendo para que poner un resultado en un "caption" de un botón, pero en fin...

Código Delphi [-]
procedure Tfrmsegundo.Button1Click(Sender: TObject);
begin
 Button1.Caption :='Suma = ' + Suma + ', Resta = ' + Resta; //etc
end;
end.

Vamos a ver ahora...
le diste un nombre el edit "lblEdit1"; eso no tendría sentido, una cosa es un TEdit y otra cosa es un TLabel. El Prefijo del TEdit generalmente es "edt" y el prefijo de un TLabel generalmente es "lbl", pero que a un TEdit lo llames "lbl..." no tiene sentido.

Lo correcto sería, por ejemplo: "edtOperador1".

Pídele a tu profesor que les explique la diferencia entre variables locales y variables globales.

Y vamos, que no intento ser grosero, ni muchos menos, pero por la forma en que escribes y planteas el problema, a mi me da la impresión de nunca has leído nada sobre delphi ni programación y al parecer, o tu profesor es bastante malo, o de plano no le pusiste atención.

Saludos

felipe88 01-02-2008 16:18:57

Coincido en lo que dice ContraVeneno, yañado en que deberian conocer primero bien los conceptos de la programacion y mas aun la POO (Programacion Orientada a Objetos), en realidad tu "tarea" es muy facil :rolleyes:...

Este codigo de ContraVeneno es muy logico
Código Delphi [-]
procedure Tfrmsegundo.icoSumaClick(Sender: TObject);
begin
  label1.caption := strtofloat(Edit1.text) + strtofloat(Edit2.text); 
  Suma:= strtofloat(Edit1.text) + strtofloat(Edit2.text);
end;
Deberia fucionarte y evita complicarte... Resultados en un boton :confused::rolleyes:

BuRtOn 01-02-2008 16:26:54

Botton delphi
 
Gracias amigos, y no es eso, solo que el codigo que les mostre lo hicimos con el profesor en clase y lo del botton.caption, fue por que trate guiarme por el codigo que me dio peterpunk, y solo llevo pocos dias en delphi, aparte de eso, lo estoy tratando de entender a la logica, por que aun no tengo dinero para comprar un libro de programacion ya que son muy caros :(, y pues si ya entendiii el codigo que me envio contraveneno, si es mas logico, y todo es que igual solo nos pedian realizar las operaciones y mostrar un resultado con el comando ShowMessage y ya, pero yo queria algo mejorcito, imprimirlo en un botton, entonces por eso pregunte, por que ustedes son antiguos en esto, o por lo menos no tienen 2 dias como yo, si ven, y pues hasta ahora me estoy acostumbrando a los terminos en delphi, pero enserio gracias por comprender, y ayudarme...y contraveneno ese codigo ta muy bien, solo que e visto la parte grafica de delphi y el poco codigo que les mostre , menos el del botton....bueno muchachos voy a programarlo asi haber como me va...de nuevo gracias...

felipe88 01-02-2008 16:31:12

Date un pason por el ftp del club... alli hay muy buenos tutoriales y manuales completos, te recomiendo la Cara Oculta de Delphi 4...

Saludos

Delphius 01-02-2008 16:32:42

Cita:

Empezado por BuRtOn (Mensaje 262669)
Gracias amigos, y no es eso, solo que el codigo que les mostre lo hicimos con el profesor en clase y lo del botton.caption, fue por que trate guiarme por el codigo que me dio peterpunk, y solo llevo pocos dias en delphi, aparte de eso, lo estoy tratando de entender a la logica, por que aun no tengo dinero para comprar un libro de programacion ya que son muy caros :(, y pues si ya entendiii el codigo que me envio contraveneno, si es mas logico, y todo es que igual solo nos pedian realizar las operaciones y mostrar un resultado con el comando ShowMessage y ya, pero yo queria algo mejorcito, imprimirlo en un botton, entonces por eso pregunte, por que ustedes son antiguos en esto, o por lo menos no tienen 2 dias como yo, si ven, y pues hasta ahora me estoy acostumbrando a los terminos en delphi, pero enserio gracias por comprender, y ayudarme...y contraveneno ese codigo ta muy bien, solo que e visto la parte grafica de delphi y el poco codigo que les mostre , menos el del botton....bueno muchachos voy a programarlo asi haber como me va...de nuevo gracias...

Hola BuRtOn,
Lo que yo no me canso de repetir es: leer la Cara Oculta de Delphi 4 (pdf), ir la sección FTP y a la Wiki del club. En dichas secciones encontrarás material con el cual empezar.

Saludos,

BuRtOn 01-02-2008 16:33:46

Declarar variable
 
El codigo que me da contraveneno, la variable suma, la declaro como float ??
osea var suma:float; o no es necesaria declarar variables ?


gracias....

felipe88 01-02-2008 16:42:35

Cita:

Empezado por ContraVeneno (Mensaje 262658)
suma es variable global, lo mismo para la resta, división y demás operaciones.

Si debes declararla, y si seria float...

BuRtOn 01-02-2008 16:47:21

Lbel1 delphi 7.0
 
Gracias amigo, ya estoy codificanndo todo, ahora tiene mas logicam jeje, esto es parecido cuando uno maneja archivos en c++, me refiero a las instrucciones como el label.caption, pero lo que no logro entender es que contraveneno coloco:

label1.caption := strtofloat(Edit1.text) + strtofloat(Edit2.text);

Ese label1.caption , para que lo utilizo? si lo que estoy utilizando es estatictext, que es para colocar el mensaje de: Inserte el primer numero, y alfrente de ese statictext si coloco el edit1...el resto si lo entendi, solo me falta eso amigo, y que pena molestar tanto, pero preguntando y mirando es que se aprende, gracias...

felipe88 01-02-2008 17:03:51

Cita:

Empezado por BuRtOn (Mensaje 262685)
Gracias amigo, ya estoy codificanndo todo, ahora tiene mas logicam jeje, esto es parecido cuando uno maneja archivos en c++, me refiero a las instrucciones como el label.caption, pero lo que no logro entender es que contraveneno coloco:

label1.caption := strtofloat(Edit1.text) + strtofloat(Edit2.text);

Ese label1.caption , para que lo utilizo? si lo que estoy utilizando es estatictext, que es para colocar el mensaje de: Inserte el primer numero, y alfrente de ese statictext si coloco el edit1...el resto si lo entendi, solo me falta eso amigo, y que pena molestar tanto, pero preguntando y mirando es que se aprende, gracias...

El lablel1 que el usa, es en el cual arroja el resultado; solo que el no uso variables en este caso y solo hizo directamente las operaciones. El StaticText no lo conosco muy bien pero te aconsejo usar los label o mirar si este componente tiene alguna propiedad text o caption...

ixMike 01-02-2008 17:16:21

Cita:

Empezado por felipe88 (Mensaje 262694)
El lablel1 que el usa, es en el cual arroja el resultado; solo que el no uso variables en este caso y solo hizo directamente las operaciones. El StaticText no lo conosco muy bien pero te aconsejo usar los label o mirar si este componente tiene alguna propiedad text o caption...

Hola, felipe88. El StaticText es como un Label, pero mientras el Label está derivado de TGraphicControl, el StaticText lo hace de TWinControl, con lo que cambian algunas cosas. Por ejemplo, un Label nunca quedará por encima de un TButton, por mucho BringToFront que hagas, mientras que el StaticText sí puede hacerlo.

Salu2.

felipe88 01-02-2008 17:27:31

Cita:

Empezado por ixMike (Mensaje 262708)
Hola, felipe88. El StaticText es como un Label, pero mientras el Label está derivado de TGraphicControl, el StaticText lo hace de TWinControl, con lo que cambian algunas cosas. Por ejemplo, un Label nunca quedará por encima de un TButton, por mucho BringToFront que hagas, mientras que el StaticText sí puede hacerlo.

Salu2.

Eso no lo sabia... Gracias por el dato ixMike

Cada dia se aprende algo nuevo :)

egostar 01-02-2008 17:36:57

Bueno aquí hay dos cosas que me parece correcto comentar.

Código Delphi [-]
//Esta sentencia está mal:
label1.caption := strtofloat(Edit1.text) + strtofloat(Edit2.text);
//Debe de hacerse esto:
label1.caption := FloattoStr(strtofloat(Edit1.text) + strtofloat(Edit2.text));

//Suma no es un tipo Float, hasta donde se debe declararse como Real.
Var
Suma: Real;

Suma:= strtofloat(Edit1.text) + strtofloat(Edit2.text);

Salud OS

ContraVeneno 01-02-2008 19:22:35

shale, egostar... era plan con maña, para ver hasta cuando se daba cuenta del error :D

Ya me echaste a perder todo mi plan maquiavélico. :cool:

felipe88 01-02-2008 19:33:27

Oops... muy observador, y si es real no float :p; bueno como dije:

Cada dia se aprende algo nuevo... Hoy: Ser mas observador :)

BuRtOn 02-02-2008 02:24:26

Implementar el ProgressBar en delphi 7.0
 
Saludos amigos, gracias por ayudarmen, pude terminar mi pequeño programita con exito, ahora me gustaria saber si alguien sabe el codigo, para hacer dinamico el progressbar, y asi quede animado, para simular que esta cargando un programa o lo que sea....

Posdata: Que no sea el ejemplo que viene incluido en delphi 7.0, es que no lo entiendo por que soy pollo....algo que sea sencillo de entender....

Gracias por su atencion prestada.y asi me quedo el codigo de mi programita.

Código Delphi [-]
unit ufrmsegundo;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, Mask;
type
Tfrmsegundo = class(TForm)
MainMenu1: TMainMenu;
Operaciones1: TMenuItem;
icoSuma: TMenuItem;
icoResta: TMenuItem;
icoMultiplicacion: TMenuItem;
icoDivision: TMenuItem;
icoSalir: TMenuItem;
StaticText1: TStaticText;
StaticText2: TStaticText;
lblEdit1: TEdit;
lblEdit2: TEdit;
StaticText3: TStaticText;
Button1: TButton;
Help1: TMenuItem;
About1: TMenuItem;
procedure icoSumaClick(Sender: TObject);
procedure icoRestaClick(Sender: TObject);
procedure icoMultiplicacionClick(Sender: TObject);
procedure icoDivisionClick(Sender: TObject);
procedure icoSalirClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure About1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmsegundo: Tfrmsegundo;
resul : double; // Variable global y esto era mi gran duda.

implementation
{$R *.dfm}

procedure Tfrmsegundo.icoSumaClick(Sender: TObject);
var x,y :real;
begin
x := strtofloat(lblEdit1.text);
y := strtofloat(lblEdit2.text);
resul := (x+y);

end;

procedure Tfrmsegundo.icoRestaClick(Sender: TObject);
var x,y : real;
begin
x := strtofloat(lblEdit1.text);
y := strtofloat(lblEdit2.text);
resul := (x-y);

end;

procedure Tfrmsegundo.icoMultiplicacionClick(Sender: TObject);
var x,y :real;
begin
x := strtofloat(lblEdit1.text);
y := strtofloat(lblEdit2.text);
resul := (x*y);

end;

procedure Tfrmsegundo.icoDivisionClick(Sender: TObject);
var x,y : real;

begin

x := strtofloat(lblEdit1.text);
y := strtofloat(lblEdit2.text);
resul := (x/y);

end;

procedure Tfrmsegundo.icoSalirClick(Sender: TObject);
begin
Application.Terminate;
end;

procedure Tfrmsegundo.Button1Click(Sender: TObject);
begin
ShowMessage(FloatToStr(resul));
end;

procedure Tfrmsegundo.About1Click(Sender: TObject);
begin
ShowMessage('Creado Por: Ing. John Quintero / / Elaborado en: Delphi 7.0!');
end;
end.

:D

Delphius 02-02-2008 02:29:06

Cita:

Empezado por BuRtOn (Mensaje 262936)
Saludos amigos, gracias por ayudarmen, pude terminar mi pequeño programita con exito, ahora me gustaria saber si alguien sabe el codigo, para hacer dinamico el progressbar, y asi quede animado, para simular que esta cargando un programa o lo que sea....

Posdata: Que no sea el ejemplo que viene incluido en delphi 7.0, es que no lo entiendo por que soy pollo....algo que sea sencillo de entender....

¿Qué es lo que deseas hacer con el ProgressBar? ¿Una especie de pantalla que muestre el proceso? ¿Porque no usas el buscador? Hay muchos hilos en donde se ha tratado el tema.

Saludos,

ContraVeneno 02-02-2008 16:39:24

argh, veo con tristeza que ninguna de mis recomendaciones te sirvieron... :(

BuRtOn 02-02-2008 17:24:46

Delphi
 
Jejee lo dices por mi contraveneno ?, si man por ti fue que pude pensar mejor, y plantear la idea de como era el programita, gracias men, enserio...:)..y pues lo tro que pregunte fue que si alguien tiene que me pase un codigo completico para el porgressbar, como el que sale cuando esta iniciando windowx xp....es que es para adornar mi programita, y para analizarlo, solo se que hay un maximo, y un minimo, y que son bleanos, tambien ilncluye un bucle, pero el resto no tengo ni idea de la estructura ni nda de esas cosas...ojala puedeas ayudarme o darme una manito con eso, gracias amigos....

ContraVeneno 02-02-2008 17:33:51

Cita:

Empezado por BuRtOn (Mensaje 262998)
Jejee lo dices por mi contraveneno ?...

si lo digo por ti... pero me refería a esto:
Código Delphi [-]
lblEdit1: TEdit;
pones prefijo de Label cuando es un Edit
Código Delphi [-]
procedure Tfrmsegundo.icoRestaClick(Sender: TObject);
var x,y : real;
begin
x := strtofloat(lblEdit1.text);
y := strtofloat(lblEdit2.text);
resul := (x-y);

end;
Utilizas variables que no son necesarias. Lo único que hacen es estorbar y ocupar memoria.
Código Delphi [-]
procedure Tfrmsegundo.icoRestaClick(Sender: TObject);
begin
 Resul := strtofloat(edtOperando1.text) - strtofloat(edtOperando2.text));
end;

Cita:

Empezado por BuRtOn (Mensaje 262998)
...ojala puedeas ayudarme o darme una manito con eso....

No, no, yo no le hago a esas cochinadas :D....

BuRtOn 02-02-2008 18:27:08

Delphi
 
Jajaja, no contraveneno, solo lo hice asi, por que hasta ahora empece parcero, pero tambien lo tengo hecho transformando los flotantes a strin, solo que me toca exponer mi programita en clase, y si me pongo a explicarles como tu me dijiste de seguro se van a perder, por que no llevamos si no pocos dias programando, y de seguro toca comenzar desde lo mas suave, para ir adquiriendo conocimiento, no puedo embutirles todo de una sola vez, cada cosa a su tiempo...igual gracias amigo, por que me aclaraste muchas cosas...:D

egostar 02-02-2008 20:03:35

Cita:

Empezado por ContraVeneno (Mensaje 262758)
shale, egostar... era plan con maña, para ver hasta cuando se daba cuenta del error :D

Ya me echaste a perder todo mi plan maquiavélico. :cool:

A que la viejita, pues no mandas señales de humo estimadisimo, perdón, no lo vuelvo a hacer..... :rolleyes: (tal vez) :D:D

Cita:

Empezado por felipe88 (Mensaje 262767)
Oops... muy observador, y si es real no float :p; bueno como dije:

Cada dia se aprende algo nuevo... Hoy: Ser mas observador :)

Asi es amigo felipe88, hay que andarse con cuidado, aqui el que no cae, resbala y no perdonan una :D:D

Salud OS

Delphius 02-02-2008 20:21:02

Cita:

Empezado por egostar (Mensaje 263030)
Asi es amigo felipe88, hay que andarse con cuidado, aqui el que no cae, resbala y no perdonan una :D:D

Ummm de pronto he sentido que hay allí ciertas experiencias del pasado que te atormentan casi a diario? O no Egostar?:D:)

Saludos,

Neftali [Germán.Estévez] 04-02-2008 10:06:33

Cita:

Empezado por BuRtOn (Mensaje 262669)
...lo estoy tratando de entender a la logica, por que aun no tengo dinero para comprar un libro de programacion ya que son muy caros

Hay muchos manuales por Internet que puedes revisar.
Aquí tienes uno de nivel muy básico y muy bien explicado.

BuRtOn 05-02-2008 02:24:21

Imprimir Label
 
Hola amigos, como hago para imprimir en un label...por ejemplo tengo la variable llamada resultado de tipo entero...como haria pa imprimirla....gracias por ayudarme siempre amigos gracias...:D

egostar 05-02-2008 02:44:17

Cita:

Empezado por Delphius (Mensaje 263033)
Ummm de pronto he sentido que hay allí ciertas experiencias del pasado que te atormentan casi a diario? O no Egostar?:D:)

Saludos,

No pues la mula no era arisca, la hicieron a palos..... :D:D:D

Salud OS

Robert01 05-02-2008 03:34:20

¿querés imprimir una variable entera en el label?

supongo que se hace así:

Código Delphi [-]
label1.caption:=intToStr(resultado);

Salud OS

BuRtOn 05-02-2008 03:41:52

Programa delphi ciclo if
 
Gracias amigo si es asi...pero es que hasta ahora estoy manejando mi primer ciclo y miren el programa que me toca hacer, es una bobada pero tengo errores y me estreza....este es el programa que me piden:


Construya una aplicación que capture dos datos enteros(VyNUM)

y muestre en un labe el resultado de la siguiente funcion:


función:

nf(V) = 100*V si NUM =1
nf(V) = 100*Vsi NUM = 2;
nf(V) = 100/V si NUM = 3,
para cualquier otro valor de NUM el valor de la función es 0.

Delphius 05-02-2008 03:58:49

Cita:

Empezado por BuRtOn (Mensaje 263423)
Gracias amigo si es asi...pero es que hasta ahora estoy manejando mi primer ciclo y miren el programa que me toca hacer, es una bobada pero tengo errores y me estreza....este es el programa que me piden:


Construya una aplicación que capture dos datos enteros(VyNUM)

y muestre en un labe el resultado de la siguiente funcion:


función:

nf(V) = 100*V si NUM =1
nf(V) = 100*Vsi NUM = 2;
nf(V) = 100/V si NUM = 3,
para cualquier otro valor de NUM el valor de la función es 0.

¿Y la pregunta es?:confused: ¿Haz estado probando? ¿En que avanzaste? ¿que errores?¿Porqué no nos mencionas dichos errores? ¿Porque no nos muestra el código?

Tal como dices, es una tontera... y como recién te estas iniciando te pido que por favor tomes mas en serio esto. A modo en que pones el texto, quieriendo resaltar el problema, más no asi los errores que haz tenido... das pie que surjan malinterpretaciones. Sobre todo esta: ¡Clubdelphi no hace tareas!

Por favor, te invito a leer nuevamente la guia de estilo.

Saludos,

BuRtOn 05-02-2008 04:44:46

Codigo if delphi
 
Que pena delphius, pero yo tomo la seriedad de las cosas, lo que pasa es que no soy antiguo ni en el club ni soy maestro en delphi, y que pena por no haber redactado bien...y escribi el enunciado por que es una base de lo que me estan pidiendo, no para que me hagas la tares, creeme amigo no soy parasito para estar diciendole a las personas que hagan mis cosas...tratare de explicar lo que necesito....esto es lo que llevo del codigo:


Código Delphi [-]unit ufrmcuarto;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
Tfrmcuarto = class(TForm)
StaticText2: TStaticText;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
StaticText1: TStaticText;
procedure Edit1Change(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure Label1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmcuarto: Tfrmcuarto;
resultado: integer;
implementation
{$R *.dfm}
procedure Tfrmcuarto.Edit1Change(Sender: TObject);
var num : integer;
begin
num := strtoint(Edit1.Text);
end;
procedure Tfrmcuarto.Edit2Change(Sender: TObject);
var v: integer;
begin
v := strtoint(Edit2.Text);
end;
procedure Tfrmcuarto.Label1Click(Sender: TObject);
begin
Label1.Caption := strtoint(resultado);
If (strtoint(Edit1.Text) := 1) then
resultado := (100) * strtoint(Edit2.Text);
Else
ShowMessage('prueba');

end;
end.





Bueno el problema es que no se como manejar bien el if, ya que solo me dieron la estructura general...el hecho es que como pueden ver en el codigo recivo los datos por medio de Edit. Me dicen que si num = 1 o num = 2 ejecuto una funcion que es esta:

f(V) = 100*V si NUM =1

f(V) = 100*Vsi NUM = 2


y si num es diferente a 1 o 2 la funcion va ser 0 inmediatamente, y v es el segundo edit, ese dato lo implementa el usuario, y se ejecutara en caso de que el programa desarrolle cualquier funcion.

Lo que no entiendo es que si estoy manejando mal algo en el programa me ayuden a ver que es ?....y me digan como es la forma correcta....mi problema suerge en el manejo del IF y de los edit...

OBSERVACION: Tengo a resultado en una variable global tipo entero, para poderlo imprimir en el Label.

Delphius 05-02-2008 04:58:18

¿Podrías por favor editar el mensaje y usar las etiquetas [ DELPHI ] [ /DELPHI ] (sin espacios)?

Esto hará que el código sea más legible.
Tengo una duda respecto al código que tienes... ¿Porqué haces que al presionar clic en el label ejecute la operación? Sería más indicado emplear el evento OnClick de un botón.

Por el tema del if, sería más correcto emplear un CASE. Su sintaxis es como sigue:

Código Delphi [-]
CASE variable of:
1: que hacer si es 1
2: que hacer si es 2
3: que hacer si es 3
...
n: que hacer si es n
else que hacer.... // en caso de no cumplir ningun valor. Opcional
end  // la sentencia case debe finalizar con end

Con esto ya tienes para arreglar un poco más tu código.
Perdona si soy duro... es que pedimos que las personas que preguntan se interioricen y participen del problema. Dijiste que te lo tomas en serio, pero es que si te lo tomaras más en serio, hubieras expuesto los detalles y los errores en vez de esperar a que los adinivinemos.

Prueba nuevamente siguiendo el case, no estás tan errado.

Saludos,

BuRtOn 05-02-2008 05:15:48

If delphi
 
Ok, entiendo delphius, si se ve mas facil por el switch que utilizas, estaba pensando en hacerlo asi, y lo hare como me dijiste, pero haber si va asi la estructura, tu me escribiste esto:



Código Delphi [-]
[CASE variable of: //variable seria n ? osea lo que inserto en mi caso fue num ?
1: que hacer si es 1
2: que hacer si es 2 // aqui que proceso hago ?
3: que hacer si es 3
...n: que hacer si es n //como asi que que hacer si es n ? aqui iria los procesos de las funciones..osea las operaciones?? o que va ?
 
else que hacer.... // aqui podria imprimir algo en un showmessage('no puedes hacer la funcion')
 
end // la sentencia case debe finalizar con end
 
Y para finalizar, como hago para imprimir en el Label1 ??? coloque resultado como variable global tipo entero para guardar los resultados y poderlos imprimir en el label asi:
 
label1.caption:=intToStr(resultado);

que pena amigo preguntar tanto, pero es lo que no entiendo, y yo digo las cosas que no entiendo....y que tendria que modificar en mi codifo si lo hago por if, es que es un trabajo de clase, y tu me entiendes me toca seguir la rutina del profesor, ya que estamos viendo especificamente el if, pues aun no lo ha explicado pero me gusta adelantarme por mis propios medios....garcais delphius y que pena molestar tanto...:p

Delphius 05-02-2008 05:30:15

BuRtOn,
Respondiendo a tu duda, variable debe ser reemplaza por aquella variable que tu desees evaluar. En tu caso NUM.

¿Que va después de los dos puntos? Las sentencias que deben hacerse en caso de que variable cumpla dicho valor.

por ejemplo:

Código Delphi [-]
case Nota of:
1: showMessage('Burro');
10: begin
       //Nota el begin - end... se van a ejecutar muchas lineas...
       showMessage('Genio');
       Beca := PedirBeca(Nota);
     end;
end; // fin case

El ejemplo es simple, si Nota tiene el valor 1, mostrará en pantalla un cuadro de díalogo con el mensaje Burro. En cambio si Nota tiene el valor 10, mostrará Genio, y una vez confirmado el mensaje (botón aceptar), se ejecutará la función (tema que verás más adelante) PedirBeca que recibe como parámetro la variable Nota, y guardará el resultado esperado en alguna variable Beca. Si Nota tiene cualquier otro valor que no sea 1 o 10... no se hace nada.


Si te resulta cómodo usar IFs:

Código Delphi [-]
if Nota = 1
  then begin
            ShowMessage('Burro'); 
         end
  else begin
          if Nota = 10
             then begin
                      //.... sentencias...
                    end
             else // sentencias...
        end;

Notarás que es más engorroso el proceso... en fin... usa lo que te guste.

El valor resultado lo estás mostrando bien.

Saludos,

ContraVeneno 05-02-2008 15:56:13

Cita:

Empezado por BuRtOn (Mensaje 263429)
Bueno el problema es que no se como manejar bien el if, ya que solo me dieron la estructura general...

:confused::eek::confused: Me sorprende mucho porque un "IF" es la estructura más simple y sencilla de cualquier lenguaje de programación; si tienes problemas con un "IF", tienes muchos y muy serios problemas.

O te estas equivocando de carrera, o de plano tu profe es muy malo o no se que pensar...

Un libro Burton, lee un libro...


La franja horaria es GMT +2. Ahora son las 17:55:07.

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