Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   dibujar un rectangulo (https://www.clubdelphi.com/foros/showthread.php?t=67598)

ioco 25-04-2010 17:49:42

dibujar un rectangulo
 
Estoy aquí con mi nuevo amigo canvas intentando llevarnos bien pero no hay manera...

Tengo:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  x1,x2,y1,y2: integer;
begin
  { punto (x1,y1) => centro del segundo cuadrante de la ventana }
  x1:=Form1.Left+Form1.Width div 4;
  y1:=Form1.Top+Form1.Height div 4;
  { punto (x2,y2) => centro del cuarto cuadrante de la ventana}
  x2:=3*(Form1.left+Form1.Width) div 4;
  y2:=3*(Form1.Top+Form1.Height) div 4;
  { dibujado del rectángulo }
  canvas.Rectangle(x1,y1,x2,y2);
end;

La idea es que dibuje un rectángulo centrado en el form de la mitad del tamaño del mismo y cuando la ventana está maximizada lo hace bien, pero cuando no lo está aunque el tamaño parece el correcto (más pequeño debido a que la ventana también es más pequeña) la posición no lo es ya que no está centrado.

¿Creen que estoy haciendo algo mal? :confused:

escafandra 25-04-2010 18:02:56

Prueba a simplificarlo así:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  Rect: TRect;
begin
  Rect:= ClientRect;
  InflateRect(Rect, -Width div 4, -Height div 4);
  Canvas.Rectangle(Rect);
end;


Saludos.

ioco 25-04-2010 18:10:43

Gracias por la sugerencia, me funciona tal como quería y es más simple. Ahora mismo me pongo con la help a ver qué es lo que hace :)


La franja horaria es GMT +2. Ahora son las 17:52:04.

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