:: Visual Foxpro, Foxpro for DOS
Re: Как перехватить главное окно в переменную и писать в нём и очищать его?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
AdamAry
?"es"
Как узнать куда попало "es"?
Функциями COL(), ROW()

Точнее эти функции покажут куда выведется следующий символ по командам ? или ?? (с учётом того что ? сделает ещё и перевод строки)


------------------
WBR, Igor




Исправлено 1 раз(а). Последнее : Igor Korolyov, 06.07.17 13:57
Ratings: 0 negative/1 positive
Re: Как перехватить главное окно в переменную и писать в нём и очищать его?
AdamAry

Сообщений: 843
Дата регистрации: 14.12.2015
Igor Korolyov
?"es"
Как узнать куда попало "es"?
Функциями COL(), ROW()

После
Цитата:
_SCREEN.CurrentX = col()
_SCREEN.CurrentY = row()
_SCREEN.Print([dd.])
[dd] попало гораздо выше чем "es".



Исправлено 1 раз(а). Последнее : AdamAry, 06.07.17 14:00
Ratings: 0 negative/0 positive
Re: Как перехватить главное окно в переменную и писать в нём и очищать его?
vic7tar

Сообщений: 48
Дата регистрации: 27.02.2017
AdamAry
Спасибо pasha_usue.
pasha_usue
Да как-то ThisForm.hWND и _SCREEN.hWND проще, применительно к фоксу. Только в очень редких задачах нужно.
И как теперь подключаться к hWND и работать с ними?
Если будешь использовать встроенные функции Fox-a для рисования и вывода текста, тебе этот хэндл не нужен. Но вот если апишные ф-ции для отрисовки или какие-нибудь сторонние библиотеки - без указателей никак.
AdamAry
Как перехватить главное окно (или любое другое окно) в переменную (т.е. хендл) и писать в нём и очищать его?
...
Но как это проделать через хендл?
Может уточнишь, что что ты хочешь сделать неординарное? На мой взгляд, все ответы на вышеуказанные вопросы можно найти в Help-e - очень содержательная штука.



Исправлено 2 раз(а). Последнее : vic7tar, 06.07.17 14:30
Ratings: 0 negative/1 positive
Re: Как перехватить главное окно в переменную и писать в нём и очищать его?
pasha_usue

Сообщений: 3647
Откуда: Е-бург
Дата регистрации: 06.10.2006
AdamAry
Запускаем это:
Потом это:

Так вот "es" попадает чуть ниже определённого уровня.
Как узнать куда попало "es"?
Не надо смешивать два разных подхода. Print, Cls, Point - это всё наследие прошедших времен. Приползло из досовского фокса, до кучи реализовано методами объектов.

А тот код, который я предложил это более современный подход. Разместить нужные объекты в достаточном количестве, и там уже выводить что нужно. Например, вы хотите логи выводить. Так добавьте ListBox с нужными координатами и туда выводите. Его ещё скроллить удобно будет.
Ratings: 0 negative/1 positive
Re: Как перехватить главное окно в переменную и писать в нём и очищать его?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
AdamAry
После
Цитата:
_SCREEN.CurrentX = col()
_SCREEN.CurrentY = row()
_SCREEN.Print([dd.])
[dd] попало гораздо выше чем "es".

И что с того? Так и должно быть.

Одни свойства отвечают за работу одних методов вывода, и выдают координаты в одних единицах измерения, другие - за другие методы вывода и дают информацию в совершенно других единицах измерения. При том что для _SCREEN.CurrentX/CurrentY вообще "единица измерения" переключается при помощи свойства _SCREEN.ScaleMode
Код типа _SCREEN.CurrentX = col() вообще не имеет смысла. Ну это как Вес = Рост...

Ты задаёшь прямые вопросы и получаешь прямые ответы - но они нисколько тебе не помогут, т.к. ты просто делаешь не то что надо
Например мне никогда за всё время работы не нужны были ни функции ROW()/COL(), ни свойства .CurrentX/.CurrentY ни метод .Print()
А ?/?? я использую исключительно для целей отладки, и никогда в реальных приложениях. Подумай над этим


------------------
WBR, Igor
Ratings: 0 negative/1 positive
Re: Как перехватить главное окно в переменную и писать в нём и очищать его?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
pasha_usue
Print, Cls, Point - это всё наследие прошедших времен. Приползло из досовского фокса, до кучи реализовано методами объектов.
Ну это ты загнул... Не было в досе никаких Cls да Pset с Line-ами и Box-ами. Не умел он рисовать "по точкам"...
Там были ? да SAY, и они же есть и в VFP...
pasha_usue
Не надо смешивать два разных подхода.
На самом деле с твоим добавлением Label/Image их как минимум три уже


------------------
WBR, Igor
Ratings: 0 negative/1 positive
Re: Как перехватить главное окно в переменную и писать в нём и очищать его?
Перминов Игорь
Автор

Сообщений: 1591
Откуда: Красная Орловка
Дата регистрации: 16.09.2001
"Все смешалось в доме Обломовых" И.А. Гончаров роман "Обломов"(С)
Так и в голове у ТС.
1. Зачем нужно присваивать _a=_SCREEN, короче писать?
2. Не видеть метод формы frm.cls(), что называется "Смотрю в книгу - вижу фигу"
3. Координаты команд ? и ?? никак не коррелируются с координатами окна, т.е.: ?"Mytext" at 100,100 ну никак не будут совпадать с расположением объекта (label) на форме frm.label1.top=100 my.label.left=100
3. Снова повторюсь:
[attachment 27940 2_troll_cr.jpg]


------------------
Без коментариев..




Исправлено 2 раз(а). Последнее : Перминов Игорь, 06.07.17 18:02
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 31 (Гостей: 31)

© 2000-2024 Fox Club 
Яндекс.Метрика