Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 241

Раздел: Delphi » Прочее
/ вопрос открыт /

Здравствуйте! Хотел бы проконсультироваться по поводу того, как лучше сделать следующую программу:

смысл программы: нужно составить короткие слова из букв одного длинного.

Например, исходное слово ОГОРОД, каждая буква отображается на отдельном Image и есть поле из 3рех пустых Image, на которое мы перемещаем Image с буквами слова (на клик присваиваем Image с буквами координаты пустых Image поля в зависимости от значения переменной, которая определяет какую именно букву перемещать)

И при составлении слов, таких как РОД, РОГ, ГОД определенным image (c этими готовыми словами) присваивается Visible:=true;

Изначально я делал на основе отслеживания координат букв, но это очень много занимает времени и получается огромный код (и когда в конце-концов у тебя где-то ошибка, которая не мешает работе программы, но не позволяет ей правильно работать, отследить ее нереально).

Не подскажите, можно ли это как-то проще сделать? Спасибо.

D@nte Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: D@nte (статус: Посетитель)
Вопрос отправлен: 28 апреля 2011, 16:52
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 12; последнее сообщение — 2 мая 2011, 15:47; участников в обсуждении: 3.
min@y™

min@y™ (статус: Доктор наук), 28 апреля 2011, 16:57 [#1]:

Громоздкий код получается именно от того, что ты используешь TImage как ключевой отображающий компонент. Я бы так делать не стал, а рисовал бы всё это безобразие на едином Canvas и не парился.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 28 апреля 2011, 20:13 [#2]:

я бы сделал так:
1)объявил массив char, размером по количеству букв в исходном длинном слове;
2) заполнил бы его соответствующими символами;
3) свойство tag у Image использовал как индекс элемента массива с соответствующей буквой;
4) перетаскивание букв реализовал через Drag&Drop
D@nte

D@nte (статус: Посетитель), 28 апреля 2011, 23:14 [#3]:

Мережников Андрей, а не могли бы Вы как-нибудь сделать простенький пример программы с данным алгоритмом? Просто с моими знаниями Delphi трудно так сразу сориентироваться... Заранее спасибо.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 29 апреля 2011, 05:43 [#4]:

какая именно часть алгоритма вызывает наибольшие затруднения?
D@nte

D@nte (статус: Посетитель), 29 апреля 2011, 08:18 [#5]:

Мережников Андрей, все, что связано с массивом. (...Я даже не знаю на какой вкладке он лежит)
min@y™

min@y™ (статус: Доктор наук), 29 апреля 2011, 08:32 [#6]:

Цитата (D@nte):

Мережников Андрей, все, что связано с массивом. (...Я даже не знаю на какой вкладке он лежит)

Похоже, ты не с той стороны изучаешь программирование - не знаешь элементарнейших вещей, которые надо знать в первую очередь, а уже пытаешься написать что-то визуальное. Массивы - это не компоненты (их нет ни на какой вкладке) и даже не классы.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 29 апреля 2011, 12:01 [#7]:

Согласен с min@y - с такими знаниями рановато браться за такую задачу. Начинать надо с чего-то попроще.
D@nte

D@nte (статус: Посетитель), 29 апреля 2011, 14:14 [#8]:

Мережников Андрей, min@y™, спасибо за помощь)
min@y™

min@y™ (статус: Доктор наук), 29 апреля 2011, 14:22 [#9]:

Цитата (D@nte):

спасибо за помощь

Да за что спасибо-то? Я ж ничем не помог. Только пендаля дал в нужном направлении. :)
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
D@nte

D@nte (статус: Посетитель), 29 апреля 2011, 14:26 [#10]:

min@y™, это тоже иногда бывает нужно) Не обижаться же мне на весь мир из-за того, что я массивы не отстреливаю) :)
min@y™

min@y™ (статус: Доктор наук), 29 апреля 2011, 14:43 [#11]:

Цитата (D@nte):

это тоже иногда бывает нужно) Не обижаться же мне на весь мир из-за того, что я массивы не отстреливаю)

Мой тебе совет (бесплатный): скачай хорошую книжку по delphi и начни читать её с самого начала. И только когда прочитаешь, будешь пользоваться ей, как справочником. Могу дать ссылку на книжку, по которой я сам учился.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 2 мая 2011, 15:47 [#12]:

Цитата (D@nte):

спасибо за помощь)

не за что

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 1 апреля 2023, 20:02
Выполнено за 0.02 сек.
Рейтинг@Mail.ru