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

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

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2016, 12:03   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

это форумный движок косячик - выкинул правую закрывающую скобку после слова Delphi

либо допишите его самостоятельно, либо попробуйте сюда тыкнуть - ТЫЦ
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.05.2016, 12:08   #12
ParAlexandr
Пользователь
 
Регистрация: 16.07.2013
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
если я правильно Вас понял, то вам нужно сделать так, как описано в примере:
http://docwiki.embarcadero.com/CodeE...etText_(Delphi)
Добавил скобку, ссылка открылась.

Да, пример подходит к моей задаче:
Код:
procedure TMain.ClientDataSet1fFirstSetText(Sender: TField;
  const Text: string);
begin
  { We provide this OnSetText event to enter a custom string after each data
    we input in the fFirst field. }
  try
    { Add the (First Name) string after the User input. }
    Sender.AsString := Format('%s (First Name)', [Text]);
    Label1.Caption := Format('%s (First Name) was successfully added.', [Text]);
  except
    { If the try block fails, just add the data in the standard way. }
    Sender.AsString := Text;
    Label1.Caption := Format('%s was successfully added.', [Text]);
  end;
end;
Вроде я написал по подобию...
ParAlexandr вне форума Ответить с цитированием
Старый 19.05.2016, 12:18   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

значит, Вы обработчик на событие не повесили!

покажите скриншот, где Вы открыли датасет и назначаете полю обработчик на событие onSetText
и Вы уверены, что грид связан именно с этим датасетом?

исходники проекта запаковать в архив и выложить на форум не желаете?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.05.2016, 12:22   #14
ParAlexandr
Пользователь
 
Регистрация: 16.07.2013
Сообщений: 11
По умолчанию

Обработчик заработал следующим образом:

Все вернул к состоянию как написано в шапке сообщения

В строке:
Код:
Form3.DBGrid1.Columns[c].Field.OnSetText:=SetText;
перед SetText добавил @

Получился следующий работающий код:

Код:
type
  { TForm3 }
  TForm3 = class(TForm) 
.................................
    procedure SetText(Sender: TField; const AText: string); 
    procedure OpenPageControl;
.................................

implementation
{$R *.lfm}
{ TForm3 }
   
procedure TForm3.SetText(Sender: TField; const AText: string);
begin
  try
    Sender.AsFloat := StrToFloat(AText);
    //ShowMessage('Введено неверное число');
  except
    ShowMessage('Введено неверное число');
    Abort;      // Запрещаем очистку ячейки и выход из неё
  end;
end; 

procedure TForm3.OpenPageControl;
var
  c:integer;
begin    
    for c:=2 to 10 do
    begin
      Form3.DBGrid1.Columns[c].Field.OnSetText:=@SetText;
end;

Благодарю всех откликнувшихся, не думал, что за такое время отреагируете на проблему.
Конечный код написал полностью, может кому-нибудь пригодится.
ParAlexandr вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прошу помощи в написании ramota3 Помощь студентам 1 30.03.2016 12:40
прошу помощи в написании действий в AS 3.0 Flash eNOT_86 Общие вопросы Web 1 12.03.2016 18:00
Прошу помощи в написании программ для работы с текстовыми файлами Никита757 Паскаль, Turbo Pascal, PascalABC.NET 1 15.12.2015 21:35
прошу квалифицированной поддержки в написании макроса Leeroy Microsoft Office Excel 4 20.02.2013 19:21
Прошу помощи в написании программы на языке СИ. PontiyPilat Общие вопросы C/C++ 0 12.10.2008 20:22