![]() |
![]() ![]() ![]() ![]() |
|
Изменить экранный курсор без необходимости возвращать предыдущийDelphi , ОС и Железо , Мышка и КурсорИзменить экранный курсор без необходимости возвращать предыдущий
Оформил: DeeCo
// By implementing Interface we can set the cursor without restore it in the end.
// Example: In convensional way...
var
Cur: TCursor;
begin
Cur := Screen.Cursor;
Screen.Cursor := crSQLWait;
//do coding here
//What happend is that if your code did not finish, the screen cursor will
//remain as crSQLWait.. even with try..finally block (sometimes)
Screen.Cursor := Cur;
end;
// By using interface, we can implement as follows
type
ImyCursor = interface
[(GUID - Ctrl - Shift - G)]
end;
TmyCursor = class(TInterfacedObjects, ImyCursor);
private
FCursor: TCursor;
public
constructor Create;
destructor Destroy; override;
end;
implementation
TmyCursor.Create;
begin
FCursor := Screen.Cursor;
end;
TmyCursor.Destroy;
begin
Screen.Cursor := FCursor;
inherited;
end;
procedure....var
C: ImyCursor;
begin
C := TmyCursor.Create;
Screen.Curosr := crSQLWait; // whatever cursor you like
// Do coding here without worring to free it.
// Screen Cursor will restore when the TMyCursor object get out of scope.
end;
Привет! Я переведу текст на русский язык: Код, предоставленный ниже, является решением в Delphi для изменения курсора экрана без необходимости ручного восстановления его в конце, используя интерфейс и класс с помощью наследования. Вот что код делает:
Таким образом, это подход обеспечивает восстановление курсора всегда, даже если происходит исключение. Вот предложенный альтернативный способ решения: Альтернативное решение достигает того же результата, что и оригинальный код, но более простое и понятное. Оно также использует блок Изменение экранный курсора без необходимости возвращать предыдущий можно выполнить с помощью интерфейса и класса, реализующего этот интерфейс, что позволяет автоматически восстановить прежний курсор при выходе объекта из области видимости. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш :: Главная :: Мышка и Курсор ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||