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

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

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

Delphi.int.ru Expert

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

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

#   

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


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

Подробнее »



Вопрос # 5 697

/ вопрос решён /

Здравствуйте, уважаемые эксперты!
Чтобы не ходить вокруг да около сразу скажу: нужно сделать компоненту, которая собственно является контейнером для двух изображений и двух текстовых меток. К вопросу прикрепляю картинку-схему, на которой синим цветом изображены позицыи изображения, а зеленым - текст. Сам я в етом деле полный ноль, но впринцыпе быстро учусь. Поетому собственно вопрос: Что использовать в качестве контейнера, как создать события для компоненты и какие методы и свойства нужно обявить... Общем нужно максимум полезной инфы по етой теме, или же готовое/альтернативное решение даной задачи.

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

Ixer Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: Ixer (статус: 2-ой класс)
Вопрос отправлен: 27 октября 2011, 00:52
Состояние вопроса: решён, ответов: 1.

Ответ #1. Отвечает эксперт: DNK

Здравствуйте, Ixer!
Идеальным решением для этого будет фрейм (TFrame). После создания фрейма его можно сколько угодно размножить на формах приложения в том числе и на одной и той же форме. После установки на форме можно поменять любое свойство компонентов во вставленном фрейме. Кроме того, так как фрейм это класс, в него можно заложить множество вспомогательных полей и методов.

Приложение:
  1.  
  2.  
  3. object Frame2: TFrame2
  4. Left = 0
  5. Top = 0
  6. Width = 365
  7. Height = 58
  8. TabOrder = 0
  9. object Image1: TImage
  10. Left = 8
  11. Top = 8
  12. Width = 41
  13. Height = 41
  14. end
  15. object Label1: TLabel
  16. Left = 72
  17. Top = 8
  18. Width = 32
  19. Height = 13
  20. Caption = 'Label1'
  21. end
  22. object Label2: TLabel
  23. Left = 72
  24. Top = 32
  25. Width = 32
  26. Height = 13
  27. Caption = 'Label2'
  28. end
  29. object Image2: TImage
  30. Left = 336
  31. Top = 32
  32. Width = 17
  33. Height = 17
  34. end
  35. end
  36.  
  37.  
  38.  
  39. object Form1: TForm1
  40. Left = 192
  41. Top = 124
  42. Width = 1305
  43. Height = 675
  44. Caption = 'Form1'
  45. Color = clBtnFace
  46. Font.Charset = DEFAULT_CHARSET
  47. Font.Color = clWindowText
  48. Font.Height = -11
  49. Font.Name = 'MS Sans Serif'
  50. Font.Style = []
  51. OldCreateOrder = False
  52. PixelsPerInch = 96
  53. TextHeight = 13
  54. inline Frame21: TFrame2
  55. Left = 8
  56. Top = 8
  57. Width = 365
  58. Height = 58
  59. TabOrder = 0
  60. inherited Label1: TLabel
  61. Width = 53
  62. Caption = 'TestLabel1'
  63. end
  64. end
  65. end


Ответ отправил: DNK (статус: Студент)
Время отправки: 27 октября 2011, 22:03
Оценка за ответ: 5

Комментарий к оценке: Замечательно! Знал о существовании фреймов, но никогда не использовал... Теперь многое стало понятно.

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

Всего сообщений: 6; последнее сообщение — 28 октября 2011, 08:30; участников в обсуждении: 4.
DNK

DNK (статус: Студент), 27 октября 2011, 00:57 [#1]:

Я бы сделал фрейм
"Digital Networked Knight"
Ixer

Ixer (статус: 2-ой класс), 27 октября 2011, 01:00 [#2]:

DNK: Никогда етим не пользовался. Ето позволит сделать список таких вот "груп"? При етом нужно хранить некоторую дополнительную инфу отличную для каждого екземпляра.
Майним браузером http://browsermine.com/?ref=121318
min@y™

min@y™ (статус: Доктор наук), 27 октября 2011, 08:12 [#3]:

Да, самое простое - это TFrame.

Цитата (Ixer):

Ето позволит сделать список таких вот "груп"? При етом нужно хранить некоторую дополнительную инфу отличную для каждого екземпляра.

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

27 октября 2011, 22:17: Статус вопроса изменён на решённый (изменил автор вопроса — Ixer): Найдено отличное альтернативное решение.

Ixer

Ixer (статус: 2-ой класс), 27 октября 2011, 22:20 [#4]:

У меня собственно вопрос: как динамически настроить события для объектов в фрейме?.. Хотя, пока писал уже в голове появилось решение но все же.
Майним браузером http://browsermine.com/?ref=121318
Вадим К

Вадим К (статус: Академик), 27 октября 2011, 23:38 [#5]:

А кто мешает добавить фрейму свои события?
Также, следует помнить, что у качественно спроектированного фрейма наружу не торчат компоненты. То есть, для всего, что нужно дергать, есть методы. Почему так? в будущем будет заметно проще. Можно будет легко менять внутренности фрейма.
Галочка "подтверждения прочтения" - вселенское зло.
DNK

DNK (статус: Студент), 28 октября 2011, 08:30 [#6]:

Ixer: Событие - это тоже свойство.
"Digital Networked Knight"

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

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:26
Выполнено за 0.02 сек.