Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 2005.12.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
Николай   (2005-05-16 11:24) [0]

Помогите пожалуйста даработать этот компонент
При устаноке его на форму всё нормально, но другие компоненты становяться невидимыми как это исправить.

unit MyMenuClockDate;

interface

uses
 SysUtils,Menus,Classes,
 Controls,ExtCtrls,ComCtrls,Forms,Graphics;

type
 TMyMenuClockDate = class(TMainMenu)
 private
   FTimer: TTimer;
   FStatusBar:TStatusBar;
   FPanel:TPanel;
   procedure TimerExpired(Sender: TObject);
   procedure MyHint(Sender: TObject);
   procedure CreateStatuspanel();
 protected
 public
  constructor Create(AOwner: TComponent); override;
  destructor Destroy; override;
 published
 end;
procedure Register;

implementation

constructor TMyMenuClockDate.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
 FTimer := TTimer.Create(Self);
 FTimer.Interval := 1000;
 FTimer.OnTimer := TimerExpired;
 CreateStatuspanel();
end;

destructor TMyMenuClockDate.Destroy;
begin
 inherited Destroy;
end;

procedure TMyMenuClockDate.CreateStatuspanel();
function WidthText(Text:String):Integer;
var
 Bm:TBitmap;
begin
 try
  Result:=0;
  Bm:=TBitmap.Create();
  Result:=Bm.Canvas.TextWidth(Text);
 finally
  Bm.Free;
 end;
end;
begin
 Application.OnHint := MyHint;
 FPanel:=TPanel.Create(Self);
 FPanel.Caption:="";
 FPanel.Align:=alClient;
 FPanel.BevelInner:=bvLowered;
 FPanel.Parent:=TForm(Owner);
 FStatusBar:=TStatusBar.Create(Self);
 FStatusBar.ControlStyle := FStatusBar.ControlStyle + [csAcceptsControls];
 FStatusBar.Panels.Add;
 FStatusBar.Panels[0].Width:=6+WidthText(TimeToStr(Time));
 FStatusBar.Panels[0].Text:=TimeToStr(Time);
 FStatusBar.Panels.Add;
 FStatusBar.Panels[1].Width:=9+WidthText(FormatDateTime("dd mmmm yyyyy ã.",Date));
 FStatusBar.Panels[1].Text:=FormatDateTime("dd mmmm yyyyy ã.",Date);
 FStatusBar.Panels.Add;
 FStatusBar.Parent:=FPanel;
end;

procedure TMyMenuClockDate.TimerExpired(Sender: TObject);
begin
 FStatusBar.Panels[0].Text:=TimeToStr(Time);
 FStatusBar.Panels[1].Text:=FormatDateTime("dd mmmm yyyyy ã.",Date);
end;

procedure TMyMenuClockDate.MyHint(Sender: TObject);
begin
FStatusBar.Panels[2].Text:=Application.Hint;
end;

procedure Register;
begin
 RegisterComponents("MyComponent", [TMyMenuClockDate]);
end;

end.


 
ЮЮ ©   (2005-05-16 11:30) [1]

FPanel.SendToBack;

А может лучше по-человечески? FStatusBar класть на форму, а FPanel вообще не порождать?


 
Семен Сорокин ©   (2005-05-16 11:32) [2]

другие компоненты невидимы из-за вот этого:
FPanel:=TPanel.Create(Self);
FPanel.Caption:="";
FPanel.Align:=alClient;
FPanel.BevelInner:=bvLowered;
FPanel.Parent:=TForm(Owner);
и вообще зачем нцжна эта панель? из кода не ясно...

ну а функция
function WidthText(Text:String):Integer;
вообще шедевр


 
Юрий Зотов ©   (2005-05-16 14:20) [3]

Даже FPanel.SendToBack не поможет - графические контролы на том же Parent"е панель все равно закроет.

Зачем нужна панель - действительно, непонятно.



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

Форум: "Компоненты";
Текущий архив: 2005.12.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.038 c
2-1132740714
kop
2005-11-23 13:11
2005.12.11
Объектное ориентирование


14-1132567081
futility
2005-11-21 12:58
2005.12.11
Delphi


2-1133037065
vadik
2005-11-26 23:31
2005.12.11
coinitialize


2-1132414523
Venum
2005-11-19 18:35
2005.12.11
TWebBrowser


14-1132659255
gn
2005-11-22 14:34
2005.12.11
перевод с английского





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский