On-line: alex_II, Andrey, i3t4j6, PSP, SergKis, гостей 1. Всего: 6 [подробнее..]
АвторСообщение



Пост N: 12
Зарегистрирован: 19.10.05
ссылка на сообщение  Отправлено: 28.09.09 16:28. Заголовок: GetClientRect


Что изменилось что перестал транслироваться следующий пример :
#include "minigui.ch"

Function Main
Local z, tb

SET NAVIGATION EXTENDED

DEFINE WINDOW Form_Main ;
AT 0,0 ;
WIDTH 600 ;
HEIGHT 400 ;
VIRTUAL WIDTH 1300 ;
VIRTUAL HEIGHT 2800 ;
TITLE 'AutoScroll Demo (PageDown, PageUp)' ;
MAIN

ON KEY PRIOR ACTION NextPriorPage(0)
ON KEY NEXT ACTION NextPriorPage(1)

END WINDOW

For z = 1 to 20
tb := "TB_" + ltrim(str(z,2))
@ z * 30,10 TextBox &tb;
of Form_Main;
VALUE ltrim(str(z,2)) ;
ON GOTFOCUS AutoScroll();
WIDTH 100 HEIGHT 25
Next

CENTER WINDOW Form_Main

ACTIVATE WINDOW Form_Main

Return Nil

#define WM_VSCROLL 277 // 0x0115
#define SB_PAGEDOWN 3
#define SB_PAGEUP 2

*--------------------------------------------------------*
Function AutoScroll()
*--------------------------------------------------------*
LOCAL nVScrollValue, controlRow, newPos, hWnd, clientHeight, aPos, nOffset

hWnd := getFormHandle(_HMG_THISFORMNAME)
aPos := GetClientRect(hWnd)
clientHeight := aPos[3] - aPos[1] - GetHScrollBarHeight()
nVScrollValue := GetScrollPos(hWnd, 1)
controlRow := GetProperty ( _HMG_THISFORMNAME, _HMG_THISCONTROLNAME, 'ROW' )
nOffset := GetProperty ( _HMG_THISFORMNAME, _HMG_THISCONTROLNAME, 'HEIGHT' )

If controlRow >= clientHeight + nVScrollValue // Down
NewPos := controlRow - nOffset
SetScrollPos ( hwnd , 1 , NewPos , 1 )
SendMessage( hWnd, WM_VSCROLL, SB_PAGEDOWN, 0 )
elseIf controlRow <= nVScrollValue // Up
NewPos := controlRow - clientHeight + nOffset
SetScrollPos ( hwnd , 1 , NewPos , 1 )
SendMessage( hWnd, WM_VSCROLL, SB_PAGEUP, 0 )
EndIf

Return .t.

*--------------------------------------------------------*
Function NextPriorPage( dir )
*--------------------------------------------------------*
LOCAL hWnd, aPos, delta

DEFAULT dir := 1 // PgDn-1, PgUp-0

hWnd := GetFormHandle(_HMG_THISFORMNAME)
aPos := GetClientRect(hWnd)
delta := aPos[3] - aPos[1] - 20

SetScrollPos( hWnd, 1, GetScrollPos(hWnd, 1) + iif(dir=1, delta, - delta), 1 )
SendMessage( hWnd, WM_VSCROLL, iif(dir=1, SB_PAGEDOWN, SB_PAGEUP), 0 )

return .T.

*--------------------------------------------------------*
Function GetClientRect( hWnd )
*--------------------------------------------------------*
local aRect := { 0, 0, 0, 0, hWnd }

HB_GetClientRect( @aRect )

Return aRect


#pragma BEGINDUMP

#include <windows.h>
#include "hbapi.h"
#include "hbapiitm.h"

HB_FUNC ( HB_GETCLIENTRECT )
{
RECT rect;
GetClientRect( (HWND) hb_parnl(1,5), &rect );
hb_storni( rect.top, 1, 1 );
hb_storni( rect.left, 1, 2 );
hb_storni( rect.bottom, 1, 3 );
hb_storni( rect.right, 1, 4 );
}

#pragma ENDDUMP


выдает


Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
demo.c:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland


Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
demo.c:
Error E2227 demo.prg 100: Extra parameter in call to hb_parnl in function HB_FUN_HB_GETCLIENTRECT
Error E2227 demo.prg 101: Extra parameter in call to hb_storni in function HB_FUN_HB_GETCLIENTRECT
Error E2227 demo.prg 102: Extra parameter in call to hb_storni in function HB_FUN_HB_GETCLIENTRECT
Error E2227 demo.prg 103: Extra parameter in call to hb_storni in function HB_FUN_HB_GETCLIENTRECT
Error E2227 demo.prg 104: Extra parameter in call to hb_storni in function HB_FUN_HB_GETCLIENTRECT
*** 5 errors in Compile ***

C compile error.










Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 2 [только новые]


модератор




Пост N: 1066
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 28.09.09 16:58. Заголовок: Avf пишет: Что изме..


Avf пишет:

 цитата:
Что изменилось



Были внесены изменения в Харбор, которые сделали нерабочим этот код.

Ниже исправленный вариант, который работает со свежей версией Харбора:

Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 28.09.09 17:25. Заголовок: Avf пишет: Что изм..


Avf пишет:

 цитата:

Что изменилось что перестал транслироваться следующий пример :



gfilatov пишет:

 цитата:
Были внесены изменения в Харбор, которые сделали нерабочим этот код.



Издержки open source software

Спасибо: 0 
Цитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 261
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет