Использую Lazarus 26, linux SUSE 11
В связи с отсутствием в tedit правого выравнивания, не могу его использовать для ввода целых и вещественных чисел
Решил использовать memo поле, но под виндой высота memo1.height может уменьшаться до нуля, а вот в линуксе
меньше 35 никак не хочет.Что-это за баг ?
Или может у кого -то есть способ борьбы с отсутствием правого выравнивания в Tedit ?
Я уже пробовал тупой перерисовкой канваса
procedure TForm1.Button1Click(Sender: TObject);
var
mLeft, mWidth: Integer;
GString: string;
Rgn: TRect;
TheCanvas: TControlCanvas;
begin
TheCanvas := TControlCanvas.Create;
try
TheCanvas.Control := Edit11;
GString := Edit11.Text;
Rgn := Edit11.ClientRect;
TheCanvas.FillRect(Rgn);
mWidth := TheCanvas.TextWidth(GString);
mLeft := Rgn.Right - mWidth - 4;
TheCanvas.TextRect(Rgn, mLeft, 0, GString);
finally
TheCanvas.Free;
end;
но в винде работает а в Linux никакой реакции ?
Что за проклятие ?
Говорят, что в 28 будет выравнивание Tedit ?
Пробовал ставить 27 версию и 26.1 , так у меня под виндой при пересборке требует кучу dll :
libgdk-win32-2.0-0.dll
libgdk-win32-2.0-0.zip
libgdk_pixbuf-2.0-0.dll
libglib-2.0-0.dll
libgmodule-2.0-0.dll
libgobject-2.0-0.dll
libpango-1.0-0.dll
нашел, подбросил lazarus не находит точку входа,в Linux побоялся ставить, потом долго возвращать назад.