Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Delphi (http://forum.oszone.net/showthread.php?t=30791)

Roman Go 17-10-2002 08:55 210104

Как отоброжать текущие координаты курсора в statusbar

DimSher 17-10-2002 11:19 210105

Дык в Status bar есть такое свойство Simple text туда и пиши:)

vasketsov 17-10-2002 11:20 210106

Отображать в статусбаре, или координаты в статусбаре?:)

Roman Go 17-10-2002 14:20 210107

Цитата:

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
begin
statusbar1.SimpleText:='x='+inttostr(x)+'; y='+inttostr(y);
end;
Я вот так вот сделал, не знал, как получить координаты мыши... и еще там надо было в OI где-то true поставить, где потерял, точно не скажу... теперь у меня другой вопрос возник: как работать с двумя формами, но чтобы при этом был только один модуль, меня раздражает писать код в разны модулях... да и переменные которые я хочу использовать в одном модуле, находятся в разных и приходится дублировать расчеты...

vasketsov 17-10-2002 15:30 210108

Roman Go
Цитата:

да и переменные которые я хочу использовать в одном модуле, находятся в разных
вынести в 3-й и его заюзать из обоих.
а можешь и 2 разных модуля циклически заюзать, только в одном это надо в interface, в а другом в implementation писать.

А 2 формы запросто можно в одном модуле иметь, только создавать их руками придется, хранить их Delphi фвтоматом не будет. Потому что совершенно нет в этом необходимости, и без этого решается.

Roman Go 21-10-2002 14:59 210109

Цитата:

3-й и его заюзать из обоих
решил так сделать, а вот ООП - это слабо... по этому случаю еще вопрос: как можно сделать, чтобы одна из моих форм всегда находилась поверх другой (я ее вроде как управляющей хочу сделать)?

vasketsov 21-10-2002 16:59 210110

Roman Go
Перекрыть метод CreateParams у дочерней TForm и в этом методе устанавливать ей ParentHandle-ом хэндл родительской формы.

Roman Go 22-10-2002 04:40 210111

vasketsov я не могу понять ни одного твоего ответа, расписывая пожалуйста поподробнее, сейчас подйду посмотрю, где там у Delphi есть CreateParams, ParentHandle, и вообще, что такое хэндл...

vasketsov 22-10-2002 13:15 210112

Roman Go
Пусть есть TForm1 = class(TForm) и TForm2 = class(TForm) и Form2 должна быть на Form1.

Form1 создается как обычно, естественно, ДО Form2.

В TForm2 пишешь такие вещи:
Код:

procedure TForm2.CreateParams (var Params: TCreateParams);override;
begin
  inherited;
  Params.WndParent:=Form1.Handle;
end;


Roman Go 23-10-2002 15:08 210113

Мне вот как раз это и нужно
Цитата:

Пусть есть TForm1 = class(TForm) и TForm2 = class(TForm) и Form2 должна быть на Form1.
vasketsov
Что-то я такого в OI-events не нашел, а когда просто копирую то не работает, всякие разные гадости пишет, я таких даже еще не видел (Delphi5).

Я по-моемому заставил нужную форму находится поверх другой вот таким вот образом: я в событии "движение мышкой" над второстепенной формой указал "передавать фокус главной форме" вроде получается что одна форма всегда остается снизу, а та которая должна быть сверху всегда сверху... потом еще проверю, если будет работать, выложу код, если есть мнения на счет такого метода решения, то высказывайте пожалуйста, насколько он рационален...



vasketsov 23-10-2002 17:45 210114

Roman Go
Цитата:

я в событии "движение мышкой" над второстепенной формой указал "передавать фокус главной форме
Цитата:

если есть мнения на счет такого метода решения, то высказывайте пожалуйста, насколько он рационален
Если работает - твой выбор останавливаться на нем или нет.
Но он нерационален.
Объясняю еще раз.
У класса TForm есть процедура-член CreateParams, она в разделе protected, это ни свойство, ни событие, потому в OI этого быть не может. Писать надо примерно так.

Код:

type
 TMyForm = class(TForm)
 protected
   procedure CreateParams(var Params:TCreateParams);override;
 end;

procedure TMyForm.CreateParams;
begin
   inherited;
   Params.WndParent:=Form1.Handle;
end;

Чего тут непонятного-то?

Roman Go 24-10-2002 14:17 210115

Цитата:

Чего тут непонятного-то?
На самом то деле все непонятно, что такое protected, param, handle. Если есть какая-то теоретическая информация по данному вопросы и можно отправь мне... но пример этот реализовать у меня конечно получилось и все работает как раз так как я хотел, и куда лучше, чем когда использовал setfocus, большое спасибо за помощь, но как работает и почему я не знаю :idontnow:


vasketsov
Может данный топик разбить на несколько(про две формы в отдельную темку), чтобы если кто-то вдруг будет искать было проще найти, хотя если честно я сильно сомневаюся, что кто-то будет действительно искать здесь подобную информацию, но мало ли...

vasketsov 24-10-2002 15:16 210116

Roman Go
Цитата:

, что такое protected
Это азы ООП, совершенно неплохо бы их знать.

Цитата:

param
это где такое? Params - это просто некая структура, которая может быть заполнена перед созданием окна, и таким действием можно при создании указать окно-родителя данного окна.

Цитата:

handle
Это так называемый "описатель" окна, через который выполняются все действия с окном, он уникален.

Это все описано в дельфевом хелпе.

DimSher 04-11-2002 12:07 210117

Цитата:

как можно сделать, чтобы одна из моих форм всегда находилась поверх другой
А сделать эту форму модальной не устроит?

vasketsov 04-11-2002 15:24 210118

Dmitry Sher
не всегда это устроит.
дочерних форм может быть  больше одной, кроме того, при модальности фокус родительская форма не получит, так как дисэйблится.

Roman Go 04-11-2002 15:37 210119

Цитата:

А сделать эту форму модальной не устроит?
А как это можно сделать?


В OI можно для формы в FormStyle установить fsStayOnTop и она всегда будет поверх других форм...


Время: 01:39.

Время: 01:39.
© OSzone.net 2001-