Delphi - error

 
Vista:

error

Publicado por inti (4 intervenciones) el 27/08/2005 05:03:10
holas como estan
queria hacer una pregunta y es q es lo q falla por q me sale el error"left side cannot be asigned" en el evento on key down al parecer es por la constante pero el q me dio el codigo le corre, o q podria corregir

PD:pego todo el codigo para ver si me he equivocao en otro lao, el programita tendria q ser un avioncito q se pasea por ahi pero no va¬¬

unit fAvion;

interface

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

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);

private
Izquierda: Tbitmap;
Derecha: Tbitmap;
Arriba: Tbitmap;
Abajo: Tbitmap;
public
{ Public declarations }
end;

var
Form1: TForm1;


implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
form1.brush.bitmap:=tbitmap.create;
form1.brush.bitmap.loadfromfile('C:\Documents and Settings\personal\Mis documentos\SIS101\luna.bmp');
Izquierda:=tbitmap.create;
Izquierda.loadfromfile('C:\Documents and Settings\personal\Mis documentos\SIS101\Selección\case\Ejemplo3\Izquierda.bmp');
Izquierda.transparent:=true;
Izquierda.transparentcolor:=clwhite;
Derecha:=tbitmap.create;
Derecha.loadfromfile('C:\Documents and Settings\personal\Mis documentos\SIS101\Selección\case\Ejemplo3\Derecha.bmp');
Derecha.transparent:=true;
Derecha.transparentcolor:=clwhite;
Arriba:=tbitmap.create;
Arriba.loadfromfile('C:\Documents and Settings\personal\Mis documentos\SIS101\Selección\case\Ejemplo3\Arriba.bmp');
Arriba.transparent:=true;
Arriba.transparentcolor:=clwhite;
Abajo:=tbitmap.create;
Abajo.loadfromfile('C:\Documents and Settings\personal\Mis documentos\SIS101\Selección\case\Ejemplo3\Abajo.bmp');
Abajo.transparent:=true;
Abajo.transparentcolor:=clwhite;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Izquierda.free;
Derecha.free;
Arriba.free;
Abajo.free;
form1.brush.bitmap.free;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
const x:integer=0; y:integer=0;
dx:integer=5; dy:integer=5;
begin
if (ssCtrl in Shift) and (Key=VK_HOME) then
begin
Form1.Repaint;
x:=0;
y:=0;
form1.canvas.draw(x,y,Derecha);
end
else
case Key of
VK_LEFT:
if x>4 then
begin
form1.repaint;
x:=x-dx;
form1.canvas.draw(x,y,Izquierda)
end
else
Beep;
VK_RIGHT:
if x<(form1.clientwidth-Derecha.width-dx) then
begin
form1.repaint;
x:=x+dx;
form1.canvas.draw(x,y,Derecha);
end
else
beep;
VK_UP:
if y>4 then
begin
form1.repaint;
y:=y-dy;
form1.canvas.draw(x,y,Arriba);
end
else
beep;
VK_DOWN:
if y<(form1.clientheight-Abajo.Height-dy) then
begin
form1.repaint;
y:=y+dx;
form1.canvas.draw(x,y,Abajo);
end
else
beep;
end;
end;

end.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:error

Publicado por BigLuis (713 intervenciones) el 27/08/2005 11:47:43
La unica solucion que le veo es cambiar el tipo de const a Var e iniciar las variables al principio del procedimiento asi
Var
x:integer; y:integer;
dx:integer; dy:integer;
begin
if (ssCtrl in Shift) and (Key=VK_HOME) then
begin
Form1.Repaint;
dx:=5;
dy:=5;
x:=0;
y:=0;
Yo no creo que en ninguna version de Delphi se puedan asignar valores variables a una constate pero si tu dices que en tu amigo funciona, cuando sepas como por favor ponlo en el foro.
Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:error

Publicado por inti (4 intervenciones) el 27/08/2005 20:33:03
tambien a mi se me ocurrio pero con eso el avion se queda estatico es muy raro y el q me dio el codigo no me quiere decir por eso vine por aqui^^ pero se lo sacare de algun modo

muxas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar