Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   tengo un error con un programa usando array (https://www.clubdelphi.com/foros/showthread.php?t=83101)

frankmanuel06 10-05-2013 21:23:42

tengo un error con un programa usando array
 
saludos! mi nombre es frank y, tengo un error en un programa que estaba haciendo usando los array, bueno el codigo es el siguiente:

Código Delphi [-]
unit tvendedor_Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    txtcodigo: TEdit;
    Label2: TLabel;
    txtnombre: TEdit;
    Label3: TLabel;
    txtsueldo: TEdit;
    Label4: TLabel;
    txtcomision: TEdit;
    Guardar: TButton;
    Imprimir: TButton;
    procedure txtcodigoKeyPress(Sender: TObject; var Key: Char);
    procedure GuardarClick(Sender: TObject);
    procedure txtsueldoChange(Sender: TObject);
    procedure ImprimirClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
  Tvendedor = Record
  codigo:integer;
  nombre:string;
  sueldo:double;
  comision:double;
  end;

var
  Form1: TForm1;
  vendedores:array[1..3] of Tvendedor;

implementation

{$R *.dfm}

procedure TForm1.txtcodigoKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['1'..'3',#8]) then
key:=#0;
end;

procedure TForm1.GuardarClick(Sender: TObject);
begin
vendedores[strtoint(txtcodigo.text)].codigo:=strtoint(txtcodigo.text);
vendedores[strtoint(txtcodigo.text)].nombre:=txtnombre.text;
vendedores[strtoint(txtcodigo.text)].sueldo:=strtofloat(txtsueldo.text);
vendedores[strtoint(txtcodigo.text)].comision:=strtofloat(txtsueldo.text)*0.10;

txtcodigo.text:='';
txtnombre.text:='';
txtsueldo.text:='';
txtcomision.text:='';
end;

procedure TForm1.txtsueldoChange(Sender: TObject);
begin
if (txtsueldo.text<>'') then
txtcomision:=floattostr(strtofloat(txtsueldo.text)*0.10); //aqui es que me da error

end;
procedure TForm1.ImprimirClick(Sender: TObject);
var
cont:integer;
begin
for cont:1 to 3 do
showmessage(inttostr(vendedores[cont].codigo+'    '+vendedores[cont].nombre+'   '+floattostr(vendedores[cont].sueldo)+'   '+floattostr(vendedores[cont].comision));
 End;

end;

End.

bueno gracias de antemano y espero me ayuden :) .

Casimiro Notevi 10-05-2013 21:34:44

Y el error es....................... :confused:

frankmanuel06 10-05-2013 21:52:20

Cita:

Empezado por Casimiro Notevi (Mensaje 460256)
Y el error es.......................


donde esta en rojo es donde esta el error nose porque
me dice
[Error] tvendedor_Unit1.pas(67): Incompatible types: 'TEdit' and 'String'
[Error] tvendedor_Unit1.pas(74): ':=' expected but ':' found
[Error] tvendedor_Unit1.pas(75): Incompatible types: 'String' and 'Integer'
[Error] tvendedor_Unit1.pas(75): ')' expected but ';' found
[Error] tvendedor_Unit1.pas(78): '.' expected but ';' found
[Fatal Error] tvendedor_Project1.dpr(5): Could not compile used unit 'tvendedor_Unit1.pas'

todo eso me dice T-T saludos!

ecfisa 10-05-2013 22:06:23

Hola frankmanuel06.

El código donde comentaste el error debería ser:
Código Delphi [-]
procedure TForm1.txtSueldoChange(Sender: TObject);
begin
  if (txtsueldo.text<>'') then
   txtcomision.Text := floattostr(strtofloat(txtsueldo.text)*0.10);
end;

Aunque mas seguro sería:
Código Delphi [-]
procedure TForm1.txtSueldoChange(Sender: TObject);
var
  v: Double;
begin
  if TryStrToFloat(txtSueldo.Text,v) then
    txtComision.Text := FloatToStr(v * 0.10);
end;

Saludos :)

frankmanuel06 10-05-2013 22:14:01

muchas gracias ecfisa, pero ahora me da error en el showmessage en donde esta marcado en rojo.
Código Delphi [-]
procedure TForm1.ImprimirClick(Sender: TObject);
var
cont:integer;
begin
for cont:=1 to 3 do
showmessage(inttostr(vendedores[cont].codigo+'    '+vendedores[cont].nombre+'   '+floattostr(vendedores[cont].sueldo)+'   '+floattostr(vendedores[cont].comision));
 End;

end;

End.


saludos cordiales!

ecfisa 10-05-2013 22:19:08

Hola.

Código Delphi [-]
                                                          
  showmessage(inttostr( vendedores[cont].codigo ) +'    '+
              vendedores[cont].nombre +'   '+
              floattostr(vendedores[cont].sueldo) +'   '+
              floattostr(vendedores[cont].comision));

Saludos. :)

frankmanuel06 10-05-2013 22:24:16

Gracias por toda la ayuda ecfisa me sirvio de mucho.

Saludos! :D

cloayza 10-05-2013 22:34:48

Cita:

Empezado por frankmanuel06 (Mensaje 460262)
muchas gracias ecfisa, pero ahora me da error en el showmessage en donde esta marcado en rojo.
Código Delphi [-]
procedure TForm1.ImprimirClick(Sender: TObject);
var
cont:integer;
begin
for cont:=1 to 3 do
showmessage(inttostr(vendedores[cont].codigo+'    '+vendedores[cont].nombre+'   '+floattostr(vendedores[cont].sueldo)+'   '+floattostr(vendedores[cont].comision));
 End;
end;
End.
saludos cordiales!

No será mucha comodidad...:mad::mad::mad:

Creo que algunas veces se sobrepasan los límites...

frankmanuel06 10-05-2013 22:42:13

Cita:

Empezado por cloayza (Mensaje 460267)
No será mucha comodidad...:(:(:(

Creo que algunas veces se sobrepasan los límites...

muchas gracias pero ya lo habia echo pero como quiera graciassssss :D :)

saludos!


La franja horaria es GMT +2. Ahora son las 02:49:26.

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