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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.06.2012, 06:47
kobz kobz вне форума
Прохожий
 
Регистрация: 08.06.2012
Сообщения: 12
Репутация: 10
По умолчанию BalloonHint&Edit

Привет всем. разбираюсь с подсказкой BalloonHint. Пытаюсь сделать похожее (см. вложение). Нашел в инете кое-какой код, который переделал под себя.
Код:
Procedure TForm.Edit1KeyPress(Sender: TObject; var Key: Char);
var
  point: TPoint;
begin
  if Key = '*' then
  begin
    BalloonHint1.Description := 'бла-бла-бла';
    Point.X := Edit1.Width div 2;
    Point.Y := 0;
    BalloonHint1.ShowHint(Edit1.ClientToScreen(point));
  end;
end;
Но почему-то хинт выскакивает не под Edit-ом, а в месте где находится курсор. Как можно переделать строку:
Код:
 BalloonHint1.ShowHint(Edit1.ClientToScreen(point));
что бы хинт изображался как на рис. и возможно ли такое стандартным хинтом? Спасибо.
Изображения
Тип файла: jpg Error.JPG (8.7 Кбайт, 21 просмотров)
Ответить с цитированием
  #2  
Старый 08.06.2012, 09:35
Аватар для Kailon
Kailon Kailon вне форума
Активный
 
Регистрация: 06.06.2010
Сообщения: 339
Версия Delphi: 10.4
Репутация: 429
Сообщение

А у меня все правильно отображается
Код:
var
  Point: TPoint;
begin
  if Key in ['*', '/', '\', '?', '"', '<', '>'] then
  with BalloonHint1 do
  begin
    Key := #0;
    Delay := 0;
    HideAfter := 1500;
    Title := 'Эти символы вводить запрещено:';
    Description := '*, /, \, ", ?, |';
    Point.X := Edit1.Width div 2;
    Point.Y := Edit1.Height;
    ShowHint(Edit1.ClientToScreen(Point));
  end;
__________________
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.
Ответить с цитированием
  #3  
Старый 08.06.2012, 10:16
kobz kobz вне форума
Прохожий
 
Регистрация: 08.06.2012
Сообщения: 12
Репутация: 10
По умолчанию

Ничего не понимаю... Попробовал еще раз, все так же... Нажимаю на клавишу, курсор мыши допустим находится в правом верхнем углу монитора, там и выскакивает хинт. У меня Delphi 2009. А у вас?
Ответить с цитированием
  #4  
Старый 08.06.2012, 12:32
Аватар для Kailon
Kailon Kailon вне форума
Активный
 
Регистрация: 06.06.2010
Сообщения: 339
Версия Delphi: 10.4
Репутация: 429
Сообщение

У меня Embarcadero RAD Studio 2010. Выложи свой проект полностью.
__________________
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.
Ответить с цитированием
  #5  
Старый 08.06.2012, 13:26
kobz kobz вне форума
Прохожий
 
Регистрация: 08.06.2012
Сообщения: 12
Репутация: 10
По умолчанию

Проекта как такового нет, кинул на форму BalloonHint, Edit и попробовал их связать. Вот код:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    BalloonHint1: TBalloonHint;
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
  Point: TPoint;
begin
  if Key = '*'  then
  begin
    Key := #0;
   BalloonHint1.Description := 'Имя файла не должно содержать следующих знаков:'+№13+'   *, /, \, ", ?, |       ' ;
    Point.X := Edit1.Width div 2;
    Point.Y := 0;
    BalloonHint1.ShowHint(Edit1.ClientToScreen(Point));
  end;
end.
Delay и HideAfter я настраивал в инспекторе. Так, что "ломаться" нечему и все должно работать правильно. Но увы...
Ответить с цитированием
  #6  
Старый 08.06.2012, 13:41
robt robt вне форума
Активный
 
Регистрация: 17.02.2011
Сообщения: 298
Репутация: -1806
По умолчанию

для балона в эдите никакой TBalloonHint вообще не нужен
Ответить с цитированием
  #7  
Старый 08.06.2012, 17:12
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

остаются еще координаты вывода, если сравнить
Цитата:
Сообщение от Kailon
Код:
...
    Point.X := Edit1.Width div 2;
    Point.Y := Edit1.Height;
...
и
Цитата:
Сообщение от kobz
Код:
...
    Point.X := Edit1.Width div 2;
    Point.Y := 0;
...
Y==0 - и есть самый верх монитора
__________________
Понять, что хочет заказчик - бесценно, ведь он платит MasterCard
Ответить с цитированием
  #8  
Старый 08.06.2012, 19:06
kobz kobz вне форума
Прохожий
 
Регистрация: 08.06.2012
Сообщения: 12
Репутация: 10
По умолчанию

Цитата:
для балона в эдите никакой TBalloonHint вообще не нужен
А что вы имеете в виду? Действительно раньше писали сами, по-моему даже у вас на сайте есть исходники. Дело не в этом, нужен, не нужен. Весь вопрос почему он не работает так как надо, получается только у меня, раз у Kailona все в порядке

Цитата:
остаются еще координаты вывода, если сравнить
Да пробовал, я и код полностью Kailona вгонял, без изменений. Все равно, если курсор мыши внизу, там и хинт, вверху, значит хинт там. Мистика какая-то...
Ответить с цитированием
  #9  
Старый 08.06.2012, 20:22
robt robt вне форума
Активный
 
Регистрация: 17.02.2011
Сообщения: 298
Репутация: -1806
По умолчанию

Цитата:
Сообщение от kobz
Мистика какая-то...
это похоже на то, что тип балона не выставлен как "TRACKTRACKPOSITION" поэтому и всплывает где курсор
Ответить с цитированием
  #10  
Старый 09.06.2012, 06:47
kobz kobz вне форума
Прохожий
 
Регистрация: 08.06.2012
Сообщения: 12
Репутация: 10
По умолчанию

Это что за "зверь" такой и как это можно исправить, не подскажешь?
Ответить с цитированием
  #11  
Старый 09.06.2012, 06:57
Аватар для Kailon
Kailon Kailon вне форума
Активный
 
Регистрация: 06.06.2010
Сообщения: 339
Версия Delphi: 10.4
Репутация: 429
Сообщение

Дай исходник. Попробую собрать у себя и посмотрим что получиться...
__________________
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.
Ответить с цитированием
  #12  
Старый 09.06.2012, 07:15
kobz kobz вне форума
Прохожий
 
Регистрация: 08.06.2012
Сообщения: 12
Репутация: 10
По умолчанию

Даю исходник...
Вложения
Тип файла: rar Balloon&Edit.rar (210.4 Кбайт, 9 просмотров)
Ответить с цитированием
  #13  
Старый 09.06.2012, 09:49
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Где-то был исходник как на АПИ балун у эдита показывать.
Ответить с цитированием
  #14  
Старый 09.06.2012, 10:04
Аватар для Kailon
Kailon Kailon вне форума
Активный
 
Регистрация: 06.06.2010
Сообщения: 339
Версия Delphi: 10.4
Репутация: 429
Сообщение

Цитата:
Сообщение от kobz
Даю исходник...
Сначала запустил твой .exe, подсказка там где курсор. Затем собрал твой проект, не меняя в коде совершенно ничего, и все нормально стало... Даже не знаю что сказать.
__________________
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.
Ответить с цитированием
Этот пользователь сказал Спасибо Kailon за это полезное сообщение:
kobz (09.06.2012)
  #15  
Старый 09.06.2012, 10:38
kobz kobz вне форума
Прохожий
 
Регистрация: 08.06.2012
Сообщения: 12
Репутация: 10
По умолчанию

Спасибо вам огромное, по крайней мере мы выяснили, что код рабочий и им могут пользоваться все желающие, при наличии конечно нормальной оболочки. Теперь буду все версии и сборки проверять балуном . Итого получается три варианта: создать свой балун и забить на стандартный, или снести старую и установить новую оболочку, или дождаться ответа на свой вопрос от robt-а. Спасибо Кailon за участие и трату своего времени. Блин, а если у меня еще что-нибудь вылезет!? С семеркой проблем таких не было...
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter