Форум: "Начинающим";
Текущий архив: 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