for flooders
:: Главная :: Решения :: Статьи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум
   Лисоводы   всех   стран,  объединяйтесь !!!  

Список Форумов  :: Visual Foxpro, Foxpro for DOS
  

Про тулбар Report-a и о самом Report-е
Syberex

Сообщений: 1432
Откуда: Кострома
Дата: 19.07.04 04:38:37
Сейчас в VFP6 такая проблема:
главное окно в проге на основе класса формы, окно для просмотра отчетов
определено через DEFINE, делаю
REPORT FORM ... PREVIEW WINDOW Wind_preview
Выводится и показывается все нормально, а проблема в тулбаре:
он появляется все время в одном и том же месте, а хочется его придокить к верху

В 9-ке резултат как ни странно тотже... Как же упралять этим PreviewToolbar-ом




------------------
Ratings: 0 negative/0 positive

Re: Про тулбар Report-a и о самом Report-е
po2
Автор

Сообщений: 2731
Откуда: Иркутск
Дата: 19.07.04 09:15:04
Возможно, что релиз 9-ки будет поддерживать команду Dock Window и в Runtime. Для младших версий можно использовать часто упоминаемый способ пристыковки панели инструментов с помощью эмуляции двойного щелка.
if wexi('Предварительный просмотр')  
  if wlro('Предварительный просмотр')<0.or.;  
  wlco('Предварительный просмотр')<0  
  move wind 'Предварительный просмотр' to 2,2  
  endi  
  if wbor('Предварительный просмотр')  
  priv nX,nY  
  nX = mrow(wont())  
  nY = mcol(wont())  
  mous at -1, 1 wind 'Предварительный просмотр'  
  doev  
  mous dblclick wind 'Предварительный просмотр'  
  mous at nX,nY   
  endi  
  doev  
  if wbor('Предварительный просмотр')  
  move wind 'Предварительный просмотр' to 2,2  
  nX = mrow(wont())  
  nY = mcol(wont())  
  mous dblclick at -1, 1 wind 'Предварительный просмотр'  
  mous at nX,nY   
  endi   
  endi
Вызов функции с таким кодом нужно поместить в событие OnEntry любой из полос отчета. Если используется не русский Runtime, то имя окна [Предварительный просмотр] следует заменить на его эквивалент.

Построено на использовании штатной функции WBORDER([WindowName]), которая позволяет узнать есть ли у окна бордюр. Соответственно у свободной панели он есть, а у пристыкованной нет. Двойная обработка нужна для случаев когда пользователь умудрился затащить панель более чем на половину ее ширины за край окна, но она осталась непристыкованной.
Строки DOEVENT нужны для гарантированного позиционирования указателя мыши.
Ratings: 0 negative/0 positive



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

On-line: 6 Simple777  (Гостей: 5)

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