Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.09.02;
Скачать: [xml.tar.bz2];

Вниз

Как установить некоторую форму поверх других   Найти похожие ветки 

 
Miroving   (2007-08-09 01:05) [0]

У меня есть главная форма Form1. В ней для кнопки button1 в property onclik() активизируется MesForm:

procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
begin
....
   MesForm.OutputMessage(self.Left + Button1.Left,self.Top + Button1.Top);
.....
end;
 где:

procedure TMesForm.OutputMessage(x, y: integer);
begin
   self.Left := x;
   self.Top := y - 100;

   self.Visible := true;
   self.Height := 75;
   self.Width := 100;
   self.SetFocus;
   self.Enabled := true;

   canvas.Ellipse(10,10, 300, 100);
end;


В итоге у меня MesForm мигает и наверх опять вылазит Form1. Как сделать, чтоб после вызова OutputMessage верхней оставалась MesForm?

П.С.  Form1 убирать нельзя, она должна остатся видимой, но под MesForm.
П.П.С. Enabled и SetFocus как видите, не помогли.
П.П.С. Заранее благодарен за совет :)


 
{RASkov} ©   (2007-08-09 03:53) [1]

> [0] Miroving   (09.08.07 01:05)
> П.П.С. Enabled и SetFocus как видите, не помогли.

Ну вообще-то SetFocus "должен поднять" ее(MesForm) если она видима.... Впринципе будет достаточно BringToFront т.е. Show;
procedure TMesForm.OutputMessage(x, y: integer);
begin
  Left := x;
  Top := y - 100;
  Height := 75;
  Width := 100;
  Show;
  canvas.Ellipse(10,10, 300, 100);
end;

А для чего такой "дурной" код понадобился? :)


> self.Enabled := true;

self писать внутри метода не обязательно если нет на то необходимых причин, например в with ... do
Эта строчка, грубо говоря, не выполнится если свойство имеет тоже значение, что и присваиваем....
Посмотри как многие методы записи значений свойствам работают, например:
procedure TControl.SetEnabled(Value: Boolean);
begin
 if FEnabled <> Value then
 begin
   FEnabled := Value;
   Perform(CM_ENABLEDCHANGED, 0, 0);
 end;
end;
Тоже самое и с Visible....


 
Miroving   (2007-08-09 11:39) [2]

>>А для чего такой "дурной" код понадобился? :)
Это будет всплывающая подсказка. Ещё не готова:)

В целом Show; тоже не помог. Но сегодня поутру разобрался. Дело было в том, что программа после выхода из
TMesForm.OutputMessage(x, y: integer);
опять попадала в TForm1.Button1Click(Sender: TObject);
и передавала фокус управления одному из компонентов TForm1.

Сей час всё уже исправил.
Спасибо


 
{RASkov} ©   (2007-08-09 12:32) [3]

> [2] Miroving   (09.08.07 11:39)
> Это будет всплывающая подсказка. Ещё не готова:)

Лучше в сторону баллунов(или как их там) посмотри, имхо...
Иначе как то не красиво, когда подсказка фокус отбирает....



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.09.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.047 c
15-1186422671
maxistent
2007-08-06 21:51
2007.09.02
Работа с WebMoney


10-1135328510
alex_s
2005-12-23 12:01
2007.09.02
OPC клиент


15-1186137353
de.
2007-08-03 14:35
2007.09.02
О материалах


2-1186607112
Miroving
2007-08-09 01:05
2007.09.02
Как установить некоторую форму поверх других


2-1186578070
McArenko
2007-08-08 17:01
2007.09.02
Помогите с IdPOP3 в Delphi 7





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский