Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-07-2008
Panteon Panteon is offline
Registrado
 
Registrado: jul 2008
Posts: 4
Poder: 0
Panteon Va por buen camino
Ayuda con procedimiento en programa de dibujo

Procedure TForm1.Cuadrado (Const X,Y :integer);
Begin
With
Image1.Canvas Do Begin
Pen.Mode := pmNotXor;
MoveTo (Origen.X,Origen.Y);
Rectangle (Origen.X,Origen.Y,Punto.X,Punto.Y);
MoveTo (Origen.X,Origen.Y);
Rectangle (Origen.X,Origen.Y,X,Y);
end; //Final del With Image1.Canvas
end;

En el form, no se como acceder a este tipo de procedimiento. No
Sale en ningun lado de los eventos del Form.

Ayuda?
Responder Con Cita
  #2  
Antiguo 15-07-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Esto no es un evento. Es un procedimiento que supongo que alguien ha programado en un form para "pintar" un recuadro en el canvas de un TImage.

En la parte privada del form defínelo:

Código Delphi [-]
  Procedure Cuadrado (Const X,Y :integer);

Y en la implementación tendrás este código.

Desde algun sitio lo llamarás.

__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 15-07-2008
Panteon Panteon is offline
Registrado
 
Registrado: jul 2008
Posts: 4
Poder: 0
Panteon Va por buen camino
Ah ya entendi! Muchas gracias!


Última edición por Panteon fecha: 15-07-2008 a las 16:40:29.
Responder Con Cita
  #4  
Antiguo 15-07-2008
Panteon Panteon is offline
Registrado
 
Registrado: jul 2008
Posts: 4
Poder: 0
Panteon Va por buen camino
Otra cosa, Cuando hago un main menu, por defecto sale este procedimiento

procedure MainMenu1Change(Sender: TObject; Source: TMenuItem;
Rebuild: Boolean);

Supongo que sera para hacer que se refresque el menu (que dejen de salir como activadas las cosas del menu, ya que si se lo saco siempre salen con una flecha, aunque no las estes usando).

Sin embargo me tira un error,

[Error] Unit1.pas(52): Unsatisfied forward or external declaration: 'TForm1.MainMenu1Change'

Como lo hago?
Responder Con Cita
  #5  
Antiguo 16-07-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Borra las referencias a ese procedimiento y vuelve a crearlo.
Te generará la cabecera en la parte superior de la Unit ("INTERFACE") y la implementación vacía en la parte de "IMPLEMENTATION".

Lo que te está diciendo ahora es que una de las dos (la IMPLEMENTATION) no la encuentra.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 16-07-2008
Panteon Panteon is offline
Registrado
 
Registrado: jul 2008
Posts: 4
Poder: 0
Panteon Va por buen camino
Pero como vuelvo a crearlo?

Lo escribo nomas?
Responder Con Cita
  #7  
Antiguo 16-07-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola Panteon,
¿Eres nuevo en Delphi?

Lo mejor que puedes hacer para ir entendiendo el tema de la estructura de una unit es leer la cara oculta, disponible en el FTP del club.

En forma simple una unit se compone de 5 secciones, 3 de ellas son necesarias, las otras 2 opcionales.

La primera sección es la cabecera y contiene el nombre de la unit. Por ejemplo:

Código Delphi [-]
Unit UPrincipal;

Seguidamente le sigue en orden, la seccion interface. En ella se pone todo lo que será de acceso público a las demás unidades que hagan uso de ella.
Pero he aqui que no va nada de código, por tanto esta sección es a nivel declarativa.

Dentro de esta sección pueden figurar en orden:
uses
constantes
tipos
variables

Un ejemplo es este:

Código Delphi [-]
interface

uses
  Unit1, Unit2; // Esta unit hace uso de las unit 1 y 2.

const
  UNA_CONSTANTE = 3254;

type
  TArray = array[1..UNA_CONSTANTE] of string;

var
  MiArray: TArray;

En el caso de unit para los formularios te encuentras con algo como esto:

Código Delphi [-]
interface

uses
  Windows, .... etc ...;

type
  TForm1 = class(TForm);
  ...
  end;

var
  Form1: TForm1;

luego sigue la sección implementation. Y es aquí donde se encuentra el código. Por tanto todos los métodos, funciones y/o procedimientos que declares en interface deben tener su correspondiente código en implementation. Todo lo que de declare en Implementation es privado: no se da a concer al exterior (a otras unit).
De igual manera, en implementation también podemos tener:
uses
constantes
tipos
variables

La diferencia será que no será vistos desde afuera.

Cuando tu creas un método o evento (por ejemplo la pulsación de un botón) en la sección interface encontrarás algo como esto:
Código Delphi [-]
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

Si te fijas, no hay código alguno. Sólo aparece la declaración del evento.

Y en la sección implementation figura algo como esto:
Código Delphi [-]
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

end;

Es aquí donde se colocará el código.

El problema tuyo está en que tienes en la sección implementation el "cuerpo" pero en interface no figura la declaración.

Como dice Neftali eso se soluciona borrando toda refencia al evento en cuestión y volviendo a pulsar en el evento OnClic de botón.

Espero que se entienda.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #8  
Antiguo 17-07-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Panteon Ver Mensaje
procedure MainMenu1Change(Sender: TObject; Source: TMenuItem;
Rebuild: Boolean);
Cita:
Empezado por Panteon Ver Mensaje
Pero como vuelvo a crearlo?
Puedes escribirlo, o que te lo haga Delphi.
Parece que es el procedimiento Change de un MainMenu.
Ves al MainMenu que tienes en tu form. Lo seleccionas, accedes al inspector de objetos, vas a la pestaña de Eventos, buscas el evento OnChange y pulsa DOBLE CLICK. Eso te creará en el código el evento y su cabecera.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta



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
Ayuda con dibujo de elipse lol Gráficos 0 23-04-2008 05:08:46
Ayuda con Procedimiento JulioGO Firebird e Interbase 1 05-06-2007 17:47:10
ayuda con procedimiento y delphi herbert MS SQL Server 4 13-09-2005 15:51:44
Ayuda, como llamar a un procedimiento desde otro procedimiento? Ariatna Varios 1 01-02-2005 04:05:35
Ayuda con un procedimiento gario SQL 7 31-12-2003 13:28:51


La franja horaria es GMT +2. Ahora son las 11:43:48.


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