Гость
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Узнать Left у компонента / 9 сообщений из 9, страница 1 из 1
06.10.2021, 22:52
    #40102489
wsnet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать Left у компонента
Подскажите, есть форма MainForm, на ней расположен компонент ScrollBox со свойство Align = alClient, далее:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
type
  TFrmMain= class(TForm)
procedure CreateMyComponentDetail;
end;

implementation

procedure TFrmMain.CreateMyComponentDetail;
var 
  FrmDetail:  TFormDetail;
begin
FrmDetail := TFormDetail.Create(self);
FormDetail.Parent := ScrollBox1;
FormDetail.Label1.Caption := 'Это компонент второй формы';
FormDetail.Show;
Self.MyPanel.Width := FormDetail.Label1.Left;
end;



Вопрос, как-то можно получить значение FormDetail.Label1.Left на форме FrmMain?
В Self.MyPanel.Width = 0 постоянно почему-то, хотя на форме FrmMain он имеет смещение.
...
Рейтинг: 0 / 0
07.10.2021, 02:09
    #40102501
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать Left у компонента
wsnet
Вопрос, как-то можно получить значение FormDetail.Label1.Left на форме FrmMain?

Можно всё, что не противоречит законам физики. Но если спросить "а как решить вот эту реальную задачу?", есть шанс получить ответом не такой... оригинальный способ.
...
Рейтинг: 0 / 0
07.10.2021, 07:35
    #40102515
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать Left у компонента
Типичная Сага о X, Y и Z...
...
Рейтинг: 0 / 0
07.10.2021, 23:40
    #40102917
Victor Cookin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать Left у компонента
wsnet,

Во-первых, Вы определяете и создаёте FrmDetail, а потом обрашаетесь к неведомой FormDetail.
Будем считать что FormDetail - это на самом деле FrmDetail.
Хотя неряшливость и предоставление откровенно нерабочего кода симпатий к Вам не прибавляет.

Вы не сказали по отношению к чему Вам нужен этот лефт. 0 - это лефт относительно родителя Label1, т.е. FrmDetail.
Если он 0, то значит эта Лейбла лежит у самого левого краю формы. Ничего странного.

Если Вам треба координата Лейблы по отношению к левой стенке всего приложения, надо просуммировать лефты у самой Лейблы, и у всех её родителей. То есть FrmDetail и ScrollBox1 (если ScrollBox1 лежит прямо на главной форме).

У Вас не задан Align FrmDetail, если он тоже Align = alClient, как и у ScrollBox1, то так и так Left будет 0 или около нуля.
...
Рейтинг: 0 / 0
08.10.2021, 09:18
    #40102949
Gerasimenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать Left у компонента
wsnet,

за говнокод уже напихали, поэтому скину тебе еще одну строчку говнокода
Код: pascal
1.
ShowMessage(IntToStr((FormDetail.FindComponent('Label1') as TLabel).Left));


Это реально говнокод, но в общих чертах, так сказать...
...
Рейтинг: 0 / 0
08.10.2021, 09:38
    #40102952
Gerasimenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать Left у компонента
Gerasimenko
wsnet,

за говнокод уже напихали, поэтому скину тебе еще одну строчку говнокода
Код: pascal
1.
ShowMessage(IntToStr((FormDetail.FindComponent('Label1') as TLabel).Left));


Это реально говнокод, но в общих чертах, так сказать...

кажется я понял, что ты хочешь: что-то типа
Код: pascal
1.
ScrollBox1.Left+FormDetail.Label1.Left


только не понятно, где это может пригодиться
...
Рейтинг: 0 / 0
08.10.2021, 22:59
    #40103200
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать Left у компонента
wsnet,

лучше всего прикладывать к вопросу тестовый проект, чтобы любой желающий помочь мог открыть его у себя и воспроизвести проблему. А так, кроме умных нотаций, ничего не получишь :)
...
Рейтинг: 0 / 0
09.10.2021, 01:07
    #40103222
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать Left у компонента
Док
прикладывать к вопросу тестовый проект

Нет, вы посмотрите!
...
Рейтинг: 0 / 0
11.10.2021, 23:37
    #40103687
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать Left у компонента
ъъъъъ,

я честно прочитал стартовый пост раз 5, но так и не понял, "кто на ком стоял.."© :)
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Узнать Left у компонента / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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