Добрый день. Хм вроде вчера создал эту тему а сегодня уже ее нету
Ну да ладно напишу еще раз.
Делаю прогу которая должна переписывать файл. но также должна создавать сабменюшки. Создавать должна сама тоесть брать все инфу с файла. но до этого дело не доходит. Все время происходит глюк с проверкой. Сначала она работала только по именам кнопок но все таки сделал что проверяет по кепшионам.
Ну так вот. Программа дложна запрещать создание 2 кнопок с одинаковыми кепшинами. Тоесть при создании новой кнопки идет проверка по существующим кнопка а точнее их кепшионам. И если такое имя существует то выдать сообщение об ошибке.
Ну в общем делаю все вроде правильо с точки зрения моей логики но всеже все время мешает 1 недороботка которая берется непойму откуда.
в общем вот проверка:
void __fastcall TForm2::Button1Click(TObject *Sender)
{
int h,a;
a=0;
for (h=0; h<=Form1->pm->Items->Items[1]->Count - 1; h++)
if (nameedit->Text == Form1->pm->Items->Items[1]->Items[h]->Caption || nameedit->Text == "&" + Form1->pm->Items->Items[1]->Items[h]->Caption )
a=1;
else
a=0;
if (a==1)
{
MessageDlg("извините, но сервер с таким именем существует",mtWarning, TMsgDlgButtons() << mbOK, 0);
nameedit->Text="";
loginedit->Text="";
portedit->Text="";
Form2->Close();
}
else
{
TMenuItem *NewItem = new TMenuItem(Form1->pm);
NewItem->Caption = Form2->nameedit->Text;
Form1->pm->Items->Items[1]->Add(NewItem);
int i,j;
String s,s2;
FILE *fp;
fp = fopen("MainMenu.mm","w");
for ( i=0; i<=Form1->pm->Items->Count - 1;i++)
{
s=Form1->pm->Items->Items[i]->Caption;
fprintf(fp,"%d %s\n", i,s);
}
fclose(fp);
FILE *fp2;
fp2=fopen("SubMenu.sub","w");
for (j=0; j<=Form1->pm->Items->Items[1]->Count - 1; j++)
{
s2=Form1->pm->Items->Items[1]->Items[j]->Caption;
fprintf(fp2,"%d %s\n", j,s2);
}
fclose(fp2);
nameedit->Text="";
loginedit->Text="";
portedit->Text="";
a=0;
Form2->Close();
}
}
тоесть сначало проверяет все кнопки и если есть такое имя то делает а=1 а потом идет проверка на а.
но вот для само проверки решил сделать кнопку которая записывает в файл № и кепшион кнопок сабменю и тут ты выяснилось:
Делаю первую кнопку UО в файл записывается
0 UO
Вот тут уже при след. создании кнопки должна идти проверка. И если я сново напиши UO то должно появится сообщение. НО когда я пишу еще раз UO и смотрю на кнопку то вижу что созданы две полность одинаковые кнопки НО проверив файл там нечто другое
0 &UO
1 UO
откуда берется этот символ??
Если еще раз написать UO тогда ввообще получается
0 &UO
1 U&O
2 UO
И вот только после этого если я начну создавать кнопку с именем &UO или U&O я получаю сообщение что кнопка существует. А при создании просто UO создаются все новые кнопки.
Не моглибы подсказать в чем загвоздка и что я неверно делаю?