-
И как?
Мне всего-то надо 2 сва-ва добавить и 1 поле
Намучался я с этими компонентами. Если нельзя, то может имеет смысл скопировать TPageControl и TTabSheet целиком, изменить им имя, подправить и все? -
DimaBr © (17.04.07 12:13) [1]Добавить можно, например так
type
TTabSheet = class(ComCtrls.TTabSheet)
property Трали-вали
end;
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
end; -
DimaBr © (17.04.07 12:14) [2]Вижу, идея с написанием собственного контрола угасла :(((
-
> Вижу, идея с написанием собственного контрола угасла :(((
Угу :(
Добавить можно, например так
Не ну мне нужно чтобы в дизан тайме видно было.
А где создются эти TTabSheet?
ЗЫ
Здрасти :) -
DimaBr © (17.04.07 12:20) [4]Здорово, коль не шутишь.
Зачем в дизайнере ?? неужеле в Run-Time нельзя присвоить ? -
> Здорово, коль не шутишь.
Не шучу :)
> неужеле в Run-Time нельзя присвоить ?
Ну нет конечно, из-за этого все мучения. Мне надо добавить обработчик TNotifyEvent. И чтобы в дизайнере виден был. -
> Мне надо добавить обработчик TNotifyEvent.
Неужели я из-за этого должен переписать весь TPageControl снуля :( -
Гы попытался сккопировать TPageControl. Все ок почти все:function TPageControl.GetImageIndex(TabIndex: Integer): Integer;
var
I,
Visible,
NotVisible: Integer;
begin
if Assigned(FOnGetImageIndex) then
Result := inherited GetImageIndex(TabIndex) else
begin
А FOnGetImageIndex в предке, в private секции ессно грустно :( -
DimaBr © (17.04.07 15:01) [8]
> > неужеле в Run-Time нельзя присвоить ?
>
> Ну нет конечно, из-за этого все мучения
Этого не может быть.
TTabSheet = class(ComCtrls.TTabSheet)
property OnMyEvent: TNotifiEvent read fOnMyEvent write fOnMyEvent;
end;
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
procedure DoMyEvent(Sender: TObject);
end;
procedure TMyForm.CreateForm(Sender: TObject);
begin
TabSheet1.OnMyEvent := DoMyEvent;
end; -
>
> Этого не может быть.
>Ну нет конечно, из-за этого все мучения.
Иеетя ввиду не точ то вообще нельзя, просто мне нужно рабта в дизайнере -
DimaBr © (17.04.07 15:48) [10]Тогда можно сделать так
unit MyTabSheet;
interface
uses Classes,ComCtrls;
type
TMyTabSheet = class(TTabSheet)
private
fTest: integer;
published
property Test: integer read fTest write fTest;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Standard',[TMyTabSheet]);
end;
end.
И вручную изменить в модуле и DFM TTabSheet на TMyTabSheet.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls,
MyTabSheet;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TMyTabSheet;
TabSheet2: TMyTabSheet;
Button1: TButton;
private
{ Private declarations }
public
{ Public declarations }
end;
Илиже зарегистрировать для TPageContol новый редактор, который будкт добавлять TMyTabSheet вместо TTabSheet. Если нигде в коде нет проверки на тип TTabSheet (if Тратата.ClassType = TTabSheet), то должно работать.