Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 13-10-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 20
rgstuamigo Va por buen camino
Thumbs up

Cita:
Empezado por ecfisa Ver Mensaje
...
Lo que sí te comento es que no hay necesidad de hacer:
Código Delphi [-]
 if(Form.Components[i] is TcxTextEdit) then 
      (Form.Components[i] as TcxTextEdit).Clear;
Es redundante y degrada el tamaño y velocidad del código.

Mucho mejor es:
Código Delphi [-]
   if (Form.Components[i] is TcxTextEdit) then
    // ya sabemos que es un TcxTextEdit...
      TcxTextEdit(Form.Components[i]).Clear;
Saludos.
Pues yo no le veo diferencia, ya que en Delphi ambas formas son equivalente:
Código Delphi [-]
if(Form.Components[i] is TcxTextEdit) then 
      (Form.Components[i] as TcxTextEdit).Clear;// se está haciendo un casting usando el operador dinámico "as"
es equivalente a:
Código Delphi [-]
   if (Form.Components[i] is TcxTextEdit) then
      TcxTextEdit(Form.Components[i]).Clear;//Se está haciendo casting sin ningun operador
Lo único que puedo sugerir es que si SOLO se quiere Iterar el ciclo con solo Componentes que son descencientes de TControl, es decir sólo con controles, pues en ese caso sería mejor usar la propiedad ControlCount en lugar de ComponentCount para optimizar la operación , ya que la propiedad ComponentCount toma en cuenta tambien todos los componentes que sean o no sean controles, por ejemplo : Los TQuery,TDataSource,TTable,TXPManifest,etc. y como veis en éste caso no necesito incluir ese tipo de componentes en el ciclo.
De esa forma el procedimiento Optimizado quedaría así:
Código Delphi [-]
procedure LimpaEdit(Form: TForm);
var
  i: Integer;
begin
  for i := 0 to Form.ControlCount - 1 do
  begin
    if(Form.Controls[i] is TcxTextEdit) then
      (Form.Controls[i] as TcxTextEdit).Clear;

    if(Form.Controls[i] is TcxLookupComboBox) then
      (Form.Controls[i] as TcxLookupComboBox).Clear;

    if(Form.Controls[i] is TcxCalcEdit) then
      (Form.Controls[i] as TcxCalcEdit).Text := '0';

    if(Form.Controls[i] is TcxDateEdit) then
      (Form.Controls[i] as TcxDateEdit).Clear;
  end;
end;
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 13-10-2010 a las 22:28:45.
Responder Con Cita
 


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
duda ECO VCL.NET cmm07 Varios 1 03-03-2008 19:32:56
Una Duda sdiaz1983 Varios 4 22-09-2007 16:39:40
Duda Delphius Varios 5 02-06-2005 07:40:29
Duda alachaise PHP 1 11-01-2005 19:25:43
Una duda linuz Lazarus, FreePascal, Kylix, etc. 3 29-09-2004 23:41:27


La franja horaria es GMT +2. Ahora son las 11:08:55.


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