powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Автоматическое расширение формы
17 сообщений из 17, страница 1 из 1
Автоматическое расширение формы
    #39721875
petrovichvanya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, подскажите как сделать чтобы форма раздвигалась автоматически под размер текста строки "Адрес"(т.к. адрес может быть разным, размер формы тоже может быть разным)
...
Рейтинг: 0 / 0
Автоматическое расширение формы
    #39721878
petrovichvanya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Автоматическое расширение формы
    #39721880
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
См. Canvas.TextWidth
...
Рейтинг: 0 / 0
Автоматическое расширение формы
    #39721885
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше сделать многострочный текст и расширять вниз
...
Рейтинг: 0 / 0
Автоматическое расширение формы
    #39721887
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBrЛучше сделать многострочный текст и расширять вниз

Присоединяюсь к мнению. При расширении формы - например кнопки ОК/Отмена начинают смотреться инородно. Ну и есть шанс, что форма вообще уедет за границы экрана (например маленькое разрешение выставили, шрифты увеличили).
...
Рейтинг: 0 / 0
Автоматическое расширение формы
    #39721900
petrovichvanya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для вывода текста используется StaticText, там отсутствует Canvas.TextWidth и WordWrap(чтобы вниз расширить)
...
Рейтинг: 0 / 0
Автоматическое расширение формы
    #39721905
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovichvanyaДля вывода текста используется StaticText, там отсутствует Canvas.TextWidth и WordWrap(чтобы вниз расширить)

Псевдокод:
Код: plaintext
1.
2.
Адрес.AutoSize := True;
Адрес.Caption := 'blablabla';
Форма.ClientWidth := Адрес.Width + МеткаАдреса.Width + ШиринаПолей * 2; 

Для кнопок OK и Cancel сделать Anchors := [Right, Bottom];.
...
Рейтинг: 0 / 0
Автоматическое расширение формы
    #39721906
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но вообще, по хорошему, туда-бы TLabel и перенос по словам + авторасширение формы вниз.
...
Рейтинг: 0 / 0
Автоматическое расширение формы
    #39721907
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кнопки нормально будут смотреться, если использовать якоря.
А компонент для отображения текста можно использовать другой (если религия позволяет)
...
Рейтинг: 0 / 0
Автоматическое расширение формы
    #39721911
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovichvanya,

Автоматически - никак.
Надо написать Form.Width:=...
Далее надо вычислять длину в зависимости от: Шрифта, размера шрифта, длины текста и DPI экрана.

Совершенно очевидно, что StaticText не подходит для отображения адреса.
Поставь memo в режиме ReadOnly
...
Рейтинг: 0 / 0
Автоматическое расширение формы
    #39721924
petrovichvanya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp, что такое МеткаАдреса ?
...
Рейтинг: 0 / 0
Автоматическое расширение формы
    #39721935
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
24.10.2018 11:00, cptngrb пишет:
> Кнопки нормально будут смотреться, если использовать якоря.

якоря изначально кривые.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Автоматическое расширение формы
    #39721944
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovichvanyaДля вывода текста используется StaticText, там отсутствует Canvas.TextWidth и WordWrap(чтобы вниз расширить)
Канвас у формы.
...
Рейтинг: 0 / 0
Автоматическое расширение формы
    #39721955
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийякоря изначально кривые.
в Лазаре все пучком. Иногда этого жутко не хватает в Дельфях, приходится городить кучу парафункционального кода

petrovichvanyaДля вывода текста используется StaticText, там отсутствует Canvas.TextWidth и WordWrap(чтобы вниз расширить)
а так?
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
uses
...
, Graphics
...

procedure ....
var ARect: TRect;
     h: integer; //высота текста внутри ARect
begin
...
//ATxt - отображаемый текст
//Self.Canvas - холст формы, где лежит StaticText
//высчитываем высоту текста 
          ARect:= Rect(0,0,StaticText.Width,StaticText.Height);
          h:= DrawText(Self.Canvas.Handle,PChar(ATxt),-1,ARect,DT_CALCRECT or DT_WORDBREAK);

//далее увеличиваем/уменьшаем высоту формы на разницу между текущей высотой StaticText и h
end;

...
Рейтинг: 0 / 0
Автоматическое расширение формы
    #39722113
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Якоря очень веселый эффект дают на увеличенном DPI в средах, которые не совсем DPI-aware (до 10ки как минимум, а судя по чейнджлогам только-только как следует допилили)
...
Рейтинг: 0 / 0
Автоматическое расширение формы
    #39722123
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovichvanyaalekcvp, что такое МеткаАдреса ?

Компонент с текстом "Адрес: ".
...
Рейтинг: 0 / 0
Автоматическое расширение формы
    #39722124
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий24.10.2018 11:00, cptngrb пишет:
> Кнопки нормально будут смотреться, если использовать якоря.

якоря изначально кривые.


Не знаю про D6, но с XE начиная - всё отлично работает (у меня).
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Автоматическое расширение формы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]