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 05-03-2007
joumont joumont is offline
Miembro
 
Registrado: sep 2003
Ubicación: España
Posts: 23
Poder: 0
joumont Va por buen camino
Procedimientos y funciones en formularios MDI

Estoy realizando una aplicación MDI y he localizado el siguiente problema. Cuando intento realizar una accion a un objeto del formulario, por ejemplo:
EditText:='Hola';
si lo realizo en el evento "on show", funciona de manera correcta, pero si en vez de hacerlo "directamente" en el evento, intento derivarlo a un procedimiento, ejemplo:

procedure di_hola;
begin
Form1.Edit1.Text:='hola';
end;

procedure TForm1.FormShow(Sender: TObject);
begin
inherited;
di_hola;
end;

Me da un error.

Necesito ayuda, ya que me encuentro atascado y no encuentro la solucion

Gracias
Responder Con Cita
  #2  
Antiguo 05-03-2007
JF Sebastian JF Sebastian is offline
Miembro
 
Registrado: oct 2006
Posts: 108
Poder: 18
JF Sebastian Va por buen camino
Tal y como lo tienes no te puede funcionar porque el di_hola no esta dentro del Form1
Responder Con Cita
  #3  
Antiguo 05-03-2007
joumont joumont is offline
Miembro
 
Registrado: sep 2003
Ubicación: España
Posts: 23
Poder: 0
joumont Va por buen camino
¿Como lo incluyo dentro del Form1
Responder Con Cita
  #4  
Antiguo 05-03-2007
Avatar de Albano
Albano Albano is offline
Miembro
 
Registrado: oct 2004
Ubicación: Nogales, Sonora, Mexico
Posts: 422
Poder: 20
Albano Va por buen camino
Donde tienes declarado el procedimiento di_hola?
__________________
"Sé de tal manera y vive una vida tal, que si todos los hombres fueran como tú y vivieran como tú, nuestro mundo sería un paraíso terrenal"
Siempre hazlo con la ayuda de Dios
Responder Con Cita
  #5  
Antiguo 05-03-2007
joumont joumont is offline
Miembro
 
Registrado: sep 2003
Ubicación: España
Posts: 23
Poder: 0
joumont Va por buen camino
Esta puesto en el formulario Form1, pero no lo tengo declarado en ningun sitio. Tengo que ponerlo en la parte private, en public,
Responder Con Cita
  #6  
Antiguo 05-03-2007
Avatar de Albano
Albano Albano is offline
Miembro
 
Registrado: oct 2004
Ubicación: Nogales, Sonora, Mexico
Posts: 422
Poder: 20
Albano Va por buen camino
Código Delphi [-]
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    Edit1: TEdit;
    procedure FormShow(Sender: TObject);
    procedure di_hola;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.di_hola;
begin
  edit1.Text := 'hola';
end;

procedure TForm2.FormShow(Sender: TObject);
begin
  di_hola;
end;

end.
De esta manera funciona... Mira donde esta declarado el procedimiento.
__________________
"Sé de tal manera y vive una vida tal, que si todos los hombres fueran como tú y vivieran como tú, nuestro mundo sería un paraíso terrenal"
Siempre hazlo con la ayuda de Dios
Responder Con Cita
  #7  
Antiguo 05-03-2007
joumont joumont is offline
Miembro
 
Registrado: sep 2003
Ubicación: España
Posts: 23
Poder: 0
joumont Va por buen camino
lo he probado y me da un error de acceso a memoria en direccion xxxxxx

¿Que mas estoy haciendo mal?

Ya he comentado que es una aplicacion MDI

Los porcedimiento aparecen de la siguiente manera

procedure TForm1.FormShow(Sender: TObject);
begin
inherited;

Tiene la palabra inherited algo que ver con todo esto?

Responder Con Cita
  #8  
Antiguo 05-03-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
El hecho de que la aplicación sea MDI no influye para nada en este caso.

Tal y cual como te lo explico Albano funciona pero debes hacer un cambio para adaptarlo a tu aplicación me explico:

Donde diga Form2 (Y siguiendo con el ejemplo que mostraste) debes colocar Form1, de manera pues que todo quedaria asi:

Código Delphi [-]
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    procedure FormShow(Sender: TObject);
    procedure di_hola;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.di_hola;
begin
  edit1.Text := 'hola';
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  di_hola;
end;

end.

Si no fue eso pues podriamos revisar luego lo del inherited;
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/

Última edición por jhonny fecha: 05-03-2007 a las 20:26:51.
Responder Con Cita
  #9  
Antiguo 05-03-2007
joumont joumont is offline
Miembro
 
Registrado: sep 2003
Ubicación: España
Posts: 23
Poder: 0
joumont Va por buen camino
Muchas gracias, ya me funciona, de todas formas y puestos a aprender, me podriais explicar el tema del inherit

Gracias de nuevo

Responder Con Cita
  #10  
Antiguo 05-03-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Te recomendaría leer "La cara oculta de delphi4" que esta gratis en la pagina www.marteens.com allí te dan una breve explicación de esa y muchas cosas mas acerca de Delphi.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
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
Sobre procedimientos y funciones Perrero80 OOP 3 17-05-2006 11:55:42
donde almacenar los procedimientos y funciones olbeup MS SQL Server 2 16-04-2006 20:56:07
Definir funciones y procedimientos en FastReport???? burasu Impresión 1 16-05-2005 21:47:37
Procedimientos y funciones en paquetes MARIOR Varios 2 08-01-2004 23:50:51
Procedimientos Waldo Varios 4 01-11-2003 07:43:04


La franja horaria es GMT +2. Ahora son las 16:12:02.


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