![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() у меня на форме динамически создаэтся 11 прогрессбаров:
Код:
bars[i] := TProgressBar.Create(Form1); bars[i].Parent := Form1; bars[i].Left := 22; bars[i].Width := 521; bars[i].Top := 22+40*i; Пробывал так: Код:
procedure TForm1.Timer1Timer(Sender: TObject); var pb : TProgressBar; i : integer; begin pb := TProgressBar(FindComponent('bars[' + IntToStr(i)+']')); if Assigned(pb) then begin pb.Position := pb.Position + 1; if pb.Position >= 100 then inc(pBar); if pBar > 11 then begin Timer1.Enabled := False; Button1.Enabled := true; end; end; end; Ясно что я неправильно выбираю прогресбары. Как их ПРАВИЛЬНО выбирать? |
#2
|
||||
|
||||
![]() Код:
pb := bars[i]; Пишу программы за еду. __________________ |
#3
|
|||
|
|||
![]() Код понял, а как сделать полем формы?
У меня bars : array[0..10] of TProgressBar; переменная формы Теперь возник такой вопрос. К прогресбару из таймера я обращаюсь радномно и надо если у ВСЕХ прогресбаров позиция больше или равна 100 произвести определенные действия. Как это красвио написать? Там вроде надо ксор использовать... И еще (код у меня пока далеко не оптимальный) но всеже хочу понять почему во время выполнения программы возникает ошибка времени выполнения "Access violation at adress 00403414 min module. Read of adress 00A28000"? Кто может здесь помочь? Последний раз редактировалось M.A.D.M.A.N., 25.03.2013 в 19:23. |
#4
|
||||
|
||||
![]() Цитата:
Пишу программы за еду. __________________ |
#5
|
||||
|
||||
![]() AV - доступ к компоненту/переменной/объекту, который отсутствует в памяти. Это может быть, например, выход за границы динамического массива. Посмотри, где появляется эта ошибка, и пройдись по функции (целиком) в отладчике. Там увидишь, где ошибка.
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#6
|
||||
|
||||
![]() 1. В вашем коде на срабатывание таймера совершенно не ясно какой бар вы обрабатываете. Чему равен индекс массива i ?
2. Вот что вы хотели сказать в этой строчке кода? Код:
if pBar > 11 then begin Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#7
|
||||
|
||||
![]() Привет, давно не виделись
![]() Код:
if pb.Position >= 100 then inc(pBar); if pBar > 11 then ![]() Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj Последний раз редактировалось PhoeniX, 24.03.2013 в 13:30. |
#8
|
||||
|
||||
![]() Цитата:
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#9
|
|||
|
|||
![]() ПРИ дебаге, он меня выкидывает в
Код:
begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. Я нашел какой кусок кода вызывает ошибку: Код:
Text[4] := TLabel.Create(Form1); Text[4].Parent :=Form1; Text[4].Caption := 'Áîðãè'; Text[4].Left := 435; Grid[4] := TDrawGrid.Create(Form1); Grid[4].Parent := Form1; Grid[4].Left := 421; Grid[4].RowCount := 1; Grid[4].ColCount := 1; Grid[4].Enabled := false; Grid[4].DefaultColWidth := 100; Grid[4].DefaultRowHeight := 6*debts; Grid[4].Width := 100; Grid[4].Height := 6*debts; Grid[4].Top := 600-Grid[4].Height+20; Grid[4].ScrollBars := ssNone; Grid[4].Tag := 5; Grid[4].OnDrawCell:=DrawGrid1DrawCell; Последний раз редактировалось M.A.D.M.A.N., 25.03.2013 в 19:24. |
#10
|
||||
|
||||
![]() В каком методе этот код? И в какой строчке вылетает?
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#11
|
|||
|
|||
![]() Цитата:
Код:
Text[4] := TLabel.Create(Form1); Код:
Text[3] := TLabel.Create(Form1); P.S. Код:
Grid : array[0..16] of TDrawGrid; Text : array[0..16] of TLabel; |
#12
|
||||
|
||||
![]() Нужно больше кода!
![]() Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#13
|
|||
|
|||
![]() Вот весь код процедуры:
Код:
procedure TForm1.Button1Click(Sender: TObject); var i, x, y : integer; tm : TTimer; pb : TProgressBar; lb : TLabel; Msg:TWMGetMinMaxInfo; Grid : array[0..16] of TDrawGrid; Text : array[0..16] of TLabel; begin i:= 0;// Нове вікно? з "даними тестування" + посил на принтер if Timer1<>Nil then Timer1.Free; for i := 1 to 11 do begin pb := bars[i-1]; lb := labels[i-1]; if pb<>Nil then begin pb.Visible := false; pb.Free; lb.Free; end; end; x := screen.Width; y := screen.Height; Form1.Left := (x-1168) div 2; Form1.Top := y-800; Form1.Width := 1170; Button1.Free; Height := 700; // Агресія Text[0] := TLabel.Create(Form1); Text[0].Parent :=Form1; Text[0].Caption := 'Агресія'; Text[0].Left := 30; Grid[0] := TDrawGrid.Create(Form1); Grid[0].Tag := 1; Grid[0].Parent := Form1; Grid[0].Height := 6*agres; Grid[0].Left := 1; Grid[0].Top := Grid[0].Height - 600+20; Grid[0].RowCount := 1; Grid[0].ColCount := 1; Grid[0].Enabled := false; Grid[0].DefaultColWidth := 100; Grid[0].DefaultRowHeight := 6*agres; Grid[0].Width := 100; Grid[0].ScrollBars := ssNone; Grid[0].OnDrawCell:=DrawGrid1DrawCell; // Алкоголь Text[1] := TLabel.Create(Form1); Text[1].Parent :=Form1; Text[1].Caption := 'Алкоголь'; Text[1].Left := 130; Grid[1] := TDrawGrid.Create(Form1); Grid[1].Parent := Form1; Grid[1].Left := 106; Grid[1].Tag := 2; Grid[1].RowCount := 1; Grid[1].ColCount := 1; Grid[1].Enabled := false; Grid[1].DefaultColWidth := 100; Grid[1].DefaultRowHeight := 6*alcohol; Grid[1].Width := 100; Grid[1].Height := 6*alcohol; Grid[1].Top := 600-6*alcohol + 20; Grid[1].ScrollBars := ssNone; Grid[1].OnDrawCell:=DrawGrid1DrawCell; // Алкоголь Text[2] := TLabel.Create(Form1); Text[2].Parent :=Form1; Text[2].Caption := 'Шеф'; Text[2].Left := 250; Grid[2] := TDrawGrid.Create(Form1); Grid[2].Parent := Form1; Grid[2].Left := 211; Grid[2].RowCount := 1; Grid[2].ColCount := 1; Grid[2].Enabled := false; Grid[2].DefaultColWidth := 100; Grid[2].DefaultRowHeight := 6*boss; Grid[2].Width := 100; Grid[2].Height := 6*boss; Grid[2].Top := 600-Grid[2].Height+20; Grid[2].ScrollBars := ssNone; Grid[2].Tag := 3; Grid[2].OnDrawCell:=DrawGrid1DrawCell; // Депресія Text[3] := TLabel.Create(Form1); Text[3].Parent :=Form1; Text[3].Caption := 'Депресія'; Text[3].Left := 345; Grid[3] := TDrawGrid.Create(Form1); Grid[3].Parent := Form1; Grid[3].Left := 316; Grid[3].RowCount := 1; Grid[3].ColCount := 1; Grid[3].Enabled := false; Grid[3].DefaultColWidth := 100; Grid[3].DefaultRowHeight := 6*depression; Grid[3].Width := 100; Grid[3].Height := 6*depression; Grid[3].Top := 600-Grid[3].Height+20; Grid[3].ScrollBars := ssNone; Grid[3].Tag := 4; Grid[3].OnDrawCell:=DrawGrid1DrawCell; // Борги Text[4] := TLabel.Create(Form1); Text[4].Parent :=Form1; Text[4].Caption := 'Борги'; Text[4].Left := 435; Grid[4] := TDrawGrid.Create(Form1); Grid[4].Parent := Form1; Grid[4].Left := 421; Grid[4].RowCount := 1; Grid[4].ColCount := 1; Grid[4].Enabled := false; Grid[4].DefaultColWidth := 100; Grid[4].DefaultRowHeight := 6*debts; Grid[4].Width := 100; Grid[4].Height := 6*debts; Grid[4].Top := 600-Grid[4].Height+20; Grid[4].ScrollBars := ssNone; Grid[4].Tag := 5; Grid[4].OnDrawCell:=DrawGrid1DrawCell; // Зарплата Text[5] := TLabel.Create(Form1); Text[5].Parent :=Form1; Text[5].Caption := 'Зарплата'; Text[5].Left := 540; Grid[5] := TDrawGrid.Create(Form1); Grid[5].Parent := Form1; Grid[5].Left := 526; Grid[5].RowCount := 1; Grid[5].ColCount := 1; Grid[5].Enabled := false; Grid[5].DefaultColWidth := 100; Grid[5].DefaultRowHeight := 6*salary; Grid[5].Width := 100; Grid[5].Height := 6*salary; Grid[5].Top := 600-Grid[5].Height+20; Grid[5].ScrollBars := ssNone; Grid[5].Tag := 6; Grid[5].OnDrawCell:=DrawGrid1DrawCell; // Інформація Text[6] := TLabel.Create(Form1); Text[6].Parent :=Form1; Text[6].Caption := 'Інформація'; Text[6].Left := 630; Grid[6] := TDrawGrid.Create(Form1); Grid[6].Parent := Form1; Grid[6].Left := 631; Grid[6].RowCount := 1; Grid[6].ColCount := 1; Grid[6].Enabled := false; Grid[6].DefaultColWidth := 100; Grid[6].DefaultRowHeight := 6*information; Grid[6].Width := 100; Grid[6].Height := 6*information; Grid[6].Top := 600-Grid[6].Height+20; Grid[6].ScrollBars := ssNone; Grid[6].Tag := 7; Grid[6].OnDrawCell:=DrawGrid1DrawCell; // Лідер Text[7] := TLabel.Create(Form1); Text[7].Parent :=Form1; Text[7].Caption := 'Лідер'; Text[7].Left := 738; Grid[7] := TDrawGrid.Create(Form1); Grid[7].Parent := Form1; Grid[7].Left := 736; Grid[7].RowCount := 1; Grid[7].ColCount := 1; Grid[7].Enabled := false; Grid[7].DefaultColWidth := 100; Grid[7].DefaultRowHeight := 6*leader; Grid[7].Width := 100; Grid[7].Height := 6*leader; Grid[7].Top := 600-Grid[7].Height+20; Grid[7].ScrollBars := ssNone; Grid[7].Tag := 8; Grid[7].OnDrawCell:=DrawGrid1DrawCell; // Статус Text[8] := TLabel.Create(Form1); Text[8].Parent :=Form1; Text[8].Caption := 'Статус'; Text[8].Left := 830; Grid[8] := TDrawGrid.Create(Form1); Grid[8].Parent := Form1; Grid[8].Left := 841; Grid[8].RowCount := 1; Grid[8].ColCount := 1; Grid[8].Enabled := false; Grid[8].DefaultColWidth := 100; Grid[8].DefaultRowHeight := 6*status; Grid[8].Width := 100; Grid[8].Height := 6*status; Grid[8].Top := 600-Grid[8].Height+20; Grid[8].ScrollBars := ssNone; Grid[8].Tag := 9; Grid[8].OnDrawCell:=DrawGrid1DrawCell; // Наркотики Text[9] := TLabel.Create(Form1); Text[9].Parent :=Form1; Text[9].Caption := 'Наркотики'; Text[9].Left := 950; Grid[9] := TDrawGrid.Create(Form1); Grid[9].Parent := Form1; Grid[9].Left := 946; Grid[9].RowCount := 1; Grid[9].ColCount := 1; Grid[9].Enabled := false; Grid[9].DefaultColWidth := 100; Grid[9].DefaultRowHeight := 6*drugs; Grid[9].Width := 100; Grid[9].Height := 6*drugs; Grid[9].Top := 600-Grid[9].Height+20; Grid[9].ScrollBars := ssNone; Grid[9].Tag := 10; Grid[9].OnDrawCell:=DrawGrid1DrawCell; // Звільнення Text[10] := TLabel.Create(Form1); Text[10].Parent :=Form1; Text[10].Caption := 'Звільнення'; Text[10].Left := 1060; Grid[10] := TDrawGrid.Create(Form1); Grid[10].Parent := Form1; Grid[10].Left := 1051; Grid[10].RowCount := 1; Grid[10].ColCount := 1; Grid[10].Enabled := false; Grid[10].DefaultColWidth := 100; Grid[10].DefaultRowHeight := 6*dismissal; Grid[10].Width := 100; Grid[10].Height := 6*dismissal; Grid[10].Top := 600-Grid[10].Height+20; Grid[10].ScrollBars := ssNone; Grid[10].Tag := 11; Grid[10].OnDrawCell:=DrawGrid1DrawCell; Button2.Left := (Form1.Width-Button2.Width) DIV 2; Button2.Top := 630; Button2.Visible := true; end; Код:
for i:=0 to 16 do begin Text[i] := TLabel.Create(Form1); end; Код:
for i:=0 to 16 do begin ShowMessage(IntToStr(i)); Text[i] := TLabel.Create(Form1); end; Последний раз редактировалось lostbananan, 24.03.2013 в 19:02. |
#14
|
||||
|
||||
![]() Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#15
|
|||
|
|||
![]() Вставил в код:
Код:
for i:=0 to 16 do begin Application.ProcessMessages; Text[i] := TLabel.Create(Form1); Application.ProcessMessages; end; Application.ProcessMessages; НИЧЕГО НЕ ВЫДАЕТ! А ошибка времени исполнения осталасб. Что делать может кто с подобным стыкался? Помогите! Я уже совсем зациклился. Код Код:
for i:=0 to 16 do begin ShowMessage(IntToStr(i)); Text[i] := TLabel.Create(Form1); end; ShowMessage('Після циклу'); Что за мистика в чем проблема может кто подскажет!!! Последний раз редактировалось M.A.D.M.A.N., 25.03.2013 в 19:23. |