Показать сообщение отдельно
  #4  
Старый 02.09.2012, 19:40
Pavel_Aleksandrovich Pavel_Aleksandrovich вне форума
Прохожий
 
Регистрация: 02.09.2012
Сообщения: 31
Репутация: 9
По умолчанию

Цитата:
Сообщение от YVitaliy
Код:
unit emptyFoc;

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


procedure focusEdit(component:TComponent);

implementation

  procedure focusEdit(component:TComponent);
  var i:Integer;
  begin
    for i:=0 to component.ComponentCount-1 do begin
      if component.Components[i].ClassType=TEdit then begin
         if Length((component.Components[i] as TEdit).Text)=0 then begin
             (component.Components[i] as TEdit).SetFocus;
             exit;
         end;
      end;
    end;

  end;
end.
Но если хочешь, чтобы процедура ждала, пока пустой Edit не заполнится, желательно это делать в отдельном потоке. Можно, конечно, использовать
Код:
Application.ProcessMessages
, но все-равно будет занимать много процессорного времени.

а тип tcomponent зарезервирован в delphi? или его надо объявлять?
Ответить с цитированием