Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Algo asi como un 'parsing' ... (https://www.clubdelphi.com/foros/showthread.php?t=76829)

TiammatMX 29-11-2011 22:14:40

Algo asi como un 'parsing' ...
 
Buena tarde, jóvenes. Espero que la estén pasando fenomenal con el condenado frío que nos tocó en México.

Les platico. Tengo 30 TCheckBox's que se llaman casi igual, chckboxLesiones'nn', de 01 a 30. Cada uno de ellos debe reaccionar al contenido de un registro. La recreación del nombre de cada Checkbox ya la tengo controlada, pero requiero hacer un "parsing" directo al contenido del TCheckBox que se trate en el nombre.

El código que tengo para "recuperar" el nombre del TCheckBox:

Código Delphi [-]
procedure TfrmEvlcnFisica.Revision;
var
  adoqryTmprl : TADOQuery;
  wsSQL : widestring;
  sNmbrChckBox : string;
begin
  adoqryTmprl := TADOQuery.Create(Self);
  with adoqryTmprl do
  begin
    wsSQL := 'SELECT COUNT(*) AS CONTEO FROM HT12_APC_LESION WHERE (HT1_FECHA = ' +
            QuotedStr(FormatDateTime('yyyy-mm-dd',dFchRgstr)) + ') AND (HT1_HORA = ' +
            IntToStr(iHraRgstr) + ') AND (E2_CTRL_PAC = ' +
            QuotedStr(sPcntRgstr)+');';
    Connection := frmContenedor.adoCnnctnHipocrates;
    Close;
    SQL.Clear;
    SQL.Add(wsSQL);
    Open;
    if FieldByName('Conteo').AsInteger > 0 then
    begin
      chckboxSinLesiones.State := cbUnchecked;
      wsSQL := 'SELECT * FROM HT12_APC_LESION WHERE (HT1_FECHA = ' +
              QuotedStr(FormatDateTime('yyyy-mm-dd',dFchRgstr)) + ') AND (HT1_HORA = ' +
              IntToStr(iHraRgstr) + ') AND (E2_CTRL_PAC = ' +
              QuotedStr(sPcntRgstr)+');';
      Close;
      SQL.Clear;
      SQL.Add(wsSQL);
      Open;
      while not Eof do
      begin
        sNmbrChckBox := 'chckboxLesiones'+RightStr('00'+Trim(IntToStr(DvlvrIDChckBx(FieldValues['C53_TIPO_LESION_ID']))),2);
        // aquí requiero hacer el 'parsing', y poner en "checked" el TCheckBox del que ya conozco el nombre...
        Next;
      end;
    end
    else
      chckboxSinLesiones.State := cbChecked;

    Destroy;
  end;
end;

Yo sé que andan circulando algunos codiguitos para simular un parsing al nombre de un componente, pero no los he localizado, ¿algún alma caritativa que pueda ayudarme en éste menester?

Agradeciendo de antemano.

ecfisa 29-11-2011 23:36:02

Hola tiamat.

Si no entendí mál lo que estas buscando, luego de asignado el valor a la variable sNmbrChckBox, agregá esta línea:
Código Delphi [-]
   ...
   (FindComponent(sNmbrChckBox) as TCheckBox).Checked:= True;
   ...

Saludos.


La franja horaria es GMT +2. Ahora son las 17:36:15.

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