2016-12-16 4 views
-3

Как я могу привязать TPanel, чтобы он оставался в верхней части формы в Лазаресе? Когда я делаю это в Delphi 7, он отлично работает. Похоже, что TPanel становится частью холста, и когда вы прокручиваете вниз, TPanel прокручивается с экрана. Пользователь должен иметь возможность нажимать кнопки на TPanel независимо от того, где он прокручивается в форме. В идеале мне нравится действовать как меню в форме прямо под меню, например, выровненное вверху.Закрепление TPanel, поэтому оно остается на верхней части формы

Вот FormCreate процедура:

procedure TfrmTestPanel.FormCreate(Sender: TObject); 
var 
    Bitmap: TBitmap; 
begin 
    Bitmap := nil; 
    try 
    Bitmap := TBitmap.Create; 
    Bitmap.Width := 3000; 
    Bitmap.Height := 2000; 
    imgTest.Picture.Graphic := Bitmap; 
    imgTest.Width := 3000; 
    imgTest.Height := 2000; 
    finally 
    Bitmap.Free; 
    end; 
end; 

Я полосы прокрутки на правой и нижней части формы, так что пользователь может прокручивать изображение или вверх и вниз или справа налево. Когда пользователь либо прокручивается, либо направо, панель инструментов исчезает с экрана. Я хотел, чтобы панель инструментов оставалась на вершине формы, как в строке меню. Надеюсь, это поможет вам понять этот вопрос.

+3

Почему TPanel, а не TToolbar? И если панель, почему бы не выровнять: = alTop? И * прокрутите вниз * в * что * точно? Пожалуйста, имейте в виду, что мы не можем видеть ваш экран от того места, где мы сидим, и мы не можем читать ваши мысли; единственная информация, которую мы имеем, - это то, что вы предоставляете в своем вопросе. Если вы хотите, чтобы мы вам помогли, просьба указать ** конкретные ** данные о том, что вы просите. –

+0

процедура TfrmTestPanel.FormCreate (отправитель: TObject); var Bitmap: TBitmap; начало Bitmap: = nil; try Bitmap: = TBitmap.Create; Bitmap.Width: = 3000; Bitmap.Height: = 2000; imgTest.Picture.Graphic: = Bitmap; imgTest.Width: = 3000; imgTest.Height: = 2000; finally Bitmap.Free; конец; конец; –

+1

Пожалуйста, отредактируйте ваше сообщение, чтобы добавить информацию, вместо того, чтобы хоронить их в комментариях. Ввод данных в сообщение делает их доступными, и вы можете правильно форматировать код, чтобы он был читабельным. Вы также можете объяснить, насколько актуальным является растровое изображение (которое не имеет ничего общего с запрошенным вами вопросом). –

ответ

1

Почему бы вам просто не поместить свое изображение в ScrollBox, вместо этого разместив его непосредственно на форме.

Таким образом вы сможете прокручивать изображение с помощью ScrollBox ScrollBars, не перемещая никаких других элементов управления в своей форме, как вы, используя форму ScrollBars.

+0

Спасибо, это хорошо сработало для изображения. Это первый успех, с которым я столкнулся, не имея TPanel, не покидая окно формы. Я буду тестировать его больше, чтобы сделать холст, чтобы я мог рисовать линии на нем. –

+0

Обратите внимание, что вы не ответили на вопрос. –

+0

Учитывая, что вопрос спрашивает: «Как я могу привязать TPanel, чтобы он оставался в верхней части формы» и «хотел, чтобы панель инструментов оставалась в верхней части формы, как в строке меню». Это вполне приемлемый ответ. Осталось @keterpstra_mwu принять ответ, если он действительно решает свою проблему. _ Мне кажется, что дерзкий комментарий Сертака - попытка оправдать его очень похожий ответ (почти через 8 часов после этого), который сначала утверждает, что это невозможно, а затем объясняет, как другое приложение достигло желаемого эффекта, используя тот самый метод, описанный в этом ответе._ –

-1

Это невозможно. Полосы прокрутки формы: standard scroll bars окна формы, поэтому они прокручивают всю клиентскую область. Независимо от того, какой контроль вы вводите в форме, в клиентской области, привязка не изменит этого. Таким образом, он будет прокручиваться вместе с остальной частью клиентской области.

Меню другое, оно является частью неклиентской области. Вы не можете имитировать позицию меню окна со стандартными элементами управления.

В комментариях к вопросу, который вы упомянули, вы протестировали с помощью демонстрационной программы GraphEx. GraphEx имеет выровненную клиентом область прокрутки под верхними выровненными панелями. Окно прокрутки - это окно со списками прокрутки, которое можно разместить в форме. Лазарь имеет его на «дополнительной» палитре. Вы можете использовать тот же макет с Lazarus с демографией GraphEx, используя окно прокрутки.

Смежные вопросы