Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Технологии > Помощь студентам
Регистрация

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 26.11.2009, 23:52   #1
Seran4ek
Форумчанин
 
Регистрация: 14.10.2009
Сообщений: 94
Репутация: 18
По умолчанию RadioGroup, отрисовка линий и запоминание координат.

Вобщем соль вот в чом.
име. функцию построение линии DrawLine. вызываю её с 6 параметрами( 1е три координаты 1й точки, вторые три-координаты 2й точки).
у меня нарисовано 4 прямые.
все норм.
теперь мне нужно зделать возможность разносить их в пространстве. я к кое каким координатам прибавляю значение считываемое с ТрекБара.
при этом двигаются ВСЕ 4 линии в разных направлениях.
но я также хочу зделать возможность двигать 1 линию.
Сделал радиогрупп, при выборе первого итема двигаю первую линию. но и тут вся проблема. когда переключаю на второй итем, то значение старых координат перебрасывается на текущую линию, а 1я уходит на стандартные координаты.
вся соль в том, что там условные операторы(я проверяю какой итем активен) и поэтому выполняется только ОДНО условие и как следствие только одна линия имеет другие координаты, все остальные стандартные.
а как зделать чтобы при переключении позиция линии предыдущей сохранялась?
Seran4ek вне форума   Ответить с цитированием
Старый 27.11.2009, 09:08   #2
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,840
Репутация: 6850
По умолчанию

Ничего не понял... Давай ты проект прикрепишь, и по человечески объяснишь.
__________________
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 27.11.2009, 17:06   #3
Seran4ek
Форумчанин
 
Регистрация: 14.10.2009
Сообщений: 94
Репутация: 18
По умолчанию

Код:
DrawLine(-5,1+TB_Pos/10,-1-TB_Pos/10,5,1+TB_Pos/10,-1-TB_Pos/10,5,1,1,0);
  DrawLine(-5,-1-TB_Pos/10,-1-TB_Pos/10,5,-1-TB_Pos/10,-1-TB_Pos/10,5,1,1,0);
  DrawLine(-5,1+TB_Pos/10,1+TB_Pos/10,5,1+TB_Pos/10,1+TB_Pos/10,5,1,1,0);
  DrawLine(-5,-1-TB_Pos/10,1+TB_Pos/10,5,-1-TB_Pos/10,1+TB_Pos/10,5,1,1,0);
это я рисую 4 линии(1е три цифры -координаты 1й точки, 1е три-координаты 2й точки). TB_Pos- пизиция трекбара.(линии развигаются все сразу)
я хочу также сделать возможным передвигать каждую линии по отдельности.
для этого у меня есть РадиоГрупп с 4 итемами. когда один из них активирован то двигаю только 1 линию.

Код:
if form1.ProvodRG.ItemIndex=0 then
    begin
    P[0]:=TB_Pos;
    DrawLine(-5,1+P[0]/10,-1-P[0]/10,5,1+P[0]/10,-1-P[0]/10,5,1,1,0);
    DrawLine(-5,-1-P[1]/10,-1-P[1]/10,5,-1-P[1]/10,-1-P[1]/10,5,1,1,0);
    DrawLine(-5,1+P[2]/10,1+P[2]/10,5,1+P[2]/10,1+P[2]/10,5,1,1,0);
    DrawLine(-5,-1-P[3]/10,1+P[3]/10,5,-1-P[3]/10,1+P[3]/10,5,1,1,0);
    end
  else if form1.ProvodRG.ItemIndex=1 then
    begin
    P[1]:=TB_Pos;
      DrawLine(-5,1+P[0]/10,-1-P[0]/10,5,1+P[0]/10,-1-P[0]/10,5,1,1,0);
    DrawLine(-5,-1-P[1]/10,-1-P[1]/10,5,-1-P[1]/10,-1-P[1]/10,5,1,1,0);
    DrawLine(-5,1+P[2]/10,1+P[2]/10,5,1+P[2]/10,1+P[2]/10,5,1,1,0);
    DrawLine(-5,-1-P[3]/10,1+P[3]/10,5,-1-P[3]/10,1+P[3]/10,5,1,1,0);
    end
  else if form1.ProvodRG.ItemIndex=2 then
    begin
    P[2]:=TB_Pos;
      DrawLine(-5,1+P[0]/10,-1-P[0]/10,5,1+P[0]/10,-1-P[0]/10,5,1,1,0);
    DrawLine(-5,-1-P[1]/10,-1-P[1]/10,5,-1-P[1]/10,-1-P[1]/10,5,1,1,0);
    DrawLine(-5,1+P[2]/10,1+P[2]/10,5,1+P[2]/10,1+P[2]/10,5,1,1,0);
    DrawLine(-5,-1-P[3]/10,1+P[3]/10,5,-1-P[3]/10,1+P[3]/10,5,1,1,0);
    end
    else if form1.ProvodRG.ItemIndex=3 then
    begin
    P[3]:=TB_Pos;
    DrawLine(-5,1+P[0]/10,-1-P[0]/10,5,1+P[0]/10,-1-P[0]/10,5,1,1,0);
    DrawLine(-5,-1-P[1]/10,-1-P[1]/10,5,-1-P[1]/10,-1-P[1]/10,5,1,1,0);
    DrawLine(-5,1+P[2]/10,1+P[2]/10,5,1+P[2]/10,1+P[2]/10,5,1,1,0);
    DrawLine(-5,-1-P[3]/10,1+P[3]/10,5,-1-P[3]/10,1+P[3]/10,5,1,1,0);
    end
  else if form1.ProvodRG.ItemIndex=-1 then
    begin
    DrawLine(-5,1,-1,5,1,-1,5,1,1,0);
    DrawLine(-5,-1,-1,5,-1,-1,5,1,1,0);
    DrawLine(-5,1,1,5,1,1,5,1,1,0);
    DrawLine(-5,-1,1,5,-1,1,5,1,1,0);
    end;
P[0]..P[3] это та координата которую нужно прибавить к каждой линии. В начале они занулены.
проблема. допустим я выбрал итем 0. выполнилось условие первое, с трек бара считали, присвоили P[0], отодвинули 1ю линию. теперь хотим подвинуть вторую. выбираем итем 2. и значение с трек бара скидывается на P[2] и вторая линия сразу отодвигается на на координаты, на которые была отодвинута первая линия.
а мне нужно, чтобы первая линия сохранила свои значения, я переключил итем, и подвинул вторую, третью, но при этом предыдущие оставались на тех положениях, которые я им задал.
возможно ли это вообще реализовать?

___________________________________ ___________________________________ _______________

Последний раз редактировалось Seran4ek; 27.11.2009 в 19:10.
Seran4ek вне форума   Ответить с цитированием
Старый 27.11.2009, 19:10   #4
Seran4ek
Форумчанин
 
Регистрация: 14.10.2009
Сообщений: 94
Репутация: 18
По умолчанию

если я буду при каждом выполнении условия записывать координаты линии в файл, это решит ситуацию?
тоесть выполнил например первое условие, сдвинул одну линию, координаты записались в файл. переключил итем, первое условие уже не выполняется, но данные то в файле уже будут? или нет? О_о
Seran4ek вне форума   Ответить с цитированием
Старый 27.11.2009, 23:29   #5
Seran4ek
Форумчанин
 
Регистрация: 14.10.2009
Сообщений: 94
Репутация: 18
По умолчанию

ответьте пожалуйста хотя бы на второй вопрос. очень нужно.
Вопрос:
есть пара условий. Пусть выполнилось первое. при его исполнении в файл чтото записалось.
Переключаем радиобаттон и первое условие не выполняется. Выполнилось второе. ГЛАВНОЕ: данные записанные в файл когда было исполнено 1 условие остануться или нет? О_о
Seran4ek вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C. Найти пересечения линий. Sekmegalife Помощь студентам 1 19.10.2009 08:34
Запоминание ячеек в память motorway Microsoft Office Excel 3 08.07.2009 08:31
Запоминание координат при перемещении формы Shouldercannon Общие вопросы Delphi 5 21.06.2009 23:11
Как осуществить запоминание объектов? Djem1991 Общие вопросы Delphi 4 06.01.2009 15:09
Запоминание цифр romul87 Общие вопросы Delphi 3 10.10.2008 18:54


17:45.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.