Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.12.2009, 15:02   #1
Muniz
 
Регистрация: 26.11.2009
Сообщений: 8
По умолчанию Движение панелей

Создаю некое количество панелей во время выполнения программы. Теперь мне надо эти панели перемещать, но при попытке - возникает ошибка.
Подскажите, что надо объявить или сделать, чтоб это было возможно?
Muniz вне форума Ответить с цитированием
Старый 30.12.2009, 15:16   #2
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Мышкой тягать их хочешь ?
Если да - то посмотри вложение.
Вложения
Тип файла: rar Panels_Move.rar (7.9 Кб, 20 просмотров)
"Заряженному танку в дуло не смотрят" @Dekmer in WoT

Последний раз редактировалось Kotofff; 30.12.2009 в 15:27.
Kotofff вне форума Ответить с цитированием
Старый 30.12.2009, 15:29   #3
Muniz
 
Регистрация: 26.11.2009
Сообщений: 8
По умолчанию

Нет, не мышкой. Просто после создания, в зависимости от разных условий некоторые из них будут перемещаться.
Muniz вне форума Ответить с цитированием
Старый 30.12.2009, 15:45   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
при попытке - возникает ошибка
Похоже, вы напортачили при создании панелей.
Приведите код создания и перемещения.
mihali4 вне форума Ответить с цитированием
Старый 30.12.2009, 15:46   #5
Muniz
 
Регистрация: 26.11.2009
Сообщений: 8
По умолчанию

Вот часть кода:
Код:
var i,n:integer; 
panela:array[1..225] of tpanel;
m:array[0..15] of integer;
begin
 n:=strtoint(form1.edit1.text); 
 p:=0;
  for i:=1 to n do
   begin
    panela[i]:=Tpanel.Create(form2);
    with panela[i] do
     begin
      parent:=form2;
      caption:=inttostr(m[i]);
      height:=17;
      width:=33;
      top:=50;
      left:=8+p;
      p:=p+48;
     end;
   end;
if .... then
sdwig(1,2);
end;

procedure tform2.sdwig(a,b:integer);
begin
 tpanel(form2.FindComponent('panel'+inttostr(a))).left:=
 tpanel(form2.FindComponent('panel'+inttostr(a))).left+8;
 tpanel(form2.FindComponent('panel'+inttostr(b))).left:=
 tpanel(form2.FindComponent('panel'+inttostr(b))).left-8;
end;
Использую такую процедуру для движения панели, так как не известно заранее, какие панели будут перемещаться...Прошу помочь найти ошибку.

Последний раз редактировалось Muniz; 30.12.2009 в 15:57.
Muniz вне форума Ответить с цитированием
Старый 30.12.2009, 16:01   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Ищете (FindComponent) по имени, а при создании имен панелям не присваиваете...
Добавьте
Код:
with panela[i] do
     begin
      parent:=form2;
      caption:=inttostr(m[i]);
      height:=17;
      width:=33;
      name:='panel'+IntToStr(i);
      top:=50;
      left:=8+p;
      p:=p+48;
     end;
mihali4 вне форума Ответить с цитированием
Старый 30.12.2009, 16:06   #7
Muniz
 
Регистрация: 26.11.2009
Сообщений: 8
По умолчанию

Всем спасибо, я разобрался:
Код:
procedure tform2.sdwig(a,b:integer;x:array of tpanel);
begin
 x[a].left:=x[a].Left+8;
 x[b].left:=x[b].Left-8;
end;
Muniz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание панелей с заголовком Homer_J_Simpson Общие вопросы по Java, Java SE, Kotlin 3 05.12.2009 10:42
Настройка панелей меню Excel kovalevskivf Microsoft Office Excel 8 18.11.2009 17:20
random расположение панелей Aндрей Помощь студентам 4 23.09.2009 20:03
Правильное выравнивание панелей amigo555 Общие вопросы Delphi 1 04.05.2009 12:44
Список панелей Кронос Общие вопросы Delphi 1 23.08.2007 16:27