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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-10-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por rgstuamigo Ver Mensaje
Pues yo no le veo diferencia, ya que en Delphi ambas formas son equivalente:
Hola.

Descomponiendo as en sus primitivas, sería:
Código Delphi [-]
  if Form.Component[i] is TcxTextEdit then
    TcxTextEdit(Form.Component[i]).Clear
  else
    raise EInvalidCast.Create('Tipo de conversión iválido');

Usando el ejemplo:
Código Delphi [-]
  if(Form.Controls[i] is TcxTextEdit) then
      (Form.Controls[i] as TcxTextEdit).Clear;

Y realizando un reemplazo por su equivalente queda:

Código Delphi [-]
  if Form.Component[i] is TcxTextEdit then
  { línea del as }
   if Form.Component[i] is TcxTextEdit then  // redundante...
     TcxTextEdit(Form.Component[i]).Clear
   else
    raise EInvalidCast.Create('Tipo de conversión iválido');

Saludos.

Última edición por ecfisa fecha: 13-10-2010 a las 23:24:18.
Responder Con Cita
  #2  
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
Question

Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Descomponiendo as en sus primitivas, sería:
Código Delphi [-]
  if Form.Component[i] is TcxTextEdit then
    TcxTextEdit(Form.Component[i]).Clear
  else
    raise EInvalidCast.Create('Tipo de conversión iválido');
...
Pues, me sorpende tal "descomposición", aunque me gustaría saber ¿de dónde lo has sacado? Podrías darme algun enlace al respecto?
Épale..Cada día se aprende algo nuevo.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 14-10-2010 a las 00:00:33.
Responder Con Cita
  #3  
Antiguo 14-10-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por rgstuamigo Ver Mensaje
Pues, me sorpende tal "descomposición", aunque me gustaría saber ¿de dónde lo has sacado? Podrías darme algun enlace al respecto?
Épale..Cada día se aprende algo nuevo.
Saludos...
Hola.

Si como no. Recordaba haberlo leido en La cara Oculta de Delphi.
Tuve que buscar un poco por que no sabía exactamente donde, pero ya lo ubiqué, está en la página 169.

Cita:
"El operador as se puede descomponer en instrucciones más simples. La primera
instrucción del ejemplo anterior es equivalente a la siguiente secuencia de instruc-
ciones:
if ActiveControl is TButton then
TButton(ActiveControl).Click
else
raise EInvalidCast.Create('Invalid type cast');
..."
Saludos.

Última edición por ecfisa fecha: 14-10-2010 a las 00:56:23.
Responder Con Cita
  #4  
Antiguo 14-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
Arrow

Pues si...tienes toda la razón amigo ecfisa.
En ese caso pues el código final bien 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
      TcxTextEdit(Form.Controls[i]).Clear;

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

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

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


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 09:13:47.


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