Topic: прокручивание формы
Есть ли возможность на первой форме, расположить допустим кусок второй, с возможностью скролинга? То есть вторая форма бы была видна не полностью, но могла прокручиваться вниз.
My Visual Database → Russian → прокручивание формы
Есть ли возможность на первой форме, расположить допустим кусок второй, с возможностью скролинга? То есть вторая форма бы была видна не полностью, но могла прокручиваться вниз.
Есть ли возможность на первой форме, расположить допустим кусок второй, с возможностью скролинга? То есть вторая форма бы была видна не полностью, но могла прокручиваться вниз.
используйте Parent
Form2.Parent:=Form1;
Form2.Show;
скролинг формы
Form1.AutoScroll:=True;
А что бы в панели поместить другую форму? Я попробовал по аналогии, но ничего не получилось
procedure Form1_OnShow (Sender: TObject; Action: string);
begin
Form1.Panel1.Parent:=Form2;
end;
Смысл в том, что у меня на форме есть много слоёв панелей, которые при том или ином образе должны отображаться или скрываться. И их очень неудобно редактировать в таком случае. Поэтому решил слои распределить по формам и их уже отображать на панели. Вопрос
1) Каким скриптом это реально сделать
2) Есть ли еще какие то альтернативные способы при редактировании, что бы было удобно работать с слоями, или если по другому говоря, с большим количеством панелей с разными настройками visible в зависимости от условий. Так как визуально для меня они накладываются друг на друга и в редакторе видно в итоге только одну верхнюю.
Form2.Parent:=Form1.Panel1
к чему применяем :=Куда помещаем
Вам в таком случае проще использовать закладки (PageControl)
Оу, с PageControl вариант, а возможно скрыть скриптом выбор вкладок? Что бы малых прямоугольников "Вкладка1" "Вкладка2" не было видно при запуске формы?
Оу, с PageControl вариант, а возможно скрыть скриптом выбор вкладок? Что бы малых прямоугольников "Вкладка1" "Вкладка2" не было видно при запуске формы?
Form1.PageControl1.Pages[0].TabVisible:=False;
Form1.PageControl1.Pages[1].TabVisible:=False;
Оу, с PageControl вариант, а возможно скрыть скриптом выбор вкладок? Что бы малых прямоугольников "Вкладка1" "Вкладка2" не было видно при запуске формы?
Процедура скрывает все ярлыки закладок у многостраничника:
procedure HideTabs( APageControl: TdbPageControl );
// скрыть закладки
var
i: integer;
begin
for i := 0 to APageControl.PageCount - 1 do
begin
APageControl.Pages[i].TabVisible := false;
end;
end;
Пример использования:
HideTabs( Form1.PageControl1 );
А что бы в панели поместить другую форму? Я попробовал по аналогии, но ничего не получилось
...
Попробуйте использовать эту процедуру:
// отобразить форму на панели
procedure ShowFormOnPanel(AForm:TAForm; APanel:TdbPanel);
var
tmpGrid: TdbStringGridEx;
tmpButton: TdbButton;
begin
// отстёгиваем предыдущую форму от панели
if ActiveForm <> nil then
begin
// если вызвали отображение текущей активной формы - ничего не делать
if ActiveForm = AForm then
exit;
// спрятать текущую активную форму и отстегнуть её от панели
ActiveForm.Visible := false;
ActiveForm.Parent := nil;
SetParent( ActiveForm.Handle, nil);
end;
if AForm.Visible then
begin
ShowMessage(S_ERR_SHOW_ON_PANEL);
end
else
begin
// подготавливаем форму
AForm.borderStyle := bsNone;
AForm.Align := alClient;
// накидываем её на панель
AForm.Parent := APanel;
SetParent( AForm.Handle, APanel.Handle);
AForm.visible := true;
ActiveForm := AForm;
// автоматизация
// 1. нажатие кнопки для обновления табличных данных
tmpButton := TdbButton(AForm.FindComponent('btnSearch'));
if tmpButton<>nil then
begin
tmpButton.Click;
end
else
begin
// 2. обновление табличных данных, если кнопки нет
tmpGrid := TdbStringGridEx(AForm.FindComponent('tgrMain'));
if tmpGrid<>nil then
begin
tmpGrid.dbUpdate;
end;
end;
UpdateMainFormCaption();
end;
end;
Кроме отображения формы на панели она обновляет табличные данные на форме. Подробней о данном решении можно прочитать здесь: https://vk.com/@createmyvisualdatabasea … lya-dannyh В конце статьи - ссылка на пример для скачивания.
agatlogic101 wrote:Оу, с PageControl вариант, а возможно скрыть скриптом выбор вкладок? Что бы малых прямоугольников "Вкладка1" "Вкладка2" не было видно при запуске формы?
Процедура скрывает все ярлыки закладок у многостраничника:
procedure HideTabs( APageControl: TdbPageControl ); // скрыть закладки var i: integer; begin for i := 0 to APageControl.PageCount - 1 do begin APageControl.Pages[i].TabVisible := false; end; end;
Пример использования:
HideTabs( Form1.PageControl1 );
попробовал применить, в итоге Вкладки исчезают, но и информация полностью на этой вкладке пропадает
попробовал применить, в итоге Вкладки исчезают, но и информация полностью на этой вкладке пропадает
как только вы программно переключите страницу, всё вернется на место:
Form1.PageControl1.ActivePageIndex := 1;
Form1.PageControl1.ActivePageIndex := 0;
Видимо, при изменении свойства страницы TabVisible меняется и свойство Visible
все компоненты установленные на вкладке так же visible:=False , и это абсолютно естественно Вы ведь скрываете вкладку а значит все что установлено на ней то же исчезнет //
по умному - это наследование свойств
Нашёл пример на форуме, там как я понял реализовано через Form1.PageControl1.ActivePageIndex, что даёт упрощение кода, где нет бесконечных visible := True;
http://myvisualdatabase.com/forum/viewtopic.php?id=5786
А что бы в панели поместить другую форму? Я попробовал по аналогии, но ничего не получилось
procedure Form1_OnShow (Sender: TObject; Action: string); begin Form1.Panel1.Parent:=Form2; end;
Смысл в том, что у меня на форме есть много слоёв панелей, которые при том или ином образе должны отображаться или скрываться. И их очень неудобно редактировать в таком случае. Поэтому решил слои распределить по формам и их уже отображать на панели. Вопрос
1) Каким скриптом это реально сделать
2) Есть ли еще какие то альтернативные способы при редактировании, что бы было удобно работать с слоями, или если по другому говоря, с большим количеством панелей с разными настройками visible в зависимости от условий. Так как визуально для меня они накладываются друг на друга и в редакторе видно в итоге только одну верхнюю.
Я вот сделал 10 кнопок на главной форме и каждая открывает отдельную форму в Panel4 за счет скрипта:
frmMain.Left:=frmStart.Panel4.Left;
frmMain.Top:=frmStart.Panel4.Top;
frmMain.Width:=frmStart.Panel4.Width;
frmMain.Height:=frmStart.Panel4.Height;
Но проблема в том что когда программу полностью закрываешь ругаеться на строчку которая выделена жирным что может это быть ?
My Visual Database → Russian → прокручивание формы
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi