Boa tarde, Frederico!
Você utiliza EnChoice ou MsmGet ou cria todos os componentes de texto na "unha"? Pois usando esses dois primeiros componentes, os componentes de texto são criados automaticamente.
De qualquer maneira, você também pode estar utilizando a função FwGetDialogSize para obter os dados de tamanho da tela atual e trabalhar com eles, segue exemplo:
aCoors := FwGetDialogSize()
Define MsDialog oDlg Title 'Teste' From aCoors[1], aCoors[2] To aCoors[3] / 2, aCoors[4] / 2 Pixel Style DS_MODALFRAME
TSay():New(aCoors[1], aCoors[2], {|| 'Teste de Texto 1'},oDlg,,,,,,.T.,CLR_BLUE,CLR_BLACK,300,20)
TSay():New(aCoors[1], aCoors[2]*1.1, {|| 'Teste de Texto 2'},oDlg,,,,,,.T.,CLR_BLUE,CLR_BLACK,300,20)
TSay():New(aCoors[1], aCoors[2]*1.2, {|| 'Teste de Texto 3'},oDlg,,,,,,.T.,CLR_BLUE,CLR_BLACK,300,20)
TSay():New(aCoors[1], aCoors[2]*1.3, {|| 'Teste de Texto 4'},oDlg,,,,,,.T.,CLR_BLUE,CLR_BLACK,300,20)
Activate Dialog oDlg Centered
Frederico, é uma tela de cadastro? Não rola fazer um MVC que já vai fazer todo esse cálculo de dimensões etc por você?
— Daniel Mendes 16 de Aug de 2019É uma tela de cadastro com cabeçalho e itens. Eu estou fazendo em mvc mas encontrei problema que não consegui resolver, então a rotina de alteração estou fazendo na unha mesmo.
— Frederico Oliveira 16 de Aug de 2019