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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2008, 18:00   #1
)Игнат(
Форумчанин
 
Регистрация: 06.01.2008
Сообщений: 180
По умолчанию TObject.Visible

Как сделать так, чтоб по окончанию события onMouseMove Visible := true?
)Игнат( вне форума Ответить с цитированием
Старый 21.01.2008, 19:06   #2
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

TObject - класс. Что ты от нево хочешь?

Цитата:
Как сделать так, чтоб по окончанию события onMouseMove Visible := true?
Все события связанны с обьектами.
Свойство Visible опятьже относится к обьекту.

Задавай вопросы правильно, читай книжки...
Нереально дать нормальный ответ на твой вопрос потому что ты сам непонял что спросил....
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 21.01.2008, 19:20   #3
)Игнат(
Форумчанин
 
Регистрация: 06.01.2008
Сообщений: 180
По умолчанию

Я имел ввиду любой объект: кнопка, форма и.т.д
)Игнат( вне форума Ответить с цитированием
Старый 21.01.2008, 19:24   #4
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

Я понял его, типа навел мышь на обьект у него сменилось свойство. убрал опять же сменилось
Меня тоже интересует, как свойства менять не на OnMouseMove а когда мышь уводишь с обьекта.
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Старый 21.01.2008, 19:38   #5
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Button1.Show
Button1.Visible := true;

например у TLabel есть события OnMouseEnter (При наведении мыши на лэйбл) и OnMouseLeave (МЫшка ушла с лэйбла)
если нужна обработка для другого контрола, а у него события такого нет, то или контрол под свои нужды править, или искать другой какой-то выход
pu4koff вне форума Ответить с цитированием
Старый 21.01.2008, 19:46   #6
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

Тоесть для других объектов нет события убирания мышки с объекта?
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Старый 21.01.2008, 20:05   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Читал, читал, так и не понял, о чем речь...
На всякий случай (вдруг попал?):
Код:
  private
    { Private declarations }
    procedure ImCloserWindowProc(var Msg: TMessage);
var
  OldCloseWindowProc: TWndMethod;

procedure Tfmain.FormCreate(Sender: TObject);
begin
...
OldCloseWindowProc:=ImCloser.WindowProc;
ImCloser.WindowProc:=ImCloserWindowProc;
ImCloser.Perform(CM_MOUSELEAVE,0,0);
OldMinimWindowProc:=ImMini.WindowProc;
...
end;

procedure Tfmain.ImCloserWindowProc(var Msg: TMessage);
begin
case msg.Msg of
CM_MOUSELEAVE:
begin
if imclose<>0 then
begin
MyJpeg := LoadJpegRes('CLOSEOFF'); // имеется в виду загрузка из ресурсов
ImCloser.Canvas.Draw(0, 0, MyJpeg);
imclose:=0;
end;
end;
CM_MOUSEENTER:
begin
if imclose<>1 then
begin
MyJpeg := LoadJpegRes('CLOSEON');
ImCloser.Canvas.Draw(0, 0, MyJpeg);
imclose:=1;
end;
end;
end;
OldCloseWindowProc(Msg);
end;
Работает безотказно. Единственная "бяка" - для каждого компонента все свое... Пытался объединить - не получилось... Может, кто-нибудь сталкивался с сией "промблемой"?
mihali4 вне форума Ответить с цитированием
Старый 21.01.2008, 21:47   #8
Никки
Форумчанин Подтвердите свой е-майл
 
Аватар для Никки
 
Регистрация: 20.11.2007
Сообщений: 500
По умолчанию

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    procedure Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
        Label1.Font.Color:=clRed;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
        Label1.Font.Color:=clBlack;
end;

end.
положи на форму TLabel и сделай в нем шрифт покрупнее!! При наведении мыши на текст он станет красным при уберании мыши снова станет чёрным!! изменяй так любые свойства!
Никки вне форума Ответить с цитированием
Старый 21.01.2008, 21:49   #9
Никки
Форумчанин Подтвердите свой е-майл
 
Аватар для Никки
 
Регистрация: 20.11.2007
Сообщений: 500
По умолчанию

А вот в JavaScript есть специальные события OnMouseOver и OnMouseOut и нет никаких проблем...
Никки вне форума Ответить с цитированием
Старый 21.01.2008, 21:57   #10
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

А универсального события для различных объектов нет?
Противоположного OnMouseMove? Часто с этим сталкиваюсь.
Я находил выход через таймер. но работает как то криво.
Типо при наведение свойство Tag изменялось на 1 а таймер назад возвращал 0.
Есть другой вариант. Он бы работал лучше.
Как проверить наведен ли на объект курсор мыши, и если нет ,то вернуть или изменить ...
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форма остаётся видимой при Visible=False Viteef Общие вопросы Delphi 10 23.02.2015 08:07
Visible [Smarik] Помощь студентам 2 28.03.2008 18:01
Panel1.Visible:=true s-force Компоненты Delphi 7 30.08.2007 02:22