Показать сообщение отдельно
  #2  
Старый 02.09.2012, 13:49
Аватар для YVitaliy
YVitaliy YVitaliy вне форума
Местный
 
Регистрация: 14.12.2011
Сообщения: 481
Версия Delphi: Borland Delphi7
Репутация: 17
По умолчанию

Код:
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
, но все-равно будет занимать много процессорного времени.
Ответить с цитированием