PDA

Ver la Versión Completa : TControlBar


TinkerBell
18-08-2005, 16:40:51
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í:


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,


(...) 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:


//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
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;