Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.09.2012, 16:51
Аватар для Klyaksa
Klyaksa Klyaksa вне форума
Новичок
 
Регистрация: 07.01.2012
Сообщения: 90
Репутация: 10
По умолчанию Динамическая подсказка

ЗДравствуйте. Как мне можно реализовать динамическую подсказку? То есть чтобы она обнавляла значение постоянно как только она появляется. Есть код
Код:
...dalnost: TProgressBar;...
procedure TForm1.dalnostMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
nazhal:=true;
dalnost.Position:=dalnost.max*x div dalnost.Width;
end;

procedure TForm1.dalnostMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if nazhal then dalnost.Position:=dalnost.max*x div dalnost.Width;
dalnost.hint:=inttostr(dalnost.Position);
end;

procedure TForm1.dalnostMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if nazhal then dalnost.Position:=dalnost.max*x div dalnost.Width;
nazhal:=false;
end;
стандартная подсказка то появится то исчесзнет.
Ответить с цитированием
  #2  
Старый 05.09.2012, 07:37
Аватар для Lost_Fish
Lost_Fish Lost_Fish вне форума
Начинающий
 
Регистрация: 21.07.2011
Адрес: Новосибирск
Сообщения: 103
Версия Delphi: Delphi 7,XE2
Репутация: выкл
По умолчанию

TBaloonHint есть в некоторых Delphi там можно задать время жизни подсказки, а так посмотри Application.HintHidePause
__________________
Код сырец
Ответить с цитированием
  #3  
Старый 05.09.2012, 10:21
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

так http://zalil.ru/33728619 ?
нужно мышку навести на ProgressBar.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #4  
Старый 05.09.2012, 22:23
Аватар для Klyaksa
Klyaksa Klyaksa вне форума
Новичок
 
Регистрация: 07.01.2012
Сообщения: 90
Репутация: 10
По умолчанию

Экзешник какрас то что нужно, только какие компоненты нужны для создания такой подсказки?
Ответить с цитированием
  #5  
Старый 06.09.2012, 05:14
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Вот пример:

Код:
unit tooltipunit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, CommCtrl, ExtCtrls, XPMan;

type
  TForm1 = class(TForm)
    ProgressBar1: TProgressBar;
    XPManifest1: TXPManifest;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

const
  TTM_SETTITLE = WM_USER + 32;
  TTS_BALLOON  = $40;

var
  Form1     : TForm1;
  TTBalloon : HWND;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  TI : TToolInfo;
begin
  {  ****  "ВОЗДУШНЫЕ ШАРИКИ"  ****  }
  TTBalloon := CreateWindowEx(WS_EX_TOPMOST, TOOLTIPS_CLASS, NIL,
      TTS_ALWAYSTIP or TTS_BALLOON,
      integer(CW_USEDEFAULT), integer(CW_USEDEFAULT),
      integer(CW_USEDEFAULT), integer(CW_USEDEFAULT),
      Handle, 0, hInstance, NIL);

  {  Заполняем структуру TOOLINFO для подсказки "воздушный шарик" }
  TI.cbSize   := SizeOf(TToolInfo);
  TI.uFlags   := TTF_SUBCLASS or TTF_TRANSPARENT or TTF_CENTERTIP;
  TI.hwnd     := ProgressBar1.Handle;
  TI.uId      := 0;
  TI.lpszText := '';
  Windows.GetClientRect(ProgressBAr1.Handle, Ti.Rect);

  SendMessage(TTBalloon, TTM_ADDTOOL, 0, Integer(@ti));
  SendMessage(TTBalloon, TTM_SETTITLE, 1, Integer(PAnsiChar('Position')));
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  DestroyWindow(TTBalloon);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  TI   : TToolInfo;
begin
  ProgressBar1.Position := (ProgressBar1.Position + 5) mod ProgressBar1.Max;

  {  Заполняем структуру TOOLINFO для подсказки "воздушный шарик" }
  TI.cbSize   := SizeOf(TToolInfo);
  TI.uFlags   := TTF_SUBCLASS or TTF_TRANSPARENT or TTF_CENTERTIP;
  TI.hwnd     := ProgressBar1.Handle;
  TI.uId      := 0;
  TI.lpszText := PAnsiChar(Format('Выполнено %d%% процентов', [ProgressBar1.Position]));
  Windows.GetClientRect(ProgressBar1.Handle, Ti.Rect);
  SendMessage(TTBalloon, TTM_SETTOOLINFO, 0, Integer(@ti));
  SendMessage(TTBalloon, TTM_SETTITLE, 1, Integer(PAnsiChar('Position')));
end;

end.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #6  
Старый 06.09.2012, 08:22
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

практически тютелька-в-тютельку)
Вложения
Тип файла: rar ProgressBar.rar (2.1 Кбайт, 13 просмотров)
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Этот пользователь сказал Спасибо NumLock за это полезное сообщение:
Klyaksa (06.09.2012)
  #7  
Старый 06.09.2012, 18:37
Аватар для Klyaksa
Klyaksa Klyaksa вне форума
Новичок
 
Регистрация: 07.01.2012
Сообщения: 90
Репутация: 10
По умолчанию

А вот ваш экзешник размером меньше чем мой. Но это уже другая тема.
Ответить с цитированием
  #8  
Старый 06.09.2012, 21:06
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от NumLock
практически тютелька-в-тютельку)
А чему там отличаться?
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:35.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter