Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 25.10.2019
Сообщений: 37

Как под компонентом Image вывести надпись так, что при любом изменения размера компонента надпись оставалась под ним?

12.05.2020, 14:01. Показов 3164. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как под компонентом Image вывести надпись так, что при любом изменения размера компонента и его положения надпись оставалась под ним?(Label)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.05.2020, 14:01
Ответы с готовыми решениями:

Что лучше брать Delphi XE2, Delphi XE, Delphi 7?
Привет форумчане! У меня вопрос: что лучше брать Delphi XE2, Delphi XE, Delphi 7? Как вообще различаются серия Delphi XE, и Delphi 7?

ZipForge для Delphi Xe - интерфейс стал выглядеть как в Delphi 2007
Народ!!! Помоготи!!! Установил компонент ZipForge для Delphi Xe и после этого интерфейс моей программы стал таким, как будто я его в delphi...

Почему функция работающая в Delphi 7 не работает в Delphi 2007 и в 2009 ??
Данный код работал нормально в D7: procedure TForm1.Button1Click(Sender: TObject); begin ShowWindow(Application.Handle, 0); end;...

8
 Аватар для Пытливый
3762 / 2266 / 705
Регистрация: 29.05.2013
Сообщений: 9,616
12.05.2020, 14:21
Тут несколько факторов, которые могут повлиять на корректность отображения. Лучше всего такую связанную пару компонентов поместить в отдельный контейнер TPanel и работать со свойствами компонентов Anchors
0
0 / 0 / 0
Регистрация: 25.10.2019
Сообщений: 37
12.05.2020, 14:47  [ТС]
а как их связать то? если ставлю на панель просто, то компонент перестает работать
0
Модератор
4050 / 2297 / 791
Регистрация: 15.11.2015
Сообщений: 9,106
12.05.2020, 14:55
Лучший ответ Сообщение было отмечено Anasat как решение

Решение

Цитата Сообщение от Anasat Посмотреть сообщение
то компонент перестает работать
Как это перестаёт работать? Имеющийся Image нужно просто переместить на Panel, больше там ничего не поменяется.

Добавлено через 49 секунд
Цитата Сообщение от Anasat Посмотреть сообщение
вывести надпись так, что при любом изменения размера компонента и его положения
А кто меняет размер и положение этого Image?

Добавлено через 2 минуты
Delphi какой версии вообще?

Если размер и положение Image меняется программно (вручную), то точно так же надо поменять и положение Label:
Delphi Скопировано
1
  Label1.SetBounds(Image1.Left, Image1.Top + Image1.Height, Label1.Width, Label1.Width);
1
0 / 0 / 0
Регистрация: 25.10.2019
Сообщений: 37
12.05.2020, 15:17  [ТС]
да фиг знает с чего размер должен меняться)
Delphi 7
Миниатюры
Как под компонентом Image вывести надпись так, что при любом изменения размера компонента надпись оставалась под ним?  
0
Модератор
4050 / 2297 / 791
Регистрация: 15.11.2015
Сообщений: 9,106
12.05.2020, 15:20
Anasat, из А) не следует, что размер Image должен меняться. Наоборот, изображение должно подстроится под размер Image. Последнее делается установкой свойства Stretch = true.
1
Модератор
4050 / 2297 / 791
Регистрация: 15.11.2015
Сообщений: 9,106
12.05.2020, 16:00
Лучший ответ Сообщение было отмечено Anasat как решение

Решение

Могу предложить вот такую центровку с сохранением пропорций:
Delphi Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TForm1.FormResize(Sender: TObject);
var
  nw, nh: integer;
begin
  // Установка размера Image1 с сохранением пропорций
  // Image1 и Label1 находятся на Panel2
  nw := Panel2.Width ;
  nh := Round(nw*Image1.Picture.Graphic.Height/Image1.Picture.Graphic.Width);
  if nh > (Panel2.Height - Label1.Height) then begin
    nh := (Panel2.Height - Label1.Height);
    nw := Round(nh*Image1.Picture.Graphic.Width/Image1.Picture.Graphic.Height);
  end;
  Image1.SetBounds((Panel2.Width - nw) div 2, (Panel2.Height - nh - Label1.Height) div 2, nw, nh);
  Label1.SetBounds((Panel2.Width - Label1.Width) div 2, Image1.Top + Image1.Height, Label1.Width, Label1.Height);
end;
Вложения
Тип файла: rar ImageCenter1.rar (2.1 Кб, 4 просмотров)
1
Модератор
4050 / 2297 / 791
Регистрация: 15.11.2015
Сообщений: 9,106
12.05.2020, 16:03
Label находится под Image и текст центрирован тоже.
0
0 / 0 / 0
Регистрация: 25.10.2019
Сообщений: 37
12.05.2020, 17:03  [ТС]
спасибо большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.05.2020, 17:03
Помогаю со студенческими работами здесь

Какова разница работы одного кода в Delphi 7 и в Delphi XE5?
Почему приложение состоящие из одинакового кода, но компилируемое в разных средах работает по разному? Есть клиент-серверное приложение,...

где найти delphi c компилятором? и с чего начинать программирование в delphi?
здравствуйте, вот начинаю изучать delphi с чего начинать лучше?

Как в Delphi сделать Excel таблицу, не употребляя компонент TStringGrid и связать ее с Delphi
Как в Delphi сделать Excel таблицу, не употребляя компонент TStringGrid и связать ее с Delphi?

У меня есть литература для изучения delphi 7. Могу ли я по ней изучить delphi 2010?
Всем привет. Очередной семестр в универе подходит к концу, а лабы по программированию сданы и мне нечем заняться =). Я хочу изучить delphi...

В Delphi можно приравнивать строки? например уменя Массив из строк (Фамиоий и имён )|Delphi
нужно узнать есть одно фамильцы там они у меня в StringGrid.Cells 1 это фамилии а 2 столбец Имена. В общем столбцов 4 а строк 11.


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Создание и стилизация списков в SwiftUI
mobDevWorks 14.04.2025
Списки — фундаментальный элемент мобильных интерфейсов. От списка контактов до ленты новостей, от настроек до каталога товаров — трудно представить приложение, которое не использовало бы этот. . .
Паттерн SAGA и распределённые транзакции в микросервисной архитектуре
stackOverflow 14.04.2025
Переход от монолитной архитектуры к микросервисам принес множество преимуществ: гибкость разработки, независимость развертывания и масштабирования отдельных компонентов. Однако этот переход создал и. . .
Кастомные аллокаторы в C++ и оптимизация управления памятью
bytestream 14.04.2025
Работа с памятью в С++ всегда была и остаётся одной из самых увлекательных и сложных задач для программиста. Любой опытный C++ разработчик подтвердит: стандартные механизмы аллокации памяти – штука. . .
Организация сетей в Kubernetes и эффективное развертывание
Mr. Docker 14.04.2025
Сетевая инфраструктура Kubernetes представляет собой сложную, но хорошо спроектированную систему, которая позволяет контейнерам взаимодействовать между собой и с внешним миром. За кажущейся простотой. . .
Многопоточность в Rust: Fearless concurrency и практические примеры
golander 14.04.2025
Многопоточное программирование связано с рядом известных проблем. Наиболее распространенные из них — гонки данных (data races), взаимные блокировки (deadlocks) и условия гонки (race conditions). Эти. . .
Списки и кортежи в Python: различия, особенности, применение
py-thonny 13.04.2025
Python славится своей гибкостью при работе с данными. В арсенале языка есть две основные последовательные структуры данных, которые программисты используют ежедневно — списки и кортежи. Эти структуры. . .
Middleware в ASP.NET Core
UnmanagedCoder 13.04.2025
В ASP. NET Core термин "middleware" занимает особое место. Что же это такое? Middleware представляет собой программные компоненты, которые формируют конвейер обработки HTTP-запросов в приложении. . . .
Таблицы лута в Unity с MinMaxCurve и AnimationCurve
GameUnited 12.04.2025
Создание сбалансированного лута в играх — задача не из простых. Разработчики постоянно ищут способы настройки систем выпадения предметов, которые будут одновременно справедливыми для игроков и. . .
std::expected в C++: Управление ошибками
bytestream 12.04.2025
Обработка ошибок всегда была важной и одновременно сложной задачей в программировании на C++. На протяжении долгого времени разработчики использовали различные подходы: возвращаемые коды ошибок,. . .
Nullable типы и операторы объединения null в C#
UnmanagedCoder 12.04.2025
Многие шутят, что null — это миллиардная ошибка в программировании. И в этой шутке только доля шутки. Тони Хоар, создатель null-ссылки, сам назвал её своей "ошибкой на миллиард долларов". Почему?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер