608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
1

нет поясняющего текста

29.11.2012, 15:02. Показов 570. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
ввожу много символов, нвожу курсор мыши и ничего не происходит...
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, AppEvnts, ExtCtrls, StdCtrls;
 
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    LabeledEdit1: TLabeledEdit;
    ApplicationEvents1: TApplicationEvents;
    procedure ApplicationEvents1ShowHint(var HintStr: String;
      var CanShow: Boolean; var HintInfo: THintInfo);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.ApplicationEvents1ShowHint(var HintStr: String;
  var CanShow: Boolean; var HintInfo: THintInfo);
begin
if (HintInfo.HintControl.ClassName = 'TEdit') or
    (HintInfo.HintControl.ClassName = 'TLabeledEdit') then
    with HintInfo.HintControl as TCustomEdit do
    if (Self.Canvas.TextWidth(Text) > ClientWidth) then begin
      HintStr:=Text;
      ApplicationEvents1.CancelDispatch;
    end;
end;
 
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2012, 15:02
Ответы с готовыми решениями:

Вывод поясняющего текста для заданного термина
Написать с Помощью КЛАССОВ нужно !!! Текст помощи для не которой программы организован в виде...

Выделение из текста слов. Например, из текста ''решений нет'' выделяются два слова ''решений'', ''нет''
Здравствуйте, подскажите, пожалуйста решение. Я понимаю, что это очень легкая задача, но для меня...

Некорректное отображение текста (или текста вообще нет) в браузерах
Здравствуйте, проблема такая: некорректно отображаются текст и ссылки в браузерах Google Chrome и...

Нет текста
Добрый день. Возможно у кого то встречалась такая проблема и есть решение вопроса. Сайт на wp...

5
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32793 / 21133 / 8144
Регистрация: 22.10.2011
Сообщений: 36,393
Записей в блоге: 8
29.11.2012, 15:36 2
Цитата Сообщение от Fatal Error Посмотреть сообщение
и ничего не происходит...
Для начала задайся вопросом: а что должно произойти, и при каких условиях OnShowHint вообще отработает. Эти условия у тебя выполняются?
0
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
29.11.2012, 15:43  [ТС] 3
Хз, я с книги скопировал

Добавлено через 1 минуту
Цитата Сообщение от UI Посмотреть сообщение
Эти условия у тебя выполняются?
все, понял. на форме не установил в true ShowHint.
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
29.11.2012, 16:06 4
Цитата Сообщение от Fatal Error Посмотреть сообщение
на форме не установил в true ShowHint

Этого недостаточно.

Вот так будет правильно:

Код
type
  TFiendCustomEdit = class(StdCtrls.TCustomEdit) end;

procedure TForm1.ApplicationEvents1ShowHint(var HintStr: String;
  var CanShow: Boolean; var HintInfo: THintInfo);
var
  ed: TFiendCustomEdit;
  canv: TCanvas;
begin
  if (HintInfo.HintControl.ClassName = 'TEdit') or
    (HintInfo.HintControl.ClassName = 'TLabeledEdit') then begin
      ed := TFiendCustomEdit(HintInfo.HintControl);
      canv := TCanvas.Create;
      canv.Handle := GetDC(TWinControl(ed).Handle);
      canv.Font := ed.Font; // обязательно !!
      if (canv.TextWidth(ed.Text) > ed.ClientWidth) then begin
        HintStr:=ed.Text;
//        ApplicationEvents1.CancelDispatch; зачем ?
      end;
      ReleaseDC(ed.Handle, canv.Handle);
      canv.Free;
  end;
end;
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32793 / 21133 / 8144
Регистрация: 22.10.2011
Сообщений: 36,393
Записей в блоге: 8
29.11.2012, 16:11 5
Цитата Сообщение от mss Посмотреть сообщение
зачем ?
Затем, чтобы обработанное уже событие дальше не шло:
Note: Call the CancelDispatch method from an OnShowHint event handler to prevent the application from forwarding the event to any other application events objects.
, мало ли, вдруг будет еще один наследник TCustomApplicationEvents в проекте.
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
29.11.2012, 16:16 6
> Затем, чтобы обработанное уже событие дальше не шло

И пусть себе идет.
Оно тебе мешает ?
Текст хинта ты в обработчике изменил, CanShow остался True, а дальше забота контрола продолжить обработку и вывести хинт с измененным текстом.
0
29.11.2012, 16:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2012, 16:16
Помогаю со студенческими работами здесь

Нет текста SFML
#define _CRT_SECURE_NO_WARNINGS #include <SFML/Graphics.hpp> #include <SFML/System.hpp>...

нет печати текста
Заправил картридж LBP-2900 почистил все контакты бумагу принтер прогоняет через себя а лист выходит...

На главной странице нет текста
Я сейчас делаю сайт (ещё не сделал). На морде нет текста, только графические кнопки. Как это...

В textarea нет первоначального текста
Доброго времени суток. document.all(""+formname+"").innerHTML = '<form method=post...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru