PageControl Проблемы с закладками

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
derini
незнакомец
Сообщения: 6
Зарегистрирован: 20.02.2007 13:57:34
Откуда: Полтава, Украина

PageControl Проблемы с закладками

Сообщение derini »

Использую Lazarus 0.9.20 beta.
При размещении компон. PageControl и создании закладок TabSheet, и применении в свойствах TabPosition не tpTop, а (Bottom, Left, Right), то закладки TabSheet становяться недоступные.
Кто нибудь сталкивался с данными проблемами?
derini
незнакомец
Сообщения: 6
Зарегистрирован: 20.02.2007 13:57:34
Откуда: Полтава, Украина

Сообщение derini »

:cry:
haword
постоялец
Сообщения: 301
Зарегистрирован: 02.03.2006 10:34:40

Сообщение haword »

ну чего моно сказат, этот баг известен, пишут что под GTK все вроде работает а под вынь еще пока не занимались исправлениями так как мало времени
Аватара пользователя
Attid
долгожитель
Сообщения: 2588
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

Lazarus 0.9.22

Bottom можно сделать с хитростью

procedure TForm1.FormShow(Sender: TObject);
begin
Self.Height := Self.Height +10;
Self.Height := Self.Height -10;
end;

тогда отоброжается нормально, а вот Left, Right
так тоже будет видно но без надписей.
Павел Ишенин
постоялец
Сообщения: 475
Зарегистрирован: 24.03.2007 09:16:52

Сообщение Павел Ишенин »

Исправлено сегодня в ревизии r10864
derini
незнакомец
Сообщения: 6
Зарегистрирован: 20.02.2007 13:57:34
Откуда: Полтава, Украина

Сообщение derini »

спасибо за ответы!
работает когда меняеться сам размер PageControl (width, Height)
или же как посоветовал Attid только PageControl привязать aling и то только если left, Right, client. Интересно (width, Height) прорысовываеться как по изменению width так и по Height.

А от ревизии r10864 я не нашел как писал Павел Ишенин.
за сегодня _ftp://ftp.hu.freepascal.org/pub/lazarus/Lazarus-0.9.23-fpc-2.1.3-20070404-win32.exe оказался r10862, может я чтот не так делаю :cry:

Но всем боооольшое спасибо за советы. :D :D :D
Павел Ишенин
постоялец
Сообщения: 475
Зарегистрирован: 24.03.2007 09:16:52

Сообщение Павел Ишенин »

Имелась ввиду ревизия SVN. Поскольку я только вчера внес эти изменения, то доступны они будут только сегодня (имеется ввиду в виде снапшота).
haword
постоялец
Сообщения: 301
Зарегистрирован: 02.03.2006 10:34:40

Сообщение haword »

Павел Ишенин писал(а):Имелась ввиду ревизия SVN. Поскольку я только вчера внес эти изменения, то доступны они будут только сегодня (имеется ввиду в виде снапшота).

ок! спасибки, проверим как выйдет новый снапшот!
derini
незнакомец
Сообщения: 6
Зарегистрирован: 20.02.2007 13:57:34
Откуда: Полтава, Украина

Сообщение derini »

СПАСИБО!!!
Заработало!!!!!
:D :D :D
большое спасибо
скачал r10875
:D
БОЛЬШОЕ СПАСИБО ВСЕМ!!! :D
Alexey_02
новенький
Сообщения: 21
Зарегистрирован: 15.02.2010 14:51:36

Сообщение Alexey_02 »

WinXP sp2 / Lazarus 0.9.28.2beta / FPC 2.2.4 / SVN: 22279
1. Удаляю все закладки.
2. Создаю новую.
У первой закладки ярлычок закрывается. Видно только край. А само место для ярлыка, как будто, снизу. При создании второй и т.д. при их выборе, ярлыки нормально отображаются. При этом становится коретное отображение этой самой первой вкладки. Если выбрать первую (которая кривая) удалить ее, то потом все нормально. Если же удалить опять все и повторить, происходить опять это. Что я натворил не так?
Вот проект http://webfile.ru/4337832

Код: Выделить всё

unit mdiform;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  Menus, ExtCtrls, Buttons, StdCtrls, Grids, PopupNotifier, ComCtrls,
  PairSplitter, ActnList, StdActns, ButtonPanel, Chart;

type
  { TfrmMy }

  TfrmMy = class(TForm)
    FileCloseAction: TAction;
    FileNewAction: TAction;
    ActionList: TActionList;
    ImgLTlBMain: TImageList;
    MainMenu: TMainMenu;
    MenuItemFileClose: TMenuItem;
    MenuItemFileNew: TMenuItem;
    MenuItemFile: TMenuItem;
    PgControl: TPageControl;
    PnlDrawing: TPanel;
    ScrollBox1: TScrollBox;
    TabSheet1: TTabSheet;
    TlBMain: TToolBar;
    TlBtnNew: TToolButton;
    TlBtnClose: TToolButton;
    procedure FileCloseActionExecute(Sender: TObject);
    procedure FileNewActionExecute(Sender: TObject);

private
    { private declarations }

  public
    { public declarations }
  end;
var
  frmMy: TfrmMy;
  strNameCreateDocument : String;
implementation
procedure TfrmMy.FileCloseActionExecute(Sender: TObject);
begin
  If PgControl.PageCount > 0 then PgControl.ActivePage.Free;
end;
procedure TfrmMy.FileNewActionExecute(Sender: TObject);
Var
  TabSheet : TTabSheet;
  ScrollBox : TScrollBox;
begin
  TabSheet := TTabSheet.Create(Self);
  With TabSheet do
  begin
    Caption := 'Тыц';
    ImageIndex := 1;
    PageControl := PgControl;
  end;  //with
  ScrollBox := TScrollBox.create(self);
  ScrollBox.Align := AlClient;
  ScrollBox.Parent := TabSheet;
end;
initialization
  {$I mdiform.lrs}

end.


Добавлено спустя 17 часов 58 минут 56 секунд:
У всех такая проблема как у меня? или как? может это глюк? и его надо перенести в соответствующую тему, чтобы исправили?
Alexey_02
новенький
Сообщения: 21
Зарегистрирован: 15.02.2010 14:51:36

Сообщение Alexey_02 »

Данный глюк наблюдается если свойство у Pagecontrol.TabPosition := tpTop или tpLeft.
При := tpBottom или tpRight Все работает нормально.
Хоть и коряво, но решил проблему, так если создаю новый PageControl, а PageControl.PageCount = 0 тогда две вкладки создаю, а первую удаляю.

Код: Выделить всё

procedure TfrmMy.FileNewActionExecute(Sender: TObject);
Var
  TabSheet : TTabSheet;
  ScrollBox : TScrollBox;

begin
  TabSheet := TTabSheet.Create(Self);
If PgControl.PageCount = 0 Then
  begin
    With TabSheet do
      begin
        Visible := False;
        PageControl := PgControl;
      end;  //with
      TabSheet := TTabSheet.Create(Self);
  With TabSheet do
    begin
      Caption := 'Тыц';
      ImageIndex := 1;
      PageControl := PgControl;
    end;  //with
  Pgcontrol.Pages[0].Free;
  end
Else
  With TabSheet do
    begin
      Caption := 'Тыц';
      ImageIndex := 1;
      PageControl := PgControl;
    end;  //with
end;
Sergen
незнакомец
Сообщения: 2
Зарегистрирован: 03.06.2020 09:40:03

Сообщение Sergen »

Решил таким способом - у Табов поставил TabVisible = false
а при запуске

Код: Выделить всё

procedure TForm.FormActivate(Sender: TObject);
var
  i : integer;
begin
  for i := 0 to PageControl1.PageCount-1 do begin
   PageControl1.Pages[i].TabVisible:=true;
  end;
Ответить