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 17-10-2013
Avatar de FideRosado
FideRosado FideRosado is offline
Miembro
 
Registrado: jun 2010
Ubicación: Pinar del Rio Cuba
Posts: 146
Poder: 17
FideRosado Va por buen camino
cambios en el codigo

he echo unos cambios y aca los comparto con ustedes..
en este pedazo colorea denuevo los paneles creados dentro sel srolbox para que mantenda un estilo en la aplicacion..

Código Delphi [-]
function ColoreaPanels(SB: TScrollBox): string;
var i,j: Integer;
begin
  Result := '';
  changecolor := 0;
  for i:= 0 to SB.ControlCount - 1 do
  begin
    if SB.Controls[i] is TRzPanel then
    begin
      if changecolor = 0 then
      begin
        if TRzPanel( SB.Controls[i] ).Color <> $00F0E7E1 then
        begin
          TRzPanel( SB.Controls[i] ).Color:=$00F7F7F7;
        end;
        changecolor:=1;
      end
      else
      if changecolor = 1 then
      begin
        if TRzPanel( SB.Controls[i] ).Color <> $00F0E7E1 then
        begin
          TRzPanel( SB.Controls[i] ).Color:=clBtnHighlight;
        end;
        changecolor:=0;
      end;
    end;
  end;
end;

aca crea un checkbox que me marque todos los de su tipo en el area que kieran ..
Código Delphi [-]
procedure TForm1.RzCheckBox1Click(Sender: TObject);
begin
  if RzCheckBox1.Checked then
  begin
    CheckAllPanels(ScrollBox1, true );
  end
  else
  begin
    CheckAllPanels(ScrollBox1, false );
  end;
end;

function CheckAllPanels(SB: TScrollBox; condition: Boolean ): string;
var i,j: Integer;
begin
  Result := '';
  for i:= 0 to SB.ControlCount - 1 do
  begin
    if SB.Controls[i] is TRzPanel then
    begin
      for j:= 0 to TRzPanel(SB.Controls[i]).ControlCount-1 do
      begin
        if TRzPanel(SB.Controls[i]).Controls[j] is TRzCheckBox then
        begin
          TRzCheckBox(TRzPanel(SB.Controls[i]).Controls[j]).Checked := condition;
        end;
      end;
    end;
  end;
end;

cuando pense en eliminar el panel dentro de el area, pence en hacerlo de muchas formas, pero me he despertado de buena gana y mente , aqui puedes mandar a buscar el panel por su nombre y luego eliminarlo, asi no hay que hacer un for...
Código Delphi [-]
procedure TForm1.RzPanel15Click(Sender: TObject);
var u,h:integer;
  n,m: string;
var t:TControl;
begin
  n := ActiveCheckBoxes(ScrollBox1);
  if n <> '' then
  begin
    u:= CharCount(n,'|');
    for h:= 1 to u do
    begin
      m:= GetToken( n, '|' , h );
      // t.Name:= m; t := ScrollBox1.FindChildControl(m);
      if t is TControl then
      begin
        // ShowMessage('se lozalizo el control ' + t.Name);
        t.Free; RzCheckBox1.Checked:=false;
      end
      else
      begin
        ShowMessage('No se lozalizo el control ' + t.Name);
      end;
    end;
    ColoreaPanels(ScrollBox1);
  end;
end;

Última edición por ecfisa fecha: 17-10-2013 a las 22:40:50. Razón: Corregir problema Interfaz mejorada
Responder Con Cita
  #2  
Antiguo 18-10-2013
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 FideRosado Ver Mensaje
cuando pense en eliminar el panel dentro de el area, pence en hacerlo de muchas formas, pero me he despertado de buena gana y mente , aqui puedes mandar a buscar el panel por su nombre y luego eliminarlo, asi no hay que hacer un for...
Hola.

En realidad si haces un simple cambio en la creación de los TPanel y TCheckBox cambiando su owner (propietario),
Código Delphi [-]
  Pnl := TPanel.Create(Self); // (donde Self es Form1)
  ...
  with TCheckBox.Create(Self) do
te sería mucho mas simple eliminar un panel por su nombre.
Código Delphi [-]
...
var
  C: TComponent;
begin
  C := FindComponent('PnlUser1');
  if Assigned(C) then 
    C.Free;
end;

Saludos
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 18-10-2013 a las 11:55:34.
Responder Con Cita
  #3  
Antiguo 18-10-2013
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.

Recordé que sólo se deben borrar aquellos paneles cuyos CheckBox estén chequeados...

Dado que en la creación, a paneles y CheckBoxes les das nombres que sólo difieren de otros sólo por su terminación (PnlUser1, PnlUser2,...) (CheckMail1, CheckMail2, ...). Además contenedor y contenido se corresponden en ese último número y que cada panel tiene contiene un CheckBox, se puede efectuar la eliminación mediante un método enviando como argumento sólo el número:
Código Delphi [-]
procedure TForm1.FreePanel(const Nro: Integer);
var
  C1: TComponent;
begin
  C1 := FindComponent('PnlUser' + IntToStr(Nro));
  if Assigned(C1) then
  begin
    if TCheckBox(FindComponent('CheckMail' + IntToStr(Nro))).Checked then
      C1.Free;
  end;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
Screenshot de un TPanel hgiacobone Gráficos 3 28-10-2010 20:53:54
Scrollbars en un TPanel acertij022 Varios 2 19-02-2009 14:35:32
Tpanel oab_boa C++ Builder 2 27-12-2008 04:20:38
TPanel sin transaparencia Khronos Varios 1 02-06-2008 03:19:49
OnMouseWheel en TPanel metalfox6383 Varios 3 03-07-2006 20:15:15


La franja horaria es GMT +2. Ahora son las 15:11:00.


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