Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите найти ошибку


Страницы:   1 2

Romm ©   (2007-04-14 09:37:00) 


var
 OptionForm: TOptionForm;
 ArCheckBox: array[1..12] of TCheckBox;

procedure TOptionForm.FormCreate(Sender: TObject);
var
 num,count:Byte;
begin
 num:=0;
 for count:=0 to OptionForm.ComponentCount do
   begin
     if (Components[count] is TCheckBox) then
       begin
         inc(num);
         ArCheckBox[num]:=TCheckBox(Components[count]);
       end;
   end;
end;


проект компилируется, но при запуске проги вылетает окно с сообщением о ошибке: List index out of bounds (30). Окно с легкостью закрывает и прога работает нормально... ничего не понимаю.. :)


Romm   (2007-04-14 17:02:00) [1]

Оп, придумал:

Edit1.Text:=Copy(Mes,2,Length(Mes)-1);

правильно написал?А то я сегодня столько ачепяток делаю.. :)


Romm   (2007-04-14 16:53:00) [2]

Что-то я растерялся совсем и забыл как из строки str удалить3 первых символа... Напомните, люди добрые :)


Romm   (2007-04-14 16:26:00) [3]


> {RASkov}   (14.04.07 16:15) [24]

ок


{RASkov}   (2007-04-14 16:15:00) [4]

> [23] Romm ©   (14.04.07 14:17)

Можно
N:=555;
Object[i]:=TObject(N);
Вернуть
Integer(Object[i]);
Что-то в этом духе....


Romm   (2007-04-14 14:17:00) [5]

Такс, а можно число присвоить обьекту? :)


Romm   (2007-04-14 14:12:00) [6]


> ItemIndex?

несколько не то..

> Item.Object?

щас посмотрю..


{RASkov}   (2007-04-14 13:48:00) [7]

> Есть такое св-во или нет?!

ItemIndex? Item.Object?


Romm   (2007-04-14 13:42:00) [8]

Есть такое св-во или нет?! Если нет, то как можно по итему найти нужный адрес??


Romm   (2007-04-14 13:24:00) [9]

???


Romm   (2007-04-14 13:24:00) [10]

И вот еще что.. :)
У TComboBox есть свойство, похожее на Tag, но для каждого итема.
Например если выбрать n-й итем, то Socket[n].adress:=Ip_adress[n];


Romm   (2007-04-14 12:48:00) [11]


> Вдруг и это обидит

:)) ты еще точку забыл cb.Tag :))


ЮЮ   (2007-04-14 12:43:00) [12]

SocketActive[cbTag] .Active:= cb.Checked;

Жаже не знаю, исправлять ли свои ошибки. Вдруг и это обидит :)


Romm   (2007-04-14 12:42:00) [13]

ЮЮ ©   (14.04.07 12:37) [12]
ЮЮ ©   (14.04.07 12:39) [13]

Благодаря Вам я сегодня СТОЛЬКО всего узнал, пасиб...


Romm   (2007-04-14 12:40:00) [14]


> ЮЮ ©   (14.04.07 12:31) [11]


дык это ясно. я торопился и "всунул" не туда. И в таком виде.. короч - это все работает. Кроме кнопок и чекбоксов :))


ЮЮ   (2007-04-14 12:39:00) [15]

bt := TButton(FindComponent('Button' + IntToStr(cb.Tag)) );


ЮЮ   (2007-04-14 12:37:00) [16]

procedure TOptionForm.CheckBox1Click(Sender: TObject
var
 cb: TChechBox;
 bt: TButton;
begin
 if (Sender = nil) or not (Sender is TCheckBox) then exit;
 cb := TCheckBox(Sender);
 bt := FindComponent('Button' + IntToStr(cb.Tag));
 if (cb = nil)  then exit;
 bt.Enabled := cb.Checked;
 SocketActive[cbTag] := cb.Checked;
end;


ЮЮ   (2007-04-14 12:31:00) [17]


> ... Я тупой конечно, но не настолько :)))

Обсуждаемую величину на расстоянии не разглядеть, но:

Если MainForm - главная форма, а OptionForm - плдчиненная и не DataModule, то MainForm создается раньше OptionForm и с моменту выполнения TMainForm.FormCreate OptionForm просто обязан быть nil :)


Romm   (2007-04-14 12:30:00) [18]

Tag я у всех CheckBox'ов проставил с 1 по 12 для определения номера компонента.. Обьясни пожалуста как найти кнопу


ЮЮ   (2007-04-14 12:26:00) [19]

;{пытаюсь изменить св-во Button1, если кликнули на CheckBox1}

Оно и изменится, если, конечно в CheckBox1.tag стоит не 1, а указательна на Button1, установленные в RunTime. Если же стоит 1, то  Button1 надо сначала найти


Romm   (2007-04-14 12:25:00) [20]


> Во-первых, это метод....
> и вызываться соответственно...

вот за ЭТО спасибо ОГРОМНОЕ, а вот за это:
> // надеюсьOptionForm уже создан
>  // хотя вряд ли. Перенеси этот вызов в TMainForm.FormShow
>  
... Я тупой конечно, но не настолько :)))


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо