С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lazarus
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
zuxa-zuxa
Мишка Косолапый :)
282 / 252 / 86
Регистрация: 15.02.2012
Сообщений: 1,491
Завершенные тесты: 1
1

8 Label распределить по разным местам (Top)

12.03.2012, 11:28. Просмотров 1543. Ответов 13
Метки нет (Все метки)

Вобщем есть 8 label текстов, которые постепенно таймерами сдвигаются вниз. Такой командой:
Delphi
1
label1.top:=label1.top + s;
Каждый из текстов label Толкает свои определенный таймер. 1 текст timer1 и т. д.
В каждом таймере установленно: если текст ниже чем Top=260 то Top приравнивается по формуле(чтобы опять оказаться наверху).
Формула такова: Label1.top:=(random(80) + 40) * (-1);
Это сделано чтобы тексты двигались по разному. Но зачастую бывает что текст например 4 и 7 на одном или почти на одном уровне падают. Скорости падения у всех равны.
Так вот вопрос:Как сделать чтобы тексты никогда не падали на 1 уровне?


Вот наглядный рисунок:
8 Label распределить по разным местам (Top)

Там буквы У и Л падают на одном уровне, исправить нужно. Чтобы вобще все 8 никогда не заступили за зеленую линию в 1 время.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2012, 11:28
Ответы с готовыми решениями:

Распределить участников по местам
Забиваются фамилии участников и оценки 8 судей. Необходимо вывести таблицу, в...

В лаборатории 8 рабочих мест, сколькими способами можно распределить по местам 6 студентов
Задача 1. В лаборатории 8 рабочих мест, сколькими способами можно...

Распределить код из Main по разным методам
добрый вечер всем. Срочно нужна помощь с методами задача стоит в том чтобы...

Рандомное создания Label на PageControl с разным размером и цветом
Всем привет, пишу небольшую программу, суть ее в том, что когда нажимаешь на...

Отцентровать label на форме с учетом того, что текст может быть разным
Подскажите, как сделать что бы текст объекта label выводился посередине формы...

13
PolarFoG
NPC
151 / 145 / 22
Регистрация: 10.01.2012
Сообщений: 390
13.03.2012, 16:07 2
Когда label достиг черты назначайте значение i:word=(random(80) + 40) * (-1); в цикле и выходите из цикла только в случае если промежутку от i-10 до i+10 не принадлежит не одно из значений top всех Label. После завершения цикла присваивайте label.top:=i, его новое положение.
1
zuxa-zuxa
Мишка Косолапый :)
282 / 252 / 86
Регистрация: 15.02.2012
Сообщений: 1,491
Завершенные тесты: 1
14.03.2012, 11:14  [ТС] 3
Можно пожалуйсто поподробнее чуть чуть?
i:word что значит word

Добавлено через 3 минуты
И как определить значения всех topов и labelов?
0
PolarFoG
NPC
151 / 145 / 22
Регистрация: 10.01.2012
Сообщений: 390
14.03.2012, 11:38 4
Цитата Сообщение от zuxa-zuxa Посмотреть сообщение
i:word
Всё в книгах, всё в книгах //Ну что же Вы так читать не любите

Цитата Сообщение от zuxa-zuxa Посмотреть сообщение
И как определить значения всех topов и labelов
У вас их всего 8 переберите все...ну или в цикле обращайтесь к свойствам объектов через свойство name
1
zuxa-zuxa
Мишка Косолапый :)
282 / 252 / 86
Регистрация: 15.02.2012
Сообщений: 1,491
Завершенные тесты: 1
14.03.2012, 14:51  [ТС] 5
Всё в книгах, всё в книгах Ну что же Вы так читать не любите
Ну как то вот так....
Ну поучите меня, люди. А книги они не очень то и норм учат. У меня в школе уроке всего 2 раза в неделю поэтому так вот форум должен подтягивать...
0
PolarFoG
NPC
151 / 145 / 22
Регистрация: 10.01.2012
Сообщений: 390
14.03.2012, 15:03 6
А как быстрее Вы научитесь, спрашивая про каждый неизвестный Вам тип данных или один раз прочитав про них (ну может изредка заглядывать потом в справочники)?

И как Вы выберите самый подходящий в данном случае тип, если не знаете их все?

Тип word - целочисленный тип, от 0 до 65535, без знака, занимает 2 байта.
1
zuxa-zuxa
Мишка Косолапый :)
282 / 252 / 86
Регистрация: 15.02.2012
Сообщений: 1,491
Завершенные тесты: 1
14.03.2012, 16:12  [ТС] 7
Ну хорошо щас почитаем... Но начну в книжек с графических работ. Консоль это не о мне.

Добавлено через 32 минуты
Эх. Ну это чтение. Не нравиться... Сам щас чунибудь умное забабахаю...

Добавлено через 7 минут
Нееет... Что то не надумаю. Ну сделайте мне а?
Вот код пока что. Сделайте чтобы не пересекался...
Delphi
1
2
3
4
5
6
7
8
procedure v1;
begin
  q1:=random(31) + 1;
  i:word=(random(80) + 40) * (-1);
  while (i+40) and (i-40) do
  begin
    
  end;
Добавлено через 13 минут
Delphi
1
2
  i:word=(random(80) + 40) * (-1);
  while ((i+40) and (i-40))=(label1.top) or (label2.top) do
Попробовал так вообще не собирается...
0
PolarFoG
NPC
151 / 145 / 22
Регистрация: 10.01.2012
Сообщений: 390
14.03.2012, 17:33 8
Цитата Сообщение от zuxa-zuxa Посмотреть сообщение
Консоль это не о мне.

Это как? И в консоле freepascal и в графическом приложение он же...Вы стандартные алгоритмы то знаете?
Если вы в консоле не понимаете как вы будете делать большое графическое приложения?

Цитата Сообщение от zuxa-zuxa Посмотреть сообщение
вообще не собирается
Конечно не собирается ... я логику подсказывал а не чистый код решения...
1
zuxa-zuxa
Мишка Косолапый :)
282 / 252 / 86
Регистрация: 15.02.2012
Сообщений: 1,491
Завершенные тесты: 1
14.03.2012, 17:39  [ТС] 9
Эх... А я умал код..

Добавлено через 50 секунд
Обожди, то есть мне все же придется читать учебник!?
0
PolarFoG
NPC
151 / 145 / 22
Регистрация: 10.01.2012
Сообщений: 390
14.03.2012, 17:52 10
Цитата Сообщение от zuxa-zuxa Посмотреть сообщение
Обожди, то есть мне все же придется читать учебник!?
Да. Если сразу начали Вы бы уже четверть как минимум прочитали бы
1
zuxa-zuxa
Мишка Косолапый :)
282 / 252 / 86
Регистрация: 15.02.2012
Сообщений: 1,491
Завершенные тесты: 1
14.03.2012, 17:58  [ТС] 11
да, но нехочется ведь. И как осилить себя?
0
zuxa-zuxa
Мишка Косолапый :)
282 / 252 / 86
Регистрация: 15.02.2012
Сообщений: 1,491
Завершенные тесты: 1
17.03.2012, 19:54  [ТС] 12
Почитал про тип word но всерано не пойму как его можно представить i-10 и i+10 Можно тока так шоли:
i+1=label2.top;
i+2=label2.top;
и т. д.
0
PolarFoG
NPC
151 / 145 / 22
Регистрация: 10.01.2012
Сообщений: 390
18.03.2012, 21:36 13
Так проще:
Pascal
1
 if ((label2.top>(i+10)) and (label2.top<(i-10))) ...
1
zuxa-zuxa
Мишка Косолапый :)
282 / 252 / 86
Регистрация: 15.02.2012
Сообщений: 1,491
Завершенные тесты: 1
19.03.2012, 10:28  [ТС] 14
Я так писал и кривовато очень работает... Я не через if делал а через цикл while.
Потомму что if работает 1 раз а надо делать хоть 100 раз пока на нужное место не встанет
0
19.03.2012, 10:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2012, 10:28

Написать 20 слов разным цветом с разным расположением
Нужно в паскале написать 20 слов например cyberforum что бы это слово было...

как зделать чтобы было top.sait.ru а не sait.ru/top/
как зделать чтобы было top.sait.ru а не sait.ru/top/

Сортировка по местам
Здраствуйте! Помогите доделать табличку. Необходимо Отсортировать по Местам...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru