Access violation
Form3->RadioGroup1->ItemIndex=0;
появляется сообщение:Access violation...
(у Radiogroup по событиям ничего не делается)
В чем прикол?
Пошаговую отладку пробовал?
Нет, сразу, как только у меня появляются ошибки, я, неоткладывая, пишу об этом на форуме. :)
Именно пошаговой отладкой и обнаружил, что при попытке присвоения значения ITEMINDEXу возникает ошибка.
Нет, сразу, как только у меня появляются ошибки, я, неоткладывая, пишу об этом на форуме. :)
Именно пошаговой отладкой и обнаружил, что при попытке присвоения значения ITEMINDEXу возникает ошибка.
Form3 или RadioGroup1 хоть создан?
Или они обявлены только как
TForm * Form3;
TRadioGroup1 * RadioGroup1;
Form3 или RadioGroup1 хоть создан?
Или они обявлены только как
TForm * Form3;
TRadioGroup1 * RadioGroup1;
Созданы,причем строчка:
regkey.WriteInteger("port",Form3->RadioGroup1->ItemIndex);
выполняется, т.е. читать итеминекс можно, а изменить не получается...
Созданы,причем строчка:
regkey.WriteInteger("port",Form3->RadioGroup1->ItemIndex);
выполняется, т.е. читать итеминекс можно, а изменить не получается...
А сколько Item'ов в твоей Radiogroup?
А сколько Item'ов в твоей Radiogroup?
5
после строчки:
Form3->RadioGroup1->ItemIndex=0;
появляется сообщение:Access violation...
(у Radiogroup по событиям ничего не делается)
В чем прикол?
Похоже это глюк. Вот такой простой пример. Пашет на ура:
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
RadioGroup1->ItemIndex = 0;
}
ЗЫ: Скорее всего к моменту вызова Form3->RadioGroup1->ItemIndex=0; либо Form3, либо RadioGroup1 == NULL.
Похоже это глюк. Вот такой простой пример. Пашет на ура:
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
RadioGroup1->ItemIndex = 0;
}
ЗЫ: Скорее всего к моменту вызова Form3->RadioGroup1->ItemIndex=0; либо Form3, либо RadioGroup1 == NULL.
Когда radiogroup на оновной форме то и у меня пашет на ура, а когда на Form2(3,4,5...) - выскакивает ошибка...
Когда radiogroup на оновной форме то и у меня пашет на ура, а когда на Form2(3,4,5...) - выскакивает ошибка...
Покажи СВОЙ КОД.
Покажи СВОЙ КОД.
void __fastcall TForm1::FormCreate(TObject *Sender)
{
TRegistry& regkey = *new TRegistry;
if(regkey.OpenKey("Software\\portexch",false))
{
Form3->RadioGroup1->ItemIndex=(regkey.ReadInteger("protocol"));
Form3->RadioGroup2->ItemIndex=(regkey.ReadInteger("port"));
Form3->RadioGroup3->ItemIndex=(regkey.ReadInteger("baudrate"));
portchange();
}
delete ®key;
...
}
Действительно, почему-то, как и говорил AlexandrVSmirno, Form3==NULL. Но почему, и что делать?
void __fastcall TForm1::FormCreate(TObject *Sender)
{
TRegistry& regkey = *new TRegistry;
if(regkey.OpenKey("Software\\portexch",false))
{
Form3->RadioGroup1->ItemIndex=(regkey.ReadInteger("protocol"));
Form3->RadioGroup2->ItemIndex=(regkey.ReadInteger("port"));
Form3->RadioGroup3->ItemIndex=(regkey.ReadInteger("baudrate"));
portchange();
}
delete ®key;
...
}
Эт мы уже видели... Здесь ошибок нет. Покажи более глобальный код.
Или выложи свой проект.
Действительно, почему-то, как и говорил AlexandrVSmirno, Form3==NULL. Но почему, и что делать?
Form3 должна быть создана перед использованием. Где она создаётся? В конструкторе Form1? Если в другом месте, то её просто напросто нет в момент вызова TForm1::FormCreate, который вызывается сразу после конструктора. И не советую вообще использовать TForm1::FormCreate - не нужен он, достаточно одного конструктора.