Войти

Показать полную графическую версию : Delphi


Roman Go
17-10-2002, 08:55
Как отоброжать текущие координаты курсора в statusbar

DimSher
17-10-2002, 11:19
Дык в Status bar есть такое свойство Simple text туда и пиши:)

vasketsov
17-10-2002, 11:20
Отображать в статусбаре, или координаты в статусбаре?:)

Roman Go
17-10-2002, 14:20
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
Roman Go
да и переменные которые я хочу использовать в одном модуле, находятся в разных
вынести в 3-й и его заюзать из обоих.
а можешь и 2 разных модуля циклически заюзать, только в одном это надо в interface, в а другом в implementation писать.

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

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

vasketsov
21-10-2002, 16:59
Roman Go
Перекрыть метод CreateParams у дочерней TForm и в этом методе устанавливать ей ParentHandle-ом хэндл родительской формы.

Roman Go
22-10-2002, 04:40
vasketsov я не могу понять ни одного твоего ответа, расписывая пожалуйста поподробнее, сейчас подйду посмотрю, где там у Delphi есть CreateParams, ParentHandle, и вообще, что такое хэндл...

vasketsov
22-10-2002, 13:15
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
Мне вот как раз это и нужно
Пусть есть TForm1 = class(TForm) и TForm2 = class(TForm) и Form2 должна быть на Form1.

vasketsov
Что-то я такого в OI-events не нашел, а когда просто копирую то не работает, всякие разные гадости пишет, я таких даже еще не видел (Delphi5).[br]
Я по-моемому заставил нужную форму находится поверх другой вот таким вот образом: я в событии "движение мышкой" над второстепенной формой указал "передавать фокус главной форме" вроде получается что одна форма всегда остается снизу, а та которая должна быть сверху всегда сверху... потом еще проверю, если будет работать, выложу код, если есть мнения на счет такого метода решения, то высказывайте пожалуйста, насколько он рационален...
[hr]

vasketsov
23-10-2002, 17:45
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
Чего тут непонятного-то?
На самом то деле все непонятно, что такое protected, param, handle. Если есть какая-то теоретическая информация по данному вопросы и можно отправь мне... но пример этот реализовать у меня конечно получилось и все работает как раз так как я хотел, и куда лучше, чем когда использовал setfocus, большое спасибо за помощь, но как работает и почему я не знаю :idontnow:
[hr]
vasketsov
Может данный топик разбить на несколько(про две формы в отдельную темку), чтобы если кто-то вдруг будет искать было проще найти, хотя если честно я сильно сомневаюся, что кто-то будет действительно искать здесь подобную информацию, но мало ли...

vasketsov
24-10-2002, 15:16
Roman Go
, что такое protected
Это азы ООП, совершенно неплохо бы их знать.

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

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

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

DimSher
04-11-2002, 12:07
как можно сделать, чтобы одна из моих форм всегда находилась поверх другой
А сделать эту форму модальной не устроит?

vasketsov
04-11-2002, 15:24
Dmitry Sher
не всегда это устроит.
дочерних форм может быть  больше одной, кроме того, при модальности фокус родительская форма не получит, так как дисэйблится.

Roman Go
04-11-2002, 15:37
А сделать эту форму модальной не устроит?
А как это можно сделать?
[hr]
В OI можно для формы в FormStyle установить fsStayOnTop и она всегда будет поверх других форм...




© OSzone.net 2001-2012