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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2010, 20:05   #1
pam3ec
 
Регистрация: 10.02.2010
Сообщений: 5
По умолчанию как закрыть правой клавишей мыши

Пишу программы парсинга RSS для диплома.
Для вывода новостей использую всплывающее окно по этому посту http://www.programmersforum.ru/showthread.php?t=65920.

Но код изменил под себя, За место создание TLebel-а создаюTMemo.

По этому посту закрытие окна идёт через пару секунд автоматически. Но мне надо что бы закрытие происходило после нажатие правой кнопкой на мишке.
Предполагал что можно сделать на подобии MouseClick.Riht, но Delphi рагается "Типа нельзя так делать".
Пожалуйста помогите студенту. Какую команду можно использовать как и куда воткнуть.
Свой код прилагаю:
Код:
procedure TForm1.fShowHint(Text:String);
var NeededTop:integer;
    HintForm:TForm;
    HintMemo:TMemo;

begin
  HintForm:=TForm.Create(nil);

  with HintForm do
  begin
    Width:=700;
    Height:=300;
    Color:=clSkyBlue;
    BorderStyle:=bsNone;
    //Создаём текст
    HintMemo:=TMemo.Create(nil); //создание TMemo где будет вписываться текст
    
with HintMemo do    begin
        Parent:=HintForm;
        WordWrap:=true;
        Lines.Text:='123456767890'; //текст сообщения
        Align:=alClient;
        Alignment:=taCenter;
    end;

    AlphaBlend:=true;
    AlphaBlendValue:=220;
    HintForm.Show;
    HintForm.BringToFront;
    Left := Screen.WorkAreaWidth - Width;
    Top  := Screen.WorkAreaHeight;
    NeededTop := Screen.WorkAreaHeight - Height;
    
while Top>NeededTop do //всплытие окна
    begin
      Top := Top - 2;
      Repaint;
      Sleep(10);
      Application.ProcessMessages;
    end;

    Sleep(2000); //двух секундная остановка
    NeededTop := Screen.WorkAreaHeight;

    while Top<NeededTop do //закрытие окна
    begin
      Top := Top + 2;
      Repaint;
      Sleep(10);
      Application.ProcessMessages;
    end;

    HintMemo.Free;
    Free;
  end;
end;
end.
И ещё один вопрос. Как в это созданное Memo. прописать текст для разных строчек. А то Lines[1], Lines[2], Lines[3] - не подходит.

Пожалуйста помогите.
pam3ec вне форума Ответить с цитированием
Старый 22.04.2010, 20:09   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

А если обработать OnMouseDown??
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 22.04.2010, 20:30   #3
pam3ec
 
Регистрация: 10.02.2010
Сообщений: 5
По умолчанию

думал об этом. Но не получается. так как но форме не создан TMemo(HintMemo). Поэтому Delphi не понимет к чему прикреплять обработчик OnMouseDown.
И ещё всплыти и заход всплывающего окна происходит в процедуре. Следовательно надо этот обработчик

Если я думаю не правильно, то буду рад услышать разъяснения.
pam3ec вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как закрыть правой клавишей мыши pam3ec Помощь студентам 0 22.04.2010 19:28
Как(чем) удалить пункты из меню, которое появляется при нажатии правой кнопки мыши? TwiX Свободное общение 13 11.11.2009 13:53
Косяки с правой кнопкой мыши joker Общие вопросы Delphi 4 12.11.2008 13:25
Как работать с правой кнопкой мыши? ZeRRon Помощь студентам 4 28.12.2007 18:45
MouseDown: обращение к правой кнопке мыши ZhekON Общие вопросы Delphi 2 11.05.2007 19:17