Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   TControlBar (https://www.clubdelphi.com/foros/showthread.php?t=24388)

TinkerBell 18-08-2005 16:40:51

TControlBar
 
Buenas tardes a tod@s:

Mi problema es el siguiente, en mi aplicación tengo un ControlBar que tiene a su vez varias ToolBar, me gustaría conocer en tiempo de ejecución cuantas toolbar tiene asignadas y el nombre de ellas, lo he intentado con Controls, con dockclient...pero no he conseguido lo que quiero, me podriais ayudar??

Muchas gracias de antemano, un saludo

vtdeleon 18-08-2005 21:37:09

Saludos

Intentalo con un bucle, recorriendo todos los componentes del formulario y chequiando si es un ToolBar

componentCount

dec 18-08-2005 21:41:27

Hola,

Creo que puedes lograr lo que persigues haciendo uso del método "FindChildControl" conque cuentan los "TControlBar", los cuales lo heredan de "TWinControl". Sería algo más o menos así:

Código Delphi [-]
  procedure TForm1.BitBtn1Click(Sender: TObject);
  begin
    if ControlBar1.FindChildControl('ToolBar1') <> nil then
      Caption := 'ToolBar1 está en el ControlBar1';
  end;

TinkerBell 19-08-2005 09:32:47

Gracias dec,

Habia intentado algo parecido a tu opción pero creo que no lo hacia correctamente, lo probaré de esa manera aunque haciendo otras pruebas he encontrado otra cosa que me puede servir.

Muchas gracias denuevo.;)

dec 20-08-2005 03:25:22

Hola,

Cita:

Empezado por TinkerBell
(...) haciendo otras pruebas he encontrado otra cosa que me puede servir.

¿Podrías decir el qué, por si le puede resultar de utilidad a alguien? Gracias ;)

TinkerBell 22-08-2005 10:14:09

Es muy simple pero para lo que necesito me vale, es lo siguiente:

Código Delphi [-]
//una vez encontrado el componente controlBar se lo asigno a una variable
controlBar := TControlBar(Components[i]);
//recorro los componentes de mi formulario y al encuentro una ToolBar(*)
     for j := 0 to componentCount -1 do
     begin
        if (Components[j].ClassType = TToolBar) then
        begin
         barra := TToolBar(Components[j]);
         for k := 0 to controlBar.ControlCount - 1 do
         begin
//(*) compruebo si el Name de este componente encontrado corresponde 
//con el nombre de algún componente del ControlBar
            if barra.Name = controlbar.Controls[k].Name then

KmoCuesta 31-07-2007 23:38:59

Esto es un poco mas corto
 
medio tarde pero bue.. para el que busque:D

i:=0;
For I:= Form1.ComponentCount -1 downto 0 do
begin
if Components[i] is TToolButton then
TToolButton (Components[i]).Enabled := False;//pon la propedad que te interese
end;


La franja horaria es GMT +2. Ahora son las 03:58:03.

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