Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Люди подскажите плиз срочно!!! 
:(
    Опции темы
fifo79
  Дата 8.5.2003, 13:09 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Здраствуйте! у меня возникла такая проблема:
я написал программу на Дельфи для тестирования знаний
есть вопрос и к нему идут 3 ответа, но вот проблема как сделать так чтобы кнопка с ответами увеличивалась по размеру автоматический, т.е.
ответы выполнены в виде конпок где отображатеся текстовая информация, проблема в следующем при занесении большой информации для ответо, данные не помещаются в кнопку и отображаются обрывисто, подскажите пожалйста как сдеалть так чтобы размер кнопкеи автоматический менялся при большой информации он вмешалбы всю информацтю и правильно его отображал.
Заранее благодарен
  Вверх
Georg4
Дата 8.5.2003, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 961
Регистрация: 2.11.2002

Репутация: 0
Всего: 10



А чего б тебе не сделать кнопку заранее больше, если она будет скакать в размерах получится некрасиво.
Или если так уж хочешь, то вместо кнопки поставь лейбл и просто подставь фунцию он клик.


--------------------
Никто и никогда не должен решать одну проблему дважды
PM MAIL ICQ   Вверх
emchenko
Дата 8.5.2003, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 3.3.2003

Репутация: нет
Всего: нет



текст распологается в одну строку или несколько?
PM MAIL   Вверх
AntonSaburov
Дата 8.5.2003, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



Цитата
А чего б тебе не сделать кнопку заранее больше, если она будет скакать в размерах получится некрасиво.


IMHO - разумно. Пусть будут просто большие кнопки.

Хотя, IMHO, еще более прилично было бы сделать класс, который имеет стандатный размер, но может скролироваться. Он умеет отображать ответ. При попадании мышки в этот объект менять курсор на "палец".

Кроме этого такой объект может иметь фокус и он это показывает путем изменения вида кромки. Между объектами двигаться как обычно кнопкой Tab.

При нажатии Enter считается выбраным ответ в фокусе.

Причем такой подход удобен для дальнейшего расширения системы (а вдруг захочется рисунки выводить - без смены логики всей прораммы просто делаем круче сам объект.

Можно пойти еще дальше и оббъявить базовый класс, который умеет выводить текст, а потом пораждать от него остальные.
Логика работы программы за счет полиморфизма может оставаться неизменной.
А вот какой объект создавать - можно узнаьт при считывании вопроса их базы, в которой прописано, какого точно типа сосздавать объекты.

Вообщем, круто biggrin.gif
PM MAIL WWW ICQ   Вверх
fk_
Дата 10.5.2003, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 30.4.2003
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Хех а я посоветовал бы естесно создать свой компонент на базе стандартной кнопки просчитывающий количество символов и в зависимости от этого меняющий размеры... но на самом деле можно и без этого обойтись... smile.gif
А самое простое, думаю, это дублировать информацию в свойство Hint и поставить истину на отображение подсказок... smile.gif
PM MAIL WWW ICQ   Вверх
neutrino
Дата 11.5.2003, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



А может просто:

Код

TextLength:=Button1.Canvas.GettLength(Button1.Caption);
Button1.Width := TextLength+10;


Ну, конечно как функция GetTextLength называется я точно не помню, но ...

Это сообщение отредактировал(а) neutrino - 14.5.2003, 09:41


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
78125
Дата 11.5.2003, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 20.1.2003
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Обычно тесты делают при помощи radiobutton
--------------------
купим подпись
PM MAIL   Вверх
&-ray
Дата 11.5.2003, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 406
Регистрация: 15.4.2003
Где: Казахстан, г Аста на

Репутация: нет
Всего: нет



По-моему проще сделать, как сказал Georg4:
вместо кнопки использовать tlabel с wordwrap=true
А чтоб смотрелось все путем можно обрамить все это дело в tbevel и при клике менять вид границ этого bevel - чем не кнопка?


--------------------
"Совсем неважно от чего помрешь, ведь куда важнее - для чего родился..." С.Б.

--------------------
И снова мышь беру я в руки
Куда иду? - Конечно в сруки!
PM MAIL WWW   Вверх
neutrino
Дата 14.5.2003, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Можно сделать еще 500 разными способами, но вопрос не в этом.


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
emchenko
Дата 14.5.2003, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 3.3.2003

Репутация: нет
Всего: нет



Товарищи! ну человек же просит: "плз. срочно...". Делом же занят, не курсач какой-нибудь задрипанный, но проект пишет! Да как нарисовать красивее он, наверное, знает (а если и не знает, то какое нам дело). Наша задача конкретно ответить на вопрос. Человеку важна не мораль, а способ решения...

братель, брось на форму кнопку (у меня так сложилось что Button3) и Edit. Событие Click у кнопки выглядит так:
Код

procedure TForm1.Button3Click(Sender: TObject);
var xCanvas: TCanvas;
begin
 xCanvas := TCanvas.Create;
 with Button3 do
 begin
   Caption := Edit1.Text;
   xCanvas.Handle := GetWindowDC(Handle);
   Width := xCanvas.TextWidth(Caption) + 6;
   Refresh;
   xCanvas.LineTo(Width, Height);
   xCanvas.MoveTo(Width, 0);
   xCanvas.LineTo(0, Height);
   xCanvas.Destroy;
 end;
end;


один из 500 я взял на себя... smile.gif (что с людми похмелье делает).
кстати, братель, я кнопку зачеркнул, так просто (последние 5 строчек), если не понравиться убери;)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

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

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0508 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.