Delphi - Procedimientos y Funciones

 
Vista:

Procedimientos y Funciones

Publicado por Lourdes (2 intervenciones) el 06/06/2007 19:58:10
Hola a todos, ojala que puedan ayudarme, resulta que apenas estoy aprendiendo delphi y ya me tope con un problema, yo manejo Visual Basic y resulta que en visual puedes declarar funciones como esta:

Function ()
text1.text=""
text2.text=""
End Function

Esto lo usas cuando vas a realizar lo mismo en varias partes de tu código y no quieres tener que escribirlo a cada rato.

Trato de hacer lo mismo en Delphi para limpiar mis componentes Edit, quiero agregar un procedimiento en este caso para poner algo así como la función que les comento mas arriba porque voy a limpiar mis Edit varias veces. Pero me marca error =...( y ya busque y busque información pero nada, al parecer asi no se declaran en Delphi....

Podrían ayudarme por favor?????? MIL GRACIAS!!!!!
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
sin imagen de perfil

RE:Procedimientos y Funciones

Publicado por jose luis (157 intervenciones) el 06/06/2007 20:13:20
Usa un procedure en vez que un function y lo otro es que para los componentes en un formulario debes colocar primero el nombre del formulario y despues el nombre del componente, o sino lo pasas por parametros

procedure Limpiar;
begin
Form1.Edit1.Text := '';
Form1.Edit2.Text := ''
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Limpiar
end;

o tambien asi

procedure Limpiar(Edit1, Edit2: TEdit);
begin
Edit1.Text := '';
Edit2.Text := '';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Limpiar(Edit1, Edit2)
end;

Cualquier cosa me avisas
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:Procedimientos y Funciones

Publicado por Lourdes (1 intervención) el 06/06/2007 20:24:23
Muchas gracias Jose Luis en seriooo, mira te paso mi codigo de ejemplo porque el real no lo tengo en esta compu pero cree algo rapido y este es mi programa:

unit Agenda;

interface

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

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

var
Form1: TForm1;

implementation

procedure Limpiar(Ednombre, Eddireccion: TEdit);
begin
Ednombre.Text := '';
Eddireccion.Text := '';
end;


{$R *.DFM}

procedure TForm1.Button1Click (Sender: TObject);
begin
limpiar(Ednombre, Eddireccion);
end;
end.

///////////////////////////////////////////////////////////

Ednombre y Eddireccion son dos componentes Edit que agregue a mi formulario, pero me manda estos errores al ejecutarlo:

[Error]Agenda.pas(38): Undeclared identifier:'Eddireccion'
[Fatal Error]ProjectAgenda.dpr(5): Could not compile used unit 'Agenda.pas'
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
sin imagen de perfil

RE:Procedimientos y Funciones

Publicado por jose luis (157 intervenciones) el 06/06/2007 21:27:49
unit Agenda;

interface

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

type
TForm1 = class(TForm)
EdNombre: TEdit;
EdDireccon: TEdit; //Error en la declaracion
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

procedure Limpiar(Ednombre, Eddireccion: TEdit);
begin
Ednombre.Text := '';
Eddireccion.Text := '';
end;

{$R *.DFM}

procedure TForm1.Button1Click (Sender: TObject);
begin
limpiar(Ednombre, Eddireccion); //Error en la declaracion
end;
end.

Tu error es que la Variable Eddireccion(La tienes declarada como Eddireccon) que pasas como parametro no esta declarada cambia el nombre o en el componente o en el parametro
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:Procedimientos y Funciones

Publicado por Richard (59 intervenciones) el 06/06/2007 22:17:08
para esto lo mas efectivos es tener una UNIT, o un TDataModule, donde creas tus funciones y procedimientos,en este caso tenemos un Modulo(Tdatamodule)..

procedure TModulo.LimpiarCajas(Forma: TForm);
var
J : Integer;
Caja : TEdit;
Memo : TRichEdit;
CajaSm : TsmEdit;
Combito : TComboBox;
Calendario : TDateTimePicker;

begin

FOR J:=0 TO Forma.ComponentCount - 1 DO
BEGIN
{ Limpiamos las Edits }
IF Forma.Components[J] IS TEdit THEN
BEGIN
Caja:=Forma.Components[J] as TEdit;

Caja.Text:='';
END;

{ Actualizamos los Calendarios}
IF Forma.Components[J] IS TDateTimePicker THEN
BEGIN
Calendario:=Forma.Components[J] as TDateTimePicker;
Calendario.DateTime:=Date;
END;

{ Limpiamos los Memos }
IF Forma.Components[J] IS TRichEdit THEN
BEGIN
Memo:=Forma.Components[J] AS TRichEdit;

IF NOT Memo.ReadOnly THEN
Memo.Text:='';
END;

{ Limpiamos los Combos }
IF Forma.Components[J] IS TComboBox THEN
BEGIN
Combito:=Forma.Components[J] AS TComboBox;
Combito.Text:='';
END;

END;

end;

para limpiar las cajas de cualquier formulario, solo tienes que llamar a esta funcion..
por ejemplo..

Modulo.LimpiarCajas(Self);

espero que te sirva...

***recuerda poner las librerias que utilizas en el Uses(Forms,ComCtrls, StdCtrls,etc)
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:Procedimientos y Funciones

Publicado por Richard (59 intervenciones) el 06/06/2007 22:20:43
y no olvides informar si solucionas tus problemas.. hasta pronto.
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:Procedimientos y Funciones

Publicado por Lourdes (2 intervenciones) el 06/06/2007 23:30:34
Hola, muchisicas gracias Jose Luis y Richard, mi problema quedo resuelto con lo que me comentaste Jose Luis. Richard muchas gracias me diste muuuyyy buenos tips
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:Procedimientos y Funciones

Publicado por Richard (59 intervenciones) el 07/06/2007 02:23:22
ok... que bueno que se halla solucionado tu problema... entonces lo daremos por resuelto.. hasta pronto.
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