Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.07;
Скачать: CL | DM;

Вниз

Создание компонентов, проподает кнопка   Найти похожие ветки 

 
Nemra   (2003-03-26 11:37) [0]

Я написал компоненту, наследник Tpanel. На него размещаю кнопку, а после запуска кнопки не видно. Кто нить сталкивался с такой проблемой? Как решить?


 
Smithson ©   (2003-03-26 12:02) [1]

На него размещаю кнопку - это как? Покажи код создания кнопки и панели.


 
Jel ©   (2003-03-26 12:26) [2]

А кто Parent у кнопки - твоя панель или форма?


 
Nemra   (2003-03-26 12:27) [3]

Это код компоненты, а кнопку я в проекте добавляю, размещаю на панель.
unit MySlidePanel;

interface

uses
// Windows, Graphics, Forms, Dialogs,
Messages,
Dialogs, //for showmessage
SysUtils, Classes, Controls, buttons, ExtCtrls;

type
// TMySlidePanel = class(TWinControl)
TMySlidePanel = class(TPanel)
private
{ Private declarations }
FMainPanel: TPanel;
FHeaderPanel: TPanel;
FChildPanel: TPanel;
FButtonPanel: TSpeedButton;
CurV: Boolean;

protected
{ Protected declarations }
procedure WMSize(var Message: TWMSize); message WM_SIZE;
procedure SetCaption(value:String);
function GetCaption:String;
procedure SetCur(value:Integer);
function GetCur:Integer;

procedure PanelMousedown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
public
{ Public declarations }
constructor Create(AOwner: TComponent);override;
destructor Destroy;override;
published
{ Published declarations }
property Caption: String read GetCaption write SetCaption;
property CurH:integer read GetCur write SetCur;
end;

procedure Register;

implementation

constructor TMySlidePanel.Create(AOwner: TComponent);
begin
inherited Create(AOwner);

CurV:=True;
{MAINPANEL}FMainPanel.Caption:="";
FMainPanel:=TPanel.Create(self);
FMainPanel.Parent:=Self;
FMainPanel.Width:=200;
FMainPanel.Height:=180;

{HEADERPANEL}FHeaderPanel.Caption:="FHeaderPanel";
FHeaderPanel:=TPanel.Create(Self);//(FMainPanel);
FHeaderPanel.Parent:=FMainPanel;
FHeaderPanel.Height:=20;
FHeaderPanel.Top:=0;
FHeaderPanel.Left:=0;
FHeaderPanel.Align:=alTop;

{BUTTONPANEL}FButtonPanel.Caption:="FButtonPanel";
FButtonPanel:=TSpeedButton.Create(Self);//(FHeaderPanel);
FButtonPanel.Parent:=FHeaderPanel;
FButtonPanel.Height:=FHeaderPanel.Height;
FButtonPanel.Width:=FButtonPanel.Height;
FHeaderPanel.Top:=0;
FHeaderPanel.Left:=0;
//ButtonPanel.Align:=alleft;
FButtonPanel.OnMouseDown := PanelMousedown;

// CHILDPANELFChildPanel.Caption:="FChildPanel";
FChildPanel:=TPanel.Create(Self);//(FMainPanel);
FChildPanel.Parent:=FMainPanel;
FChildPanel.Top:=FHeaderPanel.Height;
FChildPanel.Left:=0;
FChildPanel.Height:=FMainPanel.Height-FHeaderPanel.Height;
FChildPanel.Align:=alClient;

//FMainPanel.Autosize:=true;
//FHeaderPanel.Autosize:=true;
//FChildPanel.Autosize:=true;

Width:=FMainPanel.Width;
Height:=FMainPanel.Height;
Caption:=Name;
end;

procedure TMySlidePanel.WMSize(var Message: TWMSize);
begin
inherited;
FMainPanel.Width:=Message.Width;
FMainPanel.Height:=Message.Height;

FHeaderPanel.Width:=FMainPanel.Width;
FChildPanel.Width:=FMainPanel.Width;
FChildPanel.Height:=FMainPanel.Height-FHeaderPanel.Height;
end;

procedure TMySlidePanel.SetCaption(value:String);
begin
FHeaderPanel.Caption:=value;
end;

function TMySlidePanel.GetCaption:String;
begin
Result:=FHeaderPanel.caption;
end;

procedure TMySlidePanel.SetCur(value:Integer);
begin
FMainPanel.Tag:=value;
end;

function TMySlidePanel.GetCur:Integer;
begin
Result:=FMainPanel.Tag;
end;

procedure TMySlidePanel.PanelMousedown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if CurV then begin
CurH:=Height;
Height:=FHeaderPanel.Height;
end
else begin
Height:=CurH;
end;
CurV:=not CurV;
end;

destructor TMySlidePanel.Destroy;
begin
FButtonPanel.Free;
FChildPanel.Free;
FHeaderPanel.Free;
FMainPanel.Free;
inherited Destroy;
end;



procedure Register;
begin
RegisterComponents("Standard", [TMySlidePanel]);
end;

end.



 
Nemra   (2003-03-26 12:31) [4]

Я думаю что кнопка принадлежит Tpanel


 
Clickmaker ©   (2003-03-26 12:54) [5]

А Left и Top у FButtonPanel? Может она просто съехала за край панели?


 
Nemra   (2003-03-26 12:57) [6]

Этот Button Нормально рисуется, уже в программе я размешаю кнопку на мою компоненту, а когда запускаю то он проподает :(


 
Nemra   (2003-03-26 12:59) [7]

Как на созданную компоненту разместить элементы, для этого надо что нить дополнительное делать?


 
Smithson ©   (2003-03-26 13:03) [8]

У этих элементов поставить .Parent := Твоему компоненту


 
Nemra   (2003-03-26 13:27) [9]

Компонента рисуется нормально! В апректе я размещаю на форму мою компоненту. А на мою компоненту размещаю кнопку. Когда запускаю проект, то кнопка пропадает. Уже замучила, из - за чего понять не могу.
????


 
malkolinge ©   (2003-03-26 13:58) [10]

Перешли компоненту на veselov@vimas.com хочу посмотреть поближе :)))



Страницы: 1 вся ветка

Текущий архив: 2003.04.07;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
1-19601
-= Demon =-
2003-03-28 14:37
2003.04.07
Components[i] as .....


1-19674
KPY
2003-03-26 08:36
2003.04.07
несколько вопросов по Qreport


3-19492
Ej
2003-03-19 20:09
2003.04.07
SQL в консольном приложении


1-19531
dima78
2003-03-26 12:19
2003.04.07
Неиспользуемые модули


7-19900
Andrew1
2003-02-14 11:05
2003.04.07
Работа с LPT