- -
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
Это азы ООП, совершенно неплохо бы их знать.
это где такое? Params - это просто некая структура, которая может быть заполнена перед созданием окна, и таким действием можно при создании указать окно-родителя данного окна.
Это так называемый "описатель" окна, через который выполняются все действия с окном, он уникален.
Это все описано в дельфевом хелпе.
|
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.
© OSzone.net 2001-