PDA

Ver la Versión Completa : RadioGroup1.ItemIndex


FGarcia
17-06-2006, 20:27:10
Saludos!
la pregunta es ¿que falla aqui?

este codigo funciona OK!


procedure TForm2.Label1Click(Sender: TObject);
begin
Label1.Caption := inttostr(radiogroup1.ItemIndex );
end;


pero este NO!!


Procedure Tform2.ConsultaNumeroOrden;
var
NumOrden, basSel : integer;
begin
NumOrden := StrToInt(NumeroOrden);
Label1.Caption := inttostr(RadioGroup1.ItemIndex);
end;


a lo que me refiero en ambos codigos es a Label1.Caption. Cuando ejecuto el segundo codigo aparece:

"Error access violation en module xxxxxxxx de adress yyyyy"

he visto varios hilos en el foro y en todos el codigo es similar, por lo que no entiendo que pasa. Uso Delphi 7.

Gracias por la ayuda!

marcoszorrilla
17-06-2006, 20:55:15
procedure TForm1.Label1Click(Sender: TObject);
begin
Label1.Caption := inttostr(radiogroup1.ItemIndex );
end;

procedure TForm1.Button1Click(Sender: TObject);
var
NumOrden, basSel : integer;
begin
//NumOrden := StrToInt(NumeroOrden);
Label1.Caption := inttostr(RadioGroup1.ItemIndex);
end;

El código lo he probado y funciona sin ningún problema en D7, he tenido que anular la línea de NumOrdern ya que numeroOrden no existe y no sé donde la tendrás declarada.

Un Saludo.

FGarcia
17-06-2006, 21:24:55
Gracias por la respuesta Marcos!

Si observas el codigo que envié el que funciona es un evento OnClick y el que no funciona es un Procedure; el codigo qu tu probaste son dos eventos OnClick

Bueno eso es lo que observe ya en mi programa que el Onclick funciona pero el procedure no.

Saludos!

marcoszorrilla
17-06-2006, 22:08:40
procedure TForm1.Button1Click(Sender: TObject);
var
NumOrden, basSel : integer;
begin
//NumOrden := StrToInt(NumeroOrden);
Form2.Label1.Caption := inttostr(Form2.RadioGroup1.ItemIndex);
end;

Un Saludo.

FGarcia
18-06-2006, 16:20:38
Hola !
Nuevamente por aqui. Marcos ese ultimo codigo tampoco funciona, mira hice esta prueba:

Procedure Tform1.ConsultaNumeroOrden; //este es un procedimiento
begin
Label1.Caption := IntToStr(RadioGroup1.ItemIndex);
end;

al cual llamo desde aqui:

Procedure TForm1.Button1Click(Sender: TObject);
begin
ConsultaNumeroOrden;
end;

y funciona perfectamente! Mi "teoria" es que el problema tiene que ver con Sender: TObject, aunque a esas profundidades de delphi aun no llego.

Gracias por la paciencia!

¡Feliz Día del Padre!

marcoszorrilla
18-06-2006, 16:33:06
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;


type
TForm1 = class(TForm)
RadioGroup1: TRadioGroup;
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure ConsultaNumeroOrden;
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
ConsultaNumeroOrden;
end;

Procedure Tform1.ConsultaNumeroOrden; //este es un procedimiento
begin
Label1.Caption := IntToStr(RadioGroup1.ItemIndex);
end;

end

Comprobado que así te va a funcionar.

Un Saludo.

FGarcia
21-06-2006, 20:45:03
Con el permiso de Neftali y Delphi.com.ar:

"Más tiempo dedicado a la pregunta=Mejores respuestas."

"Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla."

Y si efectivamente nunca comente que el procedure ConsultaNumeroOrden lo llamo desde el Form3, me refiero a mi primer mensaje de este hilo y tambien a que algo tiene que ver el parametro (Sender: TObject).

Gracias y Disculpas por la falta de informacion.