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 21-07-2004
MLROJO MLROJO is offline
Miembro
 
Registrado: jul 2004
Ubicación: Granada
Posts: 26
Poder: 0
MLROJO Va por buen camino
Hola de nuevo.

Muchisimas gracias, por ahora solo he probado la opción que me ha dado Novás y me va perfecta para lo que quiero, aunque no dejaré de probar tanto las de ruina , como todas las que propongais.

Me habeis ayudado mucho.

Pues lo dicho, muchisimas gracias de nuevo, sois todo/as magnificos
Responder Con Cita
  #2  
Antiguo 21-07-2004
Avatar de ruina
ruina ruina is offline
Miembro
 
Registrado: jun 2004
Posts: 196
Poder: 23
ruina Va por buen camino
bueno, enredando enredando he hecho un ejemplito que creo que es bastante parecido a lo que estabas intentando hacer:

Código Delphi [-]
procedure TForm1.BitBtn1Click(Sender: TObject);
  procedure RellenarPropiedades(NombreSeccion:string;Componente:Tcomponent);
  var k:integer;
      valor:string;
      SL:TStringList;
      pinfopropinfo; // está en TypInfo
  begin
      SL:=TStringList.Create;
      try
          ini.ReadSection(NombreSeccion,SL);
          for k:=0 to SL.count-1 do
          begin
               pinfo:=GetPropInfo(Componente.ClassInfo,SL[k]);
               if pinfo<>nil then
               begin
                    valor:=ini.ReadString(NombreSeccion,SL[k],'');
                    if valor<>'' then
                      SetPropValue(Componente,SL[k],valor);
               end;
          end;
        finally
            SL.Free;
        end;
  end;
var i:integer;
begin
      for i:=0 To ComponentCount-1 DO
      begin
            RellenarPropiedades(Components[i].ClassName,Components[i]);
            RellenarPropiedades(Components[i].Name,Components[i]);
      end;
end;

y el ini seria de la forma
Código:
[TButton]
Color=1205
Caption=hola
 
[TCheckBox]
Checked=true
color=23123
 
[Memo1]
BorderStyle=bsnone
 
[Button1]
Caption=Boton Nº 1
Vease que se puede escribir las porpiedades de los componentes según su clase o su nombre concreto ^_^
Responder Con Cita
  #3  
Antiguo 21-07-2004
Avatar de ruina
ruina ruina is offline
Miembro
 
Registrado: jun 2004
Posts: 196
Poder: 23
ruina Va por buen camino
valla, a ver si apendo a escibir con porpiedad....
Responder Con Cita
  #4  
Antiguo 21-07-2004
Avatar de ruina
ruina ruina is offline
Miembro
 
Registrado: jun 2004
Posts: 196
Poder: 23
ruina Va por buen camino
bueno, tenia un ratillo libre asi que le he dado un por de vueltas de tuerca al asunto.


Bien, estabamos en que podiamos asignar propieades a las Clases o a instancias concretas por el Nombre del componente, pero...
No podiamos hacer algo tan util como:
Código:
[TLabel]
 Font.Name=MS Sans Serif
!!
afortunadamente podemos usar la función GetObjectProp, basicamente es GetOrdProp con un resultado formateado a Tobjetc

Bueno, me dejo de rollos y meto codigo (he intentado que sea lo menos criptico posible):
Código Delphi [-]
procedure TForm1.BitBtn1Click(Sender: TObject);
  procedure RellenarPropiedades(NombreSeccion:string;Componente:Tcomponent);
  var k:integer;
      valor:string;
      SL:TStringList;
      pinfopropinfo; // está en TypInfo
      NombrePropiedad,NombreSubPropiedad:string; //Ej:'Font.Size'
      SubObjeto:TObject;
  begin
      SL:=TStringList.Create;
      try
          ini.ReadSection(NombreSeccion,SL);
          for k:=0 to SL.count-1 do  //recorremos la seccion entera:
          begin
               if pos('.',SL[k])>0 then
               begin
                    NombrePropiedad:=copy(SL[k],1,pos('.',SL[k])-1);
                    NombreSubPropiedad:=copy(SL[k],pos('.',SL[k])+1,length(SL[k]));
               end
               else
               begin
                    NombrePropiedad:=SL[k];
                    NombreSubPropiedad:='';
               end;
               pinfo:=GetPropInfo(Componente.ClassInfo,NombrePropiedad); //pillamos la información de la propiedad
               if pinfo<>nil then
               begin
                    Valor:=ini.ReadString(NombreSeccion,SL[K],'');
                    if Valor<>'' then
                    begin
                          if NombreSubPropiedad='' then
                             SetPropValue(Componente,NombrePropiedad,valor) //asignamos el valor
                          else
                          begin
                                SubObjeto:=GetObjectProp(Componente,pinfo.Name); // en este caso (Font.name) primero sacamos la instancia a la propiedad
                                if GetPropinfo(SubObjeto,NombreSubPropiedad)<>nil then
                                   SetPropValue(SubObjeto,NombreSubPropiedad,valor); //y asignamos el valor!!
                          end;
                    end;
               end;
          end;
        finally
            SL.Free;
        end;
  end;
var i:integer;
begin
      for i:=0 To ComponentCount-1 DO
      begin
            RellenarPropiedades(Components[i].ClassName,Components[i]);
            RellenarPropiedades(Components[i].Name,Components[i]);
      end;
      RellenarPropiedades(name,self);
end;
Responder Con Cita
  #5  
Antiguo 06-08-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 24
DarkByte Va por buen camino
Usar el componente http://www.torry.net/vcl/packs/inter...entpackage.zip , es gratuito
__________________
:)
Responder Con Cita
  #6  
Antiguo 10-08-2004
Avatar de edgusano
edgusano edgusano is offline
Miembro
 
Registrado: abr 2004
Ubicación: Medellin Colombia
Posts: 180
Poder: 23
edgusano Va por buen camino
Componente para SKIN

La componente que mencionan, no tiene version para Delphi 7
__________________
Optimus Prime
Responder Con Cita
  #7  
Antiguo 10-08-2004
Sirkius Sirkius is offline
Miembro
 
Registrado: jun 2004
Posts: 83
Poder: 23
Sirkius Va por buen camino
Has probado la de Delphi 6?? El 99% de las veces funcionan sin problemas, y el 1% restante tienes que hacer unos cambios minimos.
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


La franja horaria es GMT +2. Ahora son las 11:17:51.


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