Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2016, 21:17   #21
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

а у меня не подчёркивает, всё компилится и работает.
что я делаю не так?
как сделать, чтобы у меня тоже такую ошибку вываливало?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 16.02.2016, 21:53   #22
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
а у меня не подчёркивает, всё компилится и работает.
что я делаю не так?
как сделать, чтобы у меня тоже такую ошибку вываливало?
Если не сложно, можете мне ваш файл проекта сбросить?
Dux вне форума Ответить с цитированием
Старый 16.02.2016, 21:57   #23
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Если не сложно, можете мне ваш файл проекта сбросить?
щас ночь, менЯ на работу охрана не пустит.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 16.02.2016, 22:10   #24
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Dux
Delphi современная надеюсь?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.02.2016, 22:23   #25
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Delphi современная надеюсь?
Delphi XE7
Dux вне форума Ответить с цитированием
Старый 16.02.2016, 22:40   #26
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Delphi современная надеюсь?
У меня в Д7 компилится и работает без вопросов.
Iron Monk вне форума Ответить с цитированием
Старый 17.02.2016, 11:36   #27
Filka
Форумчанин
 
Регистрация: 29.10.2015
Сообщений: 273
По умолчанию

Можно сделать что-то типа такого:
Код:
unit DotsRemover;

interface

uses
  Windows, Messages, Controls, StdCtrls;

type
  TDotsRemover = class(TObject)
  private
    FEdit: TEdit;
    FOldWndProc: TWndMethod;
    procedure Hook;
    procedure Unhook;
    procedure RemoveDots(var S: string);
    procedure WndProc(var Message: TMessage);
  public
    constructor Create(AEdit: TEdit);
    destructor Destroy; override;
  end;

implementation

uses
  Clipbrd;

{ TDotsRemover }

constructor TDotsRemover.Create(AEdit: TEdit);
begin
  FEdit := AEdit;
  Hook;
end;

destructor TDotsRemover.Destroy;
begin
  Unhook;
end;

procedure TDotsRemover.Hook;
begin
  if Assigned(FEdit) then
  begin
    FOldWndProc := FEdit.WindowProc;
    FEdit.WindowProc := WndProc;
  end;
end;

procedure TDotsRemover.RemoveDots(var S: string);
var
  I, J: Integer;
begin
  J := 0;
  for I := 1 to Length(S) do
  begin
    if S[I] <> '.' then
    begin
      Inc(J);
      S[J] := S[I];
    end;
  end;
  SetLength(S, J);
end;

procedure TDotsRemover.Unhook;
begin
  if Assigned(FEdit) then
    FEdit.WindowProc := FOldWndProc;
end;

procedure TDotsRemover.WndProc(var Message: TMessage);
var
  S: string;
begin
  case Message.Msg of
    WM_PASTE:
      begin
        S := Clipboard.AsText;
        RemoveDots(S);
        FEdit.SelText := S;
      end;

    WM_CHAR:
      begin
        Message.Result := 0;
        if Message.WParam <> Ord('.') then
          FOldWndProc(Message);
      end;

    WM_SETTEXT:
      begin
        S := PChar(Message.LParam);
        RemoveDots(S);
        Message.LParam := LPARAM(PChar(S));
        FOldWndProc(Message);
      end;
  else
    FOldWndProc(Message);
  end;
end;

end.
Пример:
Код:
uses
  //...
  DotsRemover;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    FDotsRemover: TDotsRemover;
  end;
//...
implementation
//...
procedure TForm1.FormCreate(Sender: TObject);
begin
  FDotsRemover := TDotsRemover.Create(Edit1);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  FDotsRemover.Free;
end;

Последний раз редактировалось Filka; 18.02.2016 в 05:54.
Filka вне форума Ответить с цитированием
Старый 17.02.2016, 12:31   #28
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Спасибо большое!!!
Dux вне форума Ответить с цитированием
Старый 17.02.2016, 12:32   #29
Filka
Форумчанин
 
Регистрация: 29.10.2015
Сообщений: 273
По умолчанию

Пожалуйста.
Filka вне форума Ответить с цитированием
Старый 17.02.2016, 12:33   #30
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

А мне реализация от min@y™ понравилась.
Iron Monk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать что бы в Edit был прозрачный текст который при введение в Edit все исчез alman12 Общие вопросы Delphi 22 09.06.2014 22:21
Задан текст, состоящий из строк произвольной длины. Обработать текст, подсчитав количество строк и отсортировав их (Паскаль) Александр_Прог Помощь студентам 3 24.03.2014 14:37
Как получить текст из Edit в переменную INT nimbler Win Api 4 05.11.2009 22:45
Как задать текст в Edit в чужом окне Artem Win Api 6 14.12.2007 19:13