Кнопочные уведомления в Delphi 7 - PullRequest
0 голосов
/ 21 сентября 2011

Я искал много форумов и многих веб-сайтов, но я не нашел нужного решения. У меня было требование показать количество уведомлений для кнопок . Когда форма загружается. Если уведомления сотен должно быть 100 рядом с кнопкой. Если ничего, то никаких уведомлений не должно быть видно.

Пожалуйста, предложите мне необходимое решение ..

Заранее спасибо.

Они запрашивают функциональность, аналогичную иконкам IOS4 .

Ответы [ 4 ]

4 голосов
/ 21 сентября 2011

Если вы не возражаете против использования какого-либо компонента вместо собственного, то есть тот, который делает то, что вам нужно.Он будет отображать статус и будет выглядеть точно так же, как показано в ссылке на изображение.

enter image description here

Вы можете увидеть эту страницу здесь

Это не бесплатно, хотя.

1 голос
/ 21 сентября 2011

В iOS 4 есть значки с уведомлениями (для запуска программы) и без кнопок (я думаю), так что это не совсем то же самое, ... но, возможно, вы можете создать пользовательскую кнопку (наследовать от TButton) и используйте что-то вроде события onPaint (извините, это слишком много в стиле dotnet, ... не знаю, как это называется в delphi), чтобы нарисовать это «уведомление» для кнопки, как вы делаете это в TCanvas.

0 голосов
/ 22 сентября 2011

Я думаю, что вы можете использовать TBalloonHint компонент.Например, чтобы показать уведомление,

procedure TForm1.FormCreate(Sender: TObject);
var
  point : TPoint;
begin
  point.X := sb1.Left;
  point.Y := sb1.Top;
  BalloonHint1.Delay := 100;
  //BalloonHint1.Description := 'This is your Notification!';
  BalloonHint1.HideAfter := -1;
  BalloonHint1.Style := bhsBalloon;
  BalloonHint1.Title := '2';
  sb1.ParentShowHint := False;
  BalloonHint1.ShowHint(point);
end;

Чтобы скрыть уведомление

procedure TForm1.sb1Click(Sender: TObject);
begin
  BalloonHint1.HideHint;
end;

Это будет выглядеть как на изображении выше enter image description here

Если вы хотитедля показа изображений вы можете использовать свойство BalloonHint1.Images.

0 голосов
/ 21 сентября 2011

Вы можете использовать TPaintBox и рисовать непосредственно в его свойство Canvas.У TCanvas есть несколько методов, которые, на мой взгляд, сделали бы эту задачу довольно простой.Просто сохраните фоновое изображение отдельно (возможно, в TImage), скопируйте его на холст (используя метод Draw в событии OnPaint), а затем нарисуйте круг (метод Ellipse) и число последним (TextOut или TextRect).Вы также можете использовать событие OnClick TPaintBox для управления операциями «нажатия кнопки».

...