Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-03-2009
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Doy fe de que lo propuesto por Caro, funciona correctamente.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #2  
Antiguo 01-04-2009
Iron Iron is offline
Miembro
 
Registrado: mar 2009
Posts: 16
Poder: 0
Iron Va por buen camino
He puesto el nuevo Type y no da fallo ninguno, pero no se ve :

Código Delphi [-]
if tipo_pantalla_=3 then begin;
        statictext2.Font.Color :=clWindowText;
        statictext2.Caption:='En Varios Puntos.';
        panel4.Visible:=true;
        statictext3.Font.Color :=clblue;
        statictext3.Caption:='DESABILITADO.';
        panel1.Enabled:=false;
           // Dibujamos lo que falta.
               with Panel4 do
                   begin
                    canvas.Pen.Color:=clBlack;
                    canvas.Pen.Width:=1;
                    canvas.Pen.Style:=psSolid;
                    canvas.MoveTo(500,500);
                    canvas.LineTo(1000,1000);
                  end;
      end;
Si en lugar de poner Panel4, pongo el nombre del formulario, la linea se ve donde no hay Panel´s.Gracias por vuestras respuestas
Responder Con Cita
  #3  
Antiguo 01-04-2009
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Según te he comentado yo mismo he hecho la prueba y funciona correctamente, lo que puede ocurrir es que tus coordenadas están fuera virtualmente del Tpanel y por eso no se ve nada.

Prueba por ejemplo con:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  with panel1 do
   begin
   canvas.Pen.Color:=clBlack;
   canvas.Pen.Width:=1;
   canvas.Pen.Style:=psSolid;
   canvas.MoveTo(10,10);
   canvas.LineTo(500,500);
  end;
end;

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #4  
Antiguo 02-04-2009
Davidcfres Davidcfres is offline
Miembro
 
Registrado: ago 2007
Ubicación: Francia
Posts: 10
Poder: 0
Davidcfres Va por buen camino
Hola Iron,

Caro tiene razon, no puedes utilizar el canvas de un TPanel directamente.

la unica solucion es crear una nueva class :
Código Delphi [-]
 
type
  TMyPanel = class(TPANEL);
 
(....)
 
procedure TForm4.Button2Click(Sender: TObject);
begin
  TMyPanel(Panel1).canvas.Pen.Color:=clBlack;
  TMyPanel(Panel1).canvas.Pen.Width:=1;
  TMyPanel(Panel1).canvas.Pen.Style:=psSolid;
  TMyPanel(Panel1).canvas.MoveTo(10,10);
  TMyPanel(Panel1).canvas.LineTo(500,500);
end;


Nota :
cuando escribes :
Código Delphi [-]
 
            with Panel4 do
                   begin
                    canvas.Pen.Color:=clBlack;
                    canvas.Pen.Width:=1;
                    canvas.Pen.Style:=psSolid;
                    canvas.MoveTo(500,500);
                    canvas.LineTo(1000,1000);
                  end;

"with Panel4" no permite acceder al canvas del Panel pero al canvas de la form.

David
Responder Con Cita
  #5  
Antiguo 02-04-2009
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 25
Caro Va por buen camino
Cita:
Empezado por Davidcfres Ver Mensaje
Código Delphi [-]

type
TMyPanel = class(TPANEL);

(....)

procedure TForm4.Button2Click(Sender: TObject);
begin
TMyPanel(Panel1).canvas.Pen.Color:=clBlack;
TMyPanel(Panel1).canvas.Pen.Width:=1;
TMyPanel(Panel1).canvas.Pen.Style:=psSolid;
TMyPanel(Panel1).canvas.MoveTo(10,10);
TMyPanel(Panel1).canvas.LineTo(500,500);
end;
Hola, si defines tu tipo de esta forma, con el mismo nombre, ya no necesitas hacer el Cast y ya no va a tomar el Canvas del formulario

Código Delphi [-]
type  TPanel = class(ExtCtrls.TPanel);

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #6  
Antiguo 02-04-2009
Davidcfres Davidcfres is offline
Miembro
 
Registrado: ago 2007
Ubicación: Francia
Posts: 10
Poder: 0
Davidcfres Va por buen camino
Cita:
Empezado por Caro Ver Mensaje
Hola, si defines tu tipo de esta forma, con el mismo nombre, ya no necesitas hacer el Cast y ya no va a tomar el Canvas del formulario
Claro... estoy completamente de acuerdo.
pero creo que con esta modificacion el typo es diferente (todos los protected son accesibles) , y por eso prefiero utilisar otro nombre...
Responder Con Cita
  #7  
Antiguo 03-04-2009
Iron Iron is offline
Miembro
 
Registrado: mar 2009
Posts: 16
Poder: 0
Iron Va por buen camino
Ya consigo ver la linea en el Panel, he probado las dos versiones que poneis y funcionan bien , Gracias a todos.
Una última cosita, cuando creo la linea en el formulario, esta no se ve por el Panel y si la creo en el Panel, del mismo no sale. ¿Se puede crear una linea que se vea en los dos sitios?.

Gracias y un saludo
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Insertar un Panel dentro de otro panel edgwin OOP 3 22-11-2008 17:22:16
Dibujar línea dicatek Gráficos 8 29-07-2006 16:47:26
mostrar fichero linea a linea torete_86 C++ Builder 4 30-01-2006 20:14:39
Traza linea por linea problemas zugazua2001 Varios 2 24-10-2005 08:16:32
¿Cómo borrar un grid sin tener que ir línea a línea? Isaac Varios 2 18-02-2004 16:13:14


La franja horaria es GMT +2. Ahora son las 02:41:01.


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
Copyright 1996-2007 Club Delphi