![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Nikolasha |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 6.5.2005 Репутация: нет Всего: нет |
Привет всем.
Возник вопросик, можно ли создать массив из TSpeedButton'ов?(Для удобства работы - морской бой) Мне нужно создать два таких массива по 100 элементов (10х10). Можно ли это организовать? Я читал в DRKB по массив чекбоксов. Но чего то с баттонами не работает. Помогите, пожалуйста. Заранее спасибо. |
|||
|
||||
| FRAGNATIC |
|
|||
|
..::Свирепый Кодер::.. ![]() ![]() Профиль Группа: Участник Сообщений: 901 Регистрация: 17.10.2004 Где: ICQ Репутация: 6 Всего: 11 |
конечно можно=)
ток зачем тебе для морского боя 200 кнопок? может лучше сделать фон ввиде картинке и на ней дапустим рисовать чёнить типа при нажатии и если мимо то просто крестик нарисовать =))) Это сообщение отредактировал(а) FRAGNATIC - 11.12.2005, 19:32 |
|||
|
||||
| FRAGNATIC |
|
|||
|
..::Свирепый Кодер::.. ![]() ![]() Профиль Группа: Участник Сообщений: 901 Регистрация: 17.10.2004 Где: ICQ Репутация: 6 Всего: 11 |
что-то типа этого тока не забудь их потом все удалить (free ) а для этого масив лучше сделать глобальной переменой ) |
|||
|
||||
| Poseidon |
|
||||||||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Наверное правельнее будет
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
||||||||
|
|||||||||
| FRAGNATIC |
|
|||
|
..::Свирепый Кодер::.. ![]() ![]() Профиль Группа: Участник Сообщений: 901 Регистрация: 17.10.2004 Где: ICQ Репутация: 6 Всего: 11 |
Poseidon
а разница? я пример привёл а там уже хоть из чего угодно делай) |
|||
|
||||
| Nikolasha |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 6.5.2005 Репутация: нет Всего: нет |
Спасибо за ответы. Только вот нужен двумерный массив.
Еще один вопрос. у меня случайным образом генериться массив кораблей следующего типа: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 В нем, соответственно, еденички отвечают за палубы у корабликов. На форме лежат 10х10(=100 ) кнопок. Как можно организовать чтобы на кнопочках кот. соответствует еденичка появилась определенная картинка? |
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
Nikolasha
ну если чтоб попроще то создавай массив из кнопок 10X10 и у них есть property Tag, в нем можешь хранить значения 0/1(палуба/море) . Добавлено @ 22:15 ну и соответственно картикнки грузить в зависимости от этого значения. -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| Nikolasha |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 6.5.2005 Репутация: нет Всего: нет |
А каким образом этот массив разместиться на форме где мне нужно?
|
|||
|
||||
| YurikGL |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 5.7.2005 Где: Уфа Репутация: нет Всего: 2 |
уже было....
--------------------
|
||||
|
|||||
| sexton |
|
|||
![]() sexton=Пономарь (eng) ![]() ![]() Профиль Группа: Участник Сообщений: 503 Регистрация: 5.5.2004 Где: Ульяновск Репутация: 1 Всего: 9 |
Думаю в данной ситуации StringGrid бы вполне подошел вместо такго дикого количесвта кнопок.
|
|||
|
||||
| Nikolasha |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 6.5.2005 Репутация: нет Всего: нет |
Спасибо, все получилось.
Еще один вопрос: как можно теперь обрабатывать события onclick для этих кнопок (можно ли как нибудь использовать as Sender)? Добавлено @ 17:05
Вот код для того, чтобы кнопочки встали в квадрат 10x10. И еще вопрос. Как с этот массив убрать из памяти? с помощью free можно? Если да, то как? |
|||
|
||||
| FRAGNATIC |
|
|||
|
..::Свирепый Кодер::.. ![]() ![]() Профиль Группа: Участник Сообщений: 901 Регистрация: 17.10.2004 Где: ICQ Репутация: 6 Всего: 11 |
TButton(sender) делай с ним что хош насчёт освобождения поидеи должен сам освобождатся тк кнопки лежат на форме ну или просто мож в цикле FRee |
|||
|
||||
| Nikolasha |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 6.5.2005 Репутация: нет Всего: нет |
Не пашет, на стадии компиляции выдает ошибку следущего содержания:
Expected an identifier but invalid character character #160 found Что не так? |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Я бы рекомендовал использовать TImage - 100 штук. либо TImageList.
В этом случае ты без проблем на TImsage можешь рисовать все, что угодно, на каждом обрабатывать OnClick. Да и выглядеть будет красивее, по-моему. -------------------- |
|||
|
||||
| THenry |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 13.9.2005 Репутация: нет Всего: нет |
Писал такую штуку тока на С++ в StringGrid. Удобно и проще некуда.
P.S. А как насчет того что вокруг корабля на расстоянии одной клетки не может быть другого корабля? А твоя маска поля боя это не предусматривает, добавь еще вокруг каждого корабля "оградку" к примеру -1 |
|||
|
||||
| Nikolasha |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 6.5.2005 Репутация: нет Всего: нет |
Если ты глянешь на массив, то увидишь, что все корабли стоят как надо. Никто ни с кем не соприкасается.
Это у меня был первый вариант, но слишком уж муторно работать с таким количеством рисунков.
Они выглядят не очень симпатично, к тому же хотелось бы ставить картинки... Ну так что насчет ошибки? Чем она может быть вызвана? |
||||||
|
|||||||
| THenry |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 13.9.2005 Репутация: нет Всего: нет |
Они то стоят как надо но динамичсеки тебе с 1 и 0 будет тяжело создавать маску
|
|||
|
||||
| Nikolasha |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 6.5.2005 Репутация: нет Всего: нет |
Поживем увидим, мне главное с этим вопросом разобраться. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
так на какую строку ругается компилятор, а, надо же сразу "говорить" |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
А принципы ООП для чего?-) -------------------- |
|||
|
||||
| FRAGNATIC |
|
|||
|
..::Свирепый Кодер::.. ![]() ![]() Профиль Группа: Участник Сообщений: 901 Регистрация: 17.10.2004 Где: ICQ Репутация: 6 Всего: 11 |
Nikolasha
посмотрел твой код) [Error] Unit1.pas(126): Illegal character in input file: ' ' ($A0) всё дело как я понял в том что когда ты копировал код с форума и вставлял в свой модуль скопировался левак вообщем просто поудаляй пробелы всякие которые у тя там были перед теми строками на которых ошибку выдаёт) |
|||
|
||||
| Staruha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1292 Регистрация: 1.2.2004 Где: Казань Репутация: 1 Всего: 27 |
Создаю программно 10 переключателей и объединяю в группу .Нажимаю переключатель создается программно другой GroupButton и четыре переключателя. Нажимаю один из четырех и получается,что у меня не две группы ,а одна. Так же нажимаю следующую кнопку в первой группе- вылетает ошибка. Я так понимаю не хочет создавать повторно уже созданный GroupButton. Наверно его надо сначала удалить. Но как пробежаться по объектам не знаю. Делфи изучаю меньше месяца.
-------------------- Возмездие настигнет |
|||
|
||||
| FRAGNATIC |
|
|||
|
..::Свирепый Кодер::.. ![]() ![]() Профиль Группа: Участник Сообщений: 901 Регистрация: 17.10.2004 Где: ICQ Репутация: 6 Всего: 11 |
пробежатся просто for i:=0 to ControlCount-1 do if Controls[i] is TSomeComponent (например TButton) then .... а так я не совсем понял сути вопроса и ещё не плохо былобы код выложить |
|||
|
||||
| Staruha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1292 Регистрация: 1.2.2004 Где: Казань Репутация: 1 Всего: 27 |
Нажимаю RBut[i] загружаются 4 перекл Rbut[rw] Нажимаю RBut2[rw] почему-то отключается RBut[i] и когда нажимаю следующий RBut[i] вылетает ошибка -------------------- Возмездие настигнет |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
В этом примере при каждом нажатии на RBut[i] создаются объекты с одним и темже именем, что недопустимо,
ЗЫ также при нажатии другой RBut[i] память не освобождается ИМХО мелгче накидать 4 TRadioButton и менять их в зависимости он необходимости чем создавать динамически -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |