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 25-10-2011
asdbernardo asdbernardo is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 37
Poder: 0
asdbernardo Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

No entiendo bién a que te referis, pero a ver si puedo explicarme mejor:

La función 'ExisteCtrl' (o el nombre que le des) recorre todos los componentes del form verificando que el componente exista (haya sido creado) y devuelve True si es así. Caso contrario devuelve False.

Como en la creación del TCheckListBox le asignas el nombre de este modo:
Código Delphi [-]
  cajas.Name := combobox1.Text;
Antes de dicha creación deberías verificar:
Código Delphi [-]
 
  if ExisteCtrl(combobox1.Text) then 
  ...

Agregándola a tu código inicial sería:
Código Delphi [-]
procedure TfrmVentas.Button1Click(Sender: TObject);
begin
  if not ExisteCtrl(ComboBox1.Text) then     // si no existe el componente
  begin
    cajas := tchecklistbox.Create(frmventas);  // crearlo
    cajas.Top := 10;
    cajas.Left := 10;
    cajas.Height := 300;
    cajas.Width := 300;
    cajas.Parent := pagecontrol1;
    cajas.Name := combobox1.Text;
    cajas.Items.Add('el nombre es:'+cajas.Name);
    cajas.Items.Add(combobox1.Text);
    cajas.DragKind := dkDock;
    cajas.DragMode := dmAutomatic;
   end
   else  // el componente existe,
          // aquí la accion que decidas tomar 
          // o ninguna en cuyo caso sobraría 'else'
end;

Un saludo.

Edito: No había visto tu último comentario:

Si, asi es Bernardo.
Ok amigo Ecfisa gracias de nuevo por tomarte la amabilidad de responderme.. coloque la funcion, pero me muestra undeclared identifiquer? ComponentCount y en Components[i].Name por eso te hice la pregunta ... Saludos voy a chequear a ver...
Responder Con Cita
  #2  
Antiguo 25-10-2011
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
Hola Bernardo.
Cita:
me muestra undeclared identifiquer
Es probable que hayas declarado la cabecera como función y no como método de TfrmVentas, ya que en realidad es Self.ComponentCount (o visto de otro modo, frmVentas.ComponentCount).

Debería estar más o menos así:
Código Delphi [-]
type
  TfrmVentas = class(TForm)
  ...
  private
     function ExisteCtrl(Nombre: string):Boolean; // puede ir en la sección public...
  public
  end;
...
implementation

function TfrmVentas.ExisteCtrl(Nombre: string):Boolean;
var
  i: Integer;
begin
  Result:= False;
  for i:= 0 to ComponentCount -1 do
    if Components[i].Name = Nombre then
      Result:= True;
end;
...

También se puede utilizar como función pero deberás indicar el form a que te refieres precediendo a ComponentCount y Components así:
Código Delphi [-]
   frmVentas.ComponentCount ...
   frmVentas.Components[i]...

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 25-10-2011 a las 22:07:21.
Responder Con Cita
  #3  
Antiguo 25-10-2011
asdbernardo asdbernardo is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 37
Poder: 0
asdbernardo Va por buen camino
Si amigo, acabe de componerlo quedo así,
la función
Código Delphi [-]

function ExisteCtrl(Nombre: string):Boolean;
var
  J: Integer;
begin
   with frmventas do
    begin
  Result:= False;
  for J:= 0 to ComponentCount - 1 do
    if Components[J].Name = Nombre then
      Result:= True;
    end;
end;

Código Delphi [-]
procedure TfrmVentas.Button1Click(Sender: TObject);
begin
if not ExisteCtrl(ComboBox1.Text) then  // ¿ Ya fue creado ?
    with TCheckListBox.Create(Self) do    // no, crearlo
    begin
  cajas := tchecklistbox.Create(frmventas);
  cajas.Top := 10;
  cajas.Left := 10;
  cajas.Height := 300;
  cajas.Width := 300;
  cajas.Parent := pagecontrol1;
  cajas.Name := combobox1.Text;
  cajas.Items.Add('el nombre es:'+cajas.Name);
  cajas.Items.Add(combobox1.Text);
  cajas.DragKind := dkDock;
  cajas.DragMode := dmAutomatic;
    end
    else
     ShowMessage('Ya existe');  //si, ya existe. (aca la acción que desees hacer)
 end;

Gracias amigo ecfisa, Muy amable! y sobre todo con excelente paciencia..

PD: Hoy estoy con poca cabeza, espero ya recuperarme!
Responder Con Cita
  #4  
Antiguo 26-10-2011
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 948
Poder: 25
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Otra alternativa para prescindir de crear una funcion que busque el componente es

Código Delphi [-]
procedure TfrmVentas.Button1Click(Sender: TObject);
begin
{FindComponent, se encuentra en la Unit Classes
Devuelve el componente asociado al nombre que recibe de parametro}
    if FindComponent(ComboBox1.Text)=Nil then  // ¿ Ya fue creado ?
    with TCheckListBox.Create(Self) do    // no, crearlo
    begin
           cajas := tchecklistbox.Create(frmventas);
           cajas.Top := 10;
           cajas.Left := 10;
           cajas.Height := 300;
           cajas.Width := 300;
           cajas.Parent := pagecontrol1;
           cajas.Name := combobox1.Text;
           cajas.Items.Add('el nombre es:'+cajas.Name);
           cajas.Items.Add(combobox1.Text);
           cajas.DragKind := dkDock;
           cajas.DragMode := dmAutomatic;
    end
    else
     ShowMessage('Ya existe');  //si, ya existe. (aca la acción que desees hacer)
 end;

Saludos
Responder Con Cita
  #5  
Antiguo 26-10-2011
asdbernardo asdbernardo is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 37
Poder: 0
asdbernardo Va por buen camino
Gracias amigo Cloayza, Tambien si funciona esa alternativa... Saludos!
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
TTrayIcon como usarlo ? Dado de baja Varios 18 30-11-2011 14:43:29
Report Manager...como usarlo..... chileno Impresión 2 26-09-2008 22:56:07
Obtener el Menu de Google Earth para usarlo en mi aplicacion vejerf API de Windows 2 26-05-2008 08:49:26
grfinger como usarlo ? martita Varios 0 13-02-2008 18:47:37
pantalla dockeable dosena OOP 2 05-08-2003 18:55:51


La franja horaria es GMT +2. Ahora son las 13:15:33.


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