Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Centrar ellipse en TImage (https://www.clubdelphi.com/foros/showthread.php?t=94471)

Neftali [Germán.Estévez] 28-02-2020 12:41:47

Este es el que tienes:

Código Delphi [-]
...     
Windows.Ellipse(FormMain.Wheel.Canvas.Handle, 
  Max((FormMain.Wheel.Width - FormMain.Wheel.Height) div 2, 0),
  Max((FormMain.Wheel.Height - FormMain.Wheel.Width) div 2, 0),
  -Max((FormMain.Wheel.Width - FormMain.Wheel.Height) div 2, 0) + FormMain.Wheel.Width,  
  -Max((FormMain.Wheel.Height - FormMain.Wheel.Width) div 2, 0) + FormMain.Wheel.Height);


Lo conviertes a:

Código Delphi [-]
const
  ELLIPSE_SPACE = 100;  
begin
...     
   Windows.Ellipse(FormMain.Wheel.Canvas.Handle,                     
       ELLIPSE_SPACE + Max((FormMain.Wheel.Width - FormMain.Wheel.Height) div 2, 0),
       ELLIPSE_SPACE + Max((FormMain.Wheel.Height - FormMain.Wheel.Width) div 2, 0),
       -ELLIPSE_SPACE -Max((FormMain.Wheel.Width - FormMain.Wheel.Height) div 2, 0) + FormMain.Wheel.Width,
       -ELLIPSE_SPACE -Max((FormMain.Wheel.Height - FormMain.Wheel.Width) div 2, 0) + FormMain.Wheel.Height);

compuin 28-02-2020 13:28:40

Excelente

Muchas gracias

compuin 28-02-2020 18:49:58

Buenas tardes a todos,

Ya logre el circulo centrado

Gracias a todos por sus aportes

compuin 02-03-2020 13:53:54

Amigos, buenos dias

Ya teniendo la elipse centrada en un TImage, como puedo establecer la posiciion especifica de la misma.

Digamos que en un TImage cuadrado la imagen centra bien, pero este no es el caso cuando se trata de un rectangulo.


La posicion que busco es mas a la derecua en un rectangulo y el uso de x1,y1 como lo hago en el cuadrado me mueve el circulo siempre hacia abajo.


Alguna forma de colocarlo mas a la derecha que en el centro en un rectangulo ?

Casimiro Noteví 02-03-2020 14:32:01

Usa las matemáticas, ancho del rectángulo menos ancho del círculo, dividido entre dos.

compuin 02-03-2020 14:34:08

Cita:

Empezado por Casimiro Notevi (Mensaje 536044)
Usa las matemáticas, ancho del rectángulo menos ancho del círculo, dividido entre dos.

Hola Casimiro,

Segun eso, lo colocaria en el centro del rectangulo. Lo cierto es que lo necesito mas a la derecha del mismo

compuin 02-03-2020 18:58:53

Hola,

Lo consegui haciendo de esta manera

Código Delphi [-]
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
     canvas.pen.color:= clred;
     canvas.pen.width:= 10;
     canvas.brush.color := clfuchsia;
     canvas.ellipse(clientwidth div 2, 0,clientwidth, clientheight);
end;

end.


La franja horaria es GMT +2. Ahora son las 15:00:07.

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