Delphi - MENSAJE PARA USUARIOS EXPERTOS!!!

 
Vista:

MENSAJE PARA USUARIOS EXPERTOS!!!

Publicado por Juan (17 intervenciones) el 03/07/2003 08:20:29
Sabe alguien si desde delphi se puede hacer como en FoxPro por ejemplo.

Yo desde FoxPro para llamar a un procedimiento hago lo siguiente:
Prueba('edit1')

Prueba cEdit
thisform.&cEdit..text=''

Le puedo pasar dentro de una variable el nombre de un objeto y luego poniendo el & delante se puede llamar. Esto es porque si yo pongo solo cEdit quiere decir que cEdit vale 'edit1' pero si pongo &cEdit quiere decir que cEdit es edit1. Es como un puntero con el & es el valor no lo que contiene.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:MENSAJE PARA USUARIOS EXPERTOS!!!

Publicado por Fer (269 intervenciones) el 03/07/2003 08:58:17
En Delphi puedes crear un procedimiento o función que reciba como parámetro un TEdit:

procedure Prueba(UnEdit: TEdit);

Y luego puedes realizar una llamada del estilo:

Prueba(Edit1);

Si quisieras pasar otro tipo de controles a tu procedimiento, podrías declarar el parámetro de una clase más genérica, por ejemplo TControl:

procedure Prueba(UnControl: TControl);
begin

if UnControl is TEdit then begin

//Hacer cosas cuando es un TEdit

end;{if is TEdit}

if UnControl is TComboBox then begin

//Hacer cosas cuando es un TComboBox

end;{if is TComboBox}

...
end;

Espero que esto te sirva de algo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MENSAJE PARA USUARIOS EXPERTOS!!!

Publicado por Fer (269 intervenciones) el 03/07/2003 09:00:58
También podrías pasar a un procedimiento el nombre del componente, pero la programación sería más trabajosa y menos ortodoxa.

Se me olvidaba que, con la técnica que te explicaba en mi anterior mensaje, sólo te quedaría por hacer algo así:

procedure Prueba(UnControl: TControl);
begin

if UnControl is TEdit then begin

TEdit(UnContro).Text := 'Lo que quieras';

end;{if is TEdit}

end;

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MENSAJE PARA USUARIOS EXPERTOS!!!

Publicado por Carlos (16 intervenciones) el 03/07/2003 18:44:20
Lamentablemente eso q tu quieres q es usar MACROS, no se pueden usar en delphi, lo mas cercano q tienes el lo q te definio FER, a mi tambien me paso lo mismo, es increible la cantidad de codigo q te puedes ahorrar al usar macros, pero con el tiempo te acostumbras..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MENSAJE PARA USUARIOS EXPERTOS!!!

Publicado por Bleach (63 intervenciones) el 04/07/2003 10:06:40
La otra alternativa es pasar un string con el nombre del contro y usar la funcion FindComponent.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MENSAJE PARA USUARIOS EXPERTOS!!!

Publicado por Delfino (1216 intervenciones) el 06/07/2003 13:40:19
Si q existen Macros en Delphi q ahorran escribir muchissimo codigo, se trata de la clase TAction y su hija TStandarAction, con TStandardAction se pueden hacer macros (actions) complejas predefinidas sin escribir codigo, van desde copiar/pegar hasta actualizar una tabla o borrar un registro, con TAction se pueden crear macros (actions) personalizadas una sola vez para utilizarlas las veces q queramos, lo q ahorra tener q repetirlo con cada control..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar