Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-11-2020
AlejandroCalica AlejandroCalica is offline
Miembro
 
Registrado: nov 2020
Posts: 35
Poder: 0
AlejandroCalica Va por buen camino
Talking Manejo de Varios controles

Buen dia y agradeceria la idea de ustedes los espertos
mi duda nace en relacion al poder identificar que Edit esta vacio en determinado grupo de controles,

tengo 3 grupos de edits aproximados 15 en cada uno
para que del grupo 1 pase al grupo 2 deben estar todos los edits del grupo 1 llenos, mientras tanto los demas grupos estaran
Enabled= false mostrando los edit vacion en color amarillo y los llenos en color blanco
y asi pasara en Grupo 2 y Grupo3.


pense en modificar algo asi:

var x : Integer;
begin
for x := 1 to 5 do begin
(FindComponent('Edit' + IntToStr(x)) as TEdit).text := '';
end;
end;

para dividir por grupo los edits que estan en cada uno y 1 boton en cada grupo de aprobacion que lo que ara es cambar el color de los Edits que esten vacio y hasta que todos los edits que estan en el grupo, se activaria Enabled=true el siguiente grupo, no se si esto puede hacerse en una funcion, espero puedan ayudarme.

Última edición por ecfisa fecha: 20-11-2020 a las 02:02:59. Razón: Quitar dirección de correo electrónico
Responder Con Cita
  #2  
Antiguo 20-11-2020
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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 y bienvenido a Club Delphi

Por favor no olvides revisar nuestra guía de estilo.

Un ejemplo simple que hace uso de tres grupos de cinco Edits:
Código Delphi [-]
...
var
  grupo1 : TPoint = (X:1;Y:5);     // Edit1 ~ Edit5
  grupo2 : TPoint = (X:6;Y:10);    // Edit6 ~ Edit10
  grupo3 : TPoint = (X:11; Y:15);  // Edi11 ~ Edit15

// Verifica cadena vacía en Edits
function TForm1.CheckEditContents(const DH: TPoint):Boolean;
var
  i: Integer;
begin
  Result := True;
  for i := DH.X to DH.Y do
  begin
    if (TEdit(FindComponent('Edit'+IntToStr(i))).Text = '') then
    begin
      Result := False;
      Exit;
    end;
  end;
end;

// Activa o desactiva grupo de Edits
procedure TForm1.EnableDisableEdits(const DH: TPoint; Activo: Boolean);
var
  i: Integer;
begin
  for i := DH.X to DH.Y do
    TEdit(FindComponent('Edit'+IntToStr(i))).Enabled := Activo;
end;

// Activa~Desactiva grupo2 según grupo1
procedure TForm1.btnGrupo1Click(Sender: TObject);
begin
  EnableDisableEdits(grupo2, CheckEditContents(grupo1));
end;

// Activa~Desactiva grupo3 según grupo2
procedure TForm1.btnGrupo2Click(Sender: TObject);
begin
  EnableDisableEdits(grupo3, CheckEditContents(grupo2));
end;

// Activa~Desactiva grupo1 según grupo3
procedure TForm1.btnGrupo3Click(Sender: TObject);
begin
  EnableDisableEdits(grupo1, CheckEditContents(grupo3));
end;
...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 20-11-2020
AlejandroCalica AlejandroCalica is offline
Miembro
 
Registrado: nov 2020
Posts: 35
Poder: 0
AlejandroCalica Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola y bienvenido a Club Delphi

Por favor no olvides revisar nuestra guía de estilo.

Un ejemplo simple que hace uso de tres grupos de cinco Edits:
Código Delphi [-]
...
var
  grupo1 : TPoint = (X:1;Y:5);     // Edit1 ~ Edit5
  grupo2 : TPoint = (X:6;Y:10);    // Edit6 ~ Edit10
  grupo3 : TPoint = (X:11; Y:15);  // Edi11 ~ Edit15

// Verifica cadena vacía en Edits
function TForm1.CheckEditContents(const DH: TPoint):Boolean;
var
  i: Integer;
begin
  Result := True;
  for i := DH.X to DH.Y do
  begin
    if (TEdit(FindComponent('Edit'+IntToStr(i))).Text = '') then
    begin
      Result := False;
      Exit;
    end;
  end;
end;

// Activa o desactiva grupo de Edits
procedure TForm1.EnableDisableEdits(const DH: TPoint; Activo: Boolean);
var
  i: Integer;
begin
  for i := DH.X to DH.Y do
    TEdit(FindComponent('Edit'+IntToStr(i))).Enabled := Activo;
end;

// Activa~Desactiva grupo2 según grupo1
procedure TForm1.btnGrupo1Click(Sender: TObject);
begin
  EnableDisableEdits(grupo2, CheckEditContents(grupo1));
end;

// Activa~Desactiva grupo3 según grupo2
procedure TForm1.btnGrupo2Click(Sender: TObject);
begin
  EnableDisableEdits(grupo3, CheckEditContents(grupo2));
end;

// Activa~Desactiva grupo1 según grupo3
procedure TForm1.btnGrupo3Click(Sender: TObject);
begin
  EnableDisableEdits(grupo1, CheckEditContents(grupo3));
end;
...

Saludos
muchas gracias por la rapides pero tengo algunas dudas sobre el codigo

grupo1 : TPoint = (X:1;Y:5); // Edit1 ~ Edit5
grupo2 : TPoint = (X:6;Y:10); // Edit6 ~ Edit10
grupo3 : TPoint = (X:11; Y:15); // Edi11 ~ Edit15

entiendo que en estos 3 grupos estan almacenados los componentes de cada uno, lamentablemente estos controles no estan ordenados y algunas ocaciones existen no solo edit, sino combobox, listbox y algunos buttons, ue se puede hacer en el supuesto que varien los tipos de controles?

lo que si puede predesir es poser seleccionar digamos mmmm el edit1, edit3, edit11, edit25, combobox4 , listbox1, button1 forman parte de un grupo
digamos algo asi

Procedure Visor(Ctrls:Array of TControl; Enabled:Boolean);
var
C:TControl;
begin
for C in Ctrls do
C.Enabled:=Enabled;
end;

y lo llamo de esta manera

Visor([
Edit1,Edit2,Edit3,Edit4,Edit5,Edit6,
Combobox6,Combobox1,Combobox3,Combobox5,
Button8
], false

con ello puedo seleccionar los componentes que existen en un grupo en particular

la otra duda es sobre este codigo

function TForm1.CheckEditContents(const DH: TPoint):Boolean;
var
i: Integer;
begin
Result := True;
for i := DH.X to DH.Y do
begin
if (TEdit(FindComponent('Edit'+IntToStr(i))).Text = '') then
begin
Result := False;
Exit;
end;
end;
end;

este me determina cual de los controles de un grupo estan vacios? y por ende solo modifico esta pasrte del codigo

if (TEdit(FindComponent('Edit'+IntToStr(i))).Text = '') then

para yo seleccionar que propiedad es la que desido cambiar como el color del control para cambiar solo los controles vacios?

gracias por su atencion
Responder Con Cita
  #4  
Antiguo 20-11-2020
AlejandroCalica AlejandroCalica is offline
Miembro
 
Registrado: nov 2020
Posts: 35
Poder: 0
AlejandroCalica Va por buen camino
Cita:
Empezado por AlejandroCalica Ver Mensaje
muchas gracias por la rapides pero tengo algunas dudas sobre el codigo

grupo1 : TPoint = (X:1;Y:5); // Edit1 ~ Edit5
grupo2 : TPoint = (X:6;Y:10); // Edit6 ~ Edit10
grupo3 : TPoint = (X:11; Y:15); // Edi11 ~ Edit15

entiendo que en estos 3 grupos estan almacenados los componentes de cada uno, lamentablemente estos controles no estan ordenados y algunas ocaciones existen no solo edit, sino combobox, listbox y algunos buttons, ue se puede hacer en el supuesto que varien los tipos de controles?

lo que si puede predesir es poser seleccionar digamos mmmm el edit1, edit3, edit11, edit25, combobox4 , listbox1, button1 forman parte de un grupo
digamos algo asi

Procedure Visor(Ctrls:Array of TControl; Enabled:Boolean);
var
C:TControl;
begin
for C in Ctrls do
C.Enabled:=Enabled;
end;

y lo llamo de esta manera

Visor([
Edit1,Edit2,Edit3,Edit4,Edit5,Edit6,
Combobox6,Combobox1,Combobox3,Combobox5,
Button8
], false

con ello puedo seleccionar los componentes que existen en un grupo en particular

la otra duda es sobre este codigo

function TForm1.CheckEditContents(const DH: TPoint):Boolean;
var
i: Integer;
begin
Result := True;
for i := DH.X to DH.Y do
begin
if (TEdit(FindComponent('Edit'+IntToStr(i))).Text = '') then
begin
Result := False;
Exit;
end;
end;
end;

este me determina cual de los controles de un grupo estan vacios? y por ende solo modifico esta pasrte del codigo

if (TEdit(FindComponent('Edit'+IntToStr(i))).Text = '') then

para yo seleccionar que propiedad es la que desido cambiar como el color del control para cambiar solo los controles vacios?

gracias por su atencion
y ya entrado en materia podria pensar que para la seleccion de controles de cada grupo usaria este

Procedure Visor(Ctrls:Array of TControl; Enabled:Boolean);
var
C:TControl;
begin
for C in Ctrls do
C.Enabled:=Enabled;
end;

aunque este el problemilla que veo es ue en el pondre los controles que quiero ocultar o mostrar, pero al hacerlo los demas deverian de quedar en sircustancia opuesta, pero no esta programado asi

digamos ue existen 12 controles y cada grupo tiene 4 controles, bueno al iniciar el formularo bloquear el control 1,2,5,7
y al hacer clic en el primer evento bloquear el control 3,4,6 y 9 pero en este caso tanto estos como los anteriores estaran bloqueados.

digamos como podria inplementar en el procedure visor
2 controles
uno que controle cuales son los controles que estaran bloqueados
y otro cuales no estaran bloqueados.

en un mismo procedure.

VisorNo([
Edit3,Edit4,Edit6,Edit9,
Combobox6,
Button8
]
VisorSi([
Edit1,Edit2,Edit5,
Combobox1,Combobox3,
Button15
]
,False, true);

o algo parecido eso solucionaria el problema de seleccion de controles, pero el que en cada grupo pueda cambar una propiedad en partcular como por ejemplo en color, o enabled o quizas en cuanto a controles con entrda de text saber si estan vacios?
Responder Con Cita
  #5  
Antiguo 20-11-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Responder Con Cita
Respuesta



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
Manejo con varios formularios Raynel OOP 3 08-10-2013 01:08:21
manejo de bases de datos por varios usuarios luis vazquez Tablas planas 4 13-02-2008 20:07:28
Manejo de îcono (varios tamaños) GaaK Varios 4 08-06-2007 06:15:56
Método accesible desde varios controles en diferentes forms athlontado OOP 9 29-10-2004 16:10:16
Repetir varios controles en tiempo de ejecución Feñiz OOP 11 14-11-2003 10:41:16


La franja horaria es GMT +2. Ahora son las 05:48:56.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi