Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Problema con RadioButtons en diferentes procedures (https://www.clubdelphi.com/foros/showthread.php?t=43326)

Stilgar 08-05-2007 20:54:34

Problema con RadioButtons en diferentes procedures
 
Buenas a tod@s!

tengo una pequeña duda y espero que me podais ayudar:

En un procedure creo con su constructor unos RadioButtons en un GroupBox (TRadioButton.Create(Self)). Una vez creados quiero acceder a la propiedad 'checked' pero desde el evento Click de un boton pero me da un error de Access Violation.

¿cual puede ser el problema?
¿es posible que al crear estos componentes en ejecución no pueda acceder a ellos desde otro procedimiento?

Los componentes los creo con un indice en el primer procedimiento dentro de un bucle de esta manera:

var
KC: array of TRadioButton;
...
while not OraStoredProc1.Eof do
begin
KC[i] := TRadioButton.Create(Self);
KC[i].Parent := Form1.GroupBox2;
KC[i].Height := 17;
...
end;

para acceder a ellos desde el boton creo un nuevo array de TRadioButton con el mismo nombre y los recorro:

var
KC: array of TRadioButton;
...
for i := 0 to 3 do
if KC[i].checked = true then ...


¿Es esto correcto?

Gracias por adelantado y un saludo!!

jhonny 08-05-2007 21:03:16

Intenta crear KC fuera del procedimiento (De manera global) y nos cuentas como te va. Ahh, y no lo vuelvas a declarar en el OnClick del botón.

roman 08-05-2007 21:03:49

Cita:

Empezado por Stilgar
¿cual puede ser el problema?

[...]

Los componentes los creo con un indice en el primer procedimiento dentro de un bucle de esta manera:

[...]

para acceder a ellos desde el boton creo un nuevo array de TRadioButton con el mismo nombre y los recorro:

Yo creo que éste es el problema. Ambos areglos son variables locales al procedimiento y el segundo no tiene nada que ver con el primero. Declara el arreglo en el formulario y usa el mismo en ambos procedimientos.

// Saludos

roman 08-05-2007 21:04:19

¡Ah, bueno! Eso mismo :)

jhonny 08-05-2007 21:09:09

Jejeje, De todas maneras a mi respuesta le faltaba explicar el "por que", habilidad que tu posees indudablemente :D

Stilgar 08-05-2007 21:14:46

genial, funcionó! vaya lapsus :p:p:p, no se como se me ocurrió declararla en dos procedimientos diferentes
muchas gracias!!!! :D:D


La franja horaria es GMT +2. Ahora son las 00:17:19.

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