Дата и время в верхней панели кнопок

Готовые скрипты, модули расширений, динамические библиотеки и вспомогательные утилиты.
Аватара пользователя
Владимир
Администратор
Сообщения: 658
Зарегистрирован: 10 фев 2018, 18:27
Откуда: Белгород
Контактная информация:

Дата и время в верхней панели кнопок

Сообщение Владимир » 16 фев 2018, 10:40

Установка лейбла (дата, день недели, время) в панели кнопок главного окна программы.
СкриншотыПоказать
Изображение

Изображение

Изображение

Изображение

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

var
lbl: TLabel;
DTPan: TPanel;
Tmr,TT: TTimer;

procedure CreateComponents(Sender: TObject);
var WS:TWindowState;
begin
DTPan:= TPanel.Create(MainWindow.Toolbar);
DTPan.Parent := MainWindow.Toolbar;
With DTPan do
 Begin
    WS:=MainWindow.WindowState;
    MainWindow.WindowState:=wsMaximized;
    Height:=30;
    width:=400;
    Left:=MainWindow.Toolbar.Width+20;
    MainWindow.WindowState:=WS;
    //align:=alRight;
    BevelOuter:=bvNone;
    anchors:=[akRight,akLeft];
 end;
    lbl:=TLabel.Create(DTPan);
    lbl.Parent := DTPan;
    With lbl do
      Begin
        Name:='info';
        SetBounds(DTPan.width-60, 4, 0, 10);
        Font.Style:=[fsBold];
        Font.Name:='Roboto';
        Font.Size:=16;
        Font.Color:=clBlue;
        Anchors:=[akRight];
        Alignment:=taRightJustify;
      End;
end;

procedure SetLabelInfo(Sender: TObject);
begin
lbl.Caption := DateToStr(TDateTime(Now))+' ('+EvalExpr('WEEKDAY(DATE)',nil)+') / '+FormatDateTime('hh:mm:ss',TDateTime(Now));
end;

procedure StartTimer(Sender: TObject);
begin
TT.Enabled:=false;
Tmr := TTimer.Create(nil);
Tmr.Enabled:=true;
Tmr.Interval := 1000;
CreateComponents(nil);
lbl.Caption :='';
Tmr.OnTimer:=@SetLabelInfo;
end;

procedure TurboTimer(Sender: TObject);
begin
TT := TTimer.Create(nil);
TT.Enabled:=true;
TT.Interval := 1000;
TT.OnTimer:=@StartTimer;
end;

procedure FreeMem;
begin
TT.Free;
if lbl<>nil then
 lbl.Free;
if DTPan<>nil then
 DTPan.Free;
if Tmr<>nil then
 Tmr.Free;
if TT<>nil then
end;

procedure DataBase_Open;
begin
TurboTimer(nil);
end;

procedure Database_Close;
begin
  FreeMem;
end;
Для установки скопируйте вышеуказанный код в модуль Main (дизайнер -> меню "файл" -> флаг "режим эксперта" (вкл.) -> редактор скриптов -> Модуль Main).
Если в модуле Main уже присутствует кодПоказать
В таком случае копирование необходимо выполнить в следующем порядке:
1. Весь код находящийся выше процедур DataBase_Open и Database_Close вставляется в модуль так же (выше)
2. Код находящийся внутри процедур DataBase_Open и Database_Close между инструкций begin ... end - копируется соответственно расположению (TurboTimer(nil); в процедуру DataBase_Open и FreeMem; в Database_Close).
Поддержка проекта

Аватара пользователя
Yuriy
Сообщения: 138
Зарегистрирован: 11 фев 2018, 13:34
Откуда: Киев

Re: Дата и время в верхней панели кнопок

Сообщение Yuriy » 16 фев 2018, 11:07

Изображение
В этом скрипте решено?

Аватара пользователя
Владимир
Администратор
Сообщения: 658
Зарегистрирован: 10 фев 2018, 18:27
Откуда: Белгород
Контактная информация:

Re: Дата и время в верхней панели кнопок

Сообщение Владимир » 16 фев 2018, 11:55

Yuriy писал(а):
16 фев 2018, 11:07
В этом скрипте решено?
Решено. Скриншоты в спойлере выше...

Аватара пользователя
Nikxdrummer
Сообщения: 3
Зарегистрирован: 03 сен 2018, 07:10

Дата и время в верхней панели кнопок

Сообщение Nikxdrummer » 03 сен 2018, 08:55

При чем только с понедельником такая ерунда
Изображение

Аватара пользователя
Владимир
Администратор
Сообщения: 658
Зарегистрирован: 10 фев 2018, 18:27
Откуда: Белгород
Контактная информация:

Дата и время в верхней панели кнопок

Сообщение Владимир » 03 сен 2018, 09:44

А что у вас там перенесено? На скриншоте край видно...

Аватара пользователя
Nikxdrummer
Сообщения: 3
Зарегистрирован: 03 сен 2018, 07:10

Дата и время в верхней панели кнопок

Сообщение Nikxdrummer » 03 сен 2018, 11:57

Владимир писал(а):
03 сен 2018, 09:44
А что у вас там перенесено? На скриншоте край видно...
Ничего не переносил и не трогал, оболочка программы штатная, все дни отображаются нормально, но вот с понедельником такая ерунда происходит, возможно из за длины слова)

Отправлено спустя 3 минуты 10 секунд:
Изображение

Аватара пользователя
Владимир
Администратор
Сообщения: 658
Зарегистрирован: 10 фев 2018, 18:27
Откуда: Белгород
Контактная информация:

Дата и время в верхней панели кнопок

Сообщение Владимир » 03 сен 2018, 13:15

Немного подправил код шапке)

Аватара пользователя
Nikxdrummer
Сообщения: 3
Зарегистрирован: 03 сен 2018, 07:10

Дата и время в верхней панели кнопок

Сообщение Nikxdrummer » 04 сен 2018, 05:16

А у этого модуля есть какая то привязка к правой или левой стороне?

Аватара пользователя
Владимир
Администратор
Сообщения: 658
Зарегистрирован: 10 фев 2018, 18:27
Откуда: Белгород
Контактная информация:

Дата и время в верхней панели кнопок

Сообщение Владимир » 04 сен 2018, 07:34

У модуля - нет. Компонент внутри модуля - наследует привязки.

Аватара пользователя
Macheti
Сообщения: 3
Зарегистрирован: 16 июл 2019, 10:51

Дата и время в верхней панели кнопок

Сообщение Macheti » 18 май 2020, 13:52

Уважаемый разработчик, подскажите пожалуйста, как можно подвинуть данный лейбл, а то наезжает на значок ((

Ответить