Форум » GUI » Примеры из Минигуи -ошибки, вопросы..... (продолжение) » Ответить

Примеры из Минигуи -ошибки, вопросы..... (продолжение)

Andrey: Всем привет. Взялся смотреть примеры из МиниГуи, так не все работают. Может кто подскажет что там "допилить" нужно ? А заодно может и исправить и добавить новые.... Очень красочный пример: \MiniGUI\SAMPLES\Advanced\AVI_Animation - не работает под Win7 (наверно AVI-шки нет в ресурсах) Предложение Григорию: Можно ли добавить еще один пример с отдельным AVI-файлом в ресурсах проекта и показом такого же бегунка ? Пример: \MiniGUI\SAMPLES\Advanced\DisplayMode - не работает под ХР и далее.... Пример: \MiniGUI\SAMPLES\Advanced\Tsb_filter - вылетает на ХР -------------------------------------------------------------------------------- Harbour MiniGUI Errorlog File Harbour MiniGUI Extended Edition 2.0.1 - 2011.09.21 -------------------------------------------------------------------------------- Date: 11/15/2011 Time: 22:13:24 Error BASE/1124 Argument error: LEFT Called from LEFT(0) Called from SCANSOFT(195) Called from MAIN(84) Пример: \MiniGUI\SAMPLES\BASIC\MsgEdit - не собирается... Z:\MiniGUI\SAMPLES\BASIC\MsgEdit>call ..\..\..\batch\compile.bat demo /L shell32 Harbour 3.1.0dev (Rev. 17042) Copyright (c) 1999-2011, http://harbour-project.org/ Compiling 'demo.prg'... Lines 20133, Functions/Procedures 30 Generating C source output to 'demo.c'... Done. Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland demo.c: Error E2141 demo.prg 993: Declaration syntax error *** 1 errors in Compile *** C compile error.

Ответов - 286, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All

Dima: Haz пишет: Только зачем ???? Он хочет как в ёкселе :) Там разметка есть всегда.

Andrey: Haz пишет: Только зачем ???? Чтобы юзера не доставали.... Картинка им не нравиться. Пустая таблица, а ячеек нет. В Екселе пустая таблица - ячейки есть, а здесь нет. Haz пишет: 1. При первом показе пихать клон базы с пустыми полями Наверное это самый лучший вариант ! Haz пишет: 3. При первом показе поверх бровса выводить разграфленный битмап, потом его прятать Для разных разрешений наверно будет трудно это сделать ? Хотя картинку легче прятать...

Andrey: При ошибках: Turbo Incremental Link 5.66 Copyright (c) 1997-2002 Borland Error: Unresolved external '_HB_FUN_MYPATHFILES' referenced from W:\HB_PROJECT\ кракозябы \OBJ\TestHMG1.OBJ hbmk2[IEntrepreneur]: Error: Running linker. 2 Как убрать кракозябы в файле ошибок ? Это папка на русском. Если на английском, то пишется нормально.

Andrey: Всем привет ! Если я задаю при старте изменения размера окна, а потом блокирую на время это таким кодом: // ------- заблокировать изменение размеров окна ---------- SetProperty(cForm, "Sizable" , .F. ) // NOSIZE SetProperty(cForm, "MaxButton" , .F. ) // NOMAXIMIZE SetProperty(cForm, "MinButton" , .F. ) // NOMINIMIZE То размеры объектов на окне меняются. Так должно быть или что то не так делаю ?

Haz: Andrey пишет: Если я задаю при старте изменения размера окна, а потом блокирую на время это таким кодом: самодостаточный дай, как написал выше ничего не должно менять в контролах

Andrey: Пример сложно дать. Он большой... Постараюсь сделать... А на картинке выглядит так: Еще после запрета изменения размеров формы в Tbrowse накладывается фильтр на базу и кол-во записей меняется и вертикальный скролинг уходит и появляется ПУСТОТА между окном и Tbrowse. Это глюк или я что то не так делаю ?

Andrey: Вот ещё одна картинка:

Haz: Andrey пишет: вертикальный скролинг уходит ::ResetVscroll(lInit) делал перед ::Refresh() ?

Andrey: Не помогает... Пробовал по разному: и после и перед oBrw1:Refresh(.T.) и с параметрами и без параметров. У меня на кнопку повешен блок: { || MyButtonRun2(), DbSetorder(1), ; oBrw1:Reset(), oBrw1:ResetVScroll(.T.), oBrw1:Refresh(.T.) , ; SetProperty(oBrw1:cParentWnd, oBrw1:cControlName, "Enabled", .T.),; DoMethod(oBrw1:cParentWnd, oBrw1:cControlName, "SetFocus") } в MyButtonRun2(): SetProperty(oBrw1:cParentWnd, oBrw1:cControlName, "Enabled", .F.) // ------- заблокировать изменение размеров окна ---------- SetProperty(cForm, "Sizable" , .F. ) // NOSIZE SetProperty(cForm, "MaxButton" , .F. ) // NOMAXIMIZE SetProperty(cForm, "MinButton" , .F. ) // NOMINIMIZE ....

Haz: вертикальный скролл автоматом пропадает когда строк меньше чем может показать бровс. [pre2] If ::nLen <= ::nRowCount() nMin := nMax := 0 Else nMin := Min( 1, ::nLen ) nMax := Min( ::nLen, MAX_POS ) EndIf [/pre2] Можно его включить принудительно кодом [pre2] If oBrw:oVScroll != Nil oBrw:oVScroll:SetRange( nMin, nMax ) :oBrwoVScroll:SetPos( oBrw:RelPos( oBrw:nLogicPos() ) ) EndIf [/pre2]

Andrey: А почему так ? На ХР маленькая дырка, на Win7-8 больше. Разве функции nFWidth := GetClientWidth( GetFormHandle( _HMG_ThisFormName ) ) nFHeight := GetClientHeight( GetFormHandle( _HMG_ThisFormName ) ) не определяют правильно размеры ? Или Tsbrowse сам меняет размеры - при смене изменений: // ------- заблокировать изменение размеров окна ---------- SetProperty(cForm, "Sizable" , .F. ) // NOSIZE SetProperty(cForm, "MaxButton" , .F. ) // NOMAXIMIZE SetProperty(cForm, "MinButton" , .F. ) // NOMINIMIZE

Andrey: Haz пишет: Можно его включить принудительно кодом Спасибо, сделал, только чуток исправив код. Появился скролинг, но дырка остается.... Наверно все таки сам Tsbrowse меняет свои размеры ? Или я неправ ?

Haz: Andrey пишет: Наверно все таки сам Tsbrowse меняет свои размеры ? Или я неправ ? Сам не меняет точно. Это можно сделать только изменив размеры окна oBrw:hWnd принудительно

Andrey: Странненько.... Взял после изменения - добавил пересчёт размеров формы. oBrw1:Reset() oBrw1:Refresh(.T.) oBrw1:ResetVScroll(.T.) If oBrw1:oVScroll != Nil oBrw1:oVScroll:SetRange( nMin, nMax ) oBrw1:oVScroll:SetPos( oBrw1:RelPos( oBrw1:nLogicPos() ) ) EndIf SetProperty(oBrw1:cParentWnd, oBrw1:cControlName, "Enabled", .T.) ResizeForma1(.F.) // без перерисовок кнопок RETURN NIL И получается фигня - размеры LABEL объектов тоже другие, кнопки налезают на бровс. Может при создании окна бровса нужно делать что то такое ? DEFINE TBROWSE oBrw1 ; AT 1 + iif( IsVistaOrLater(), GetBorderWidth()/2, 0 ), ; 1 + iif( IsVistaOrLater(), GetBorderHeight()/2, 0 ) ; WIDTH test.WIDTH - 2 * GetBorderWidth() ; HEIGHT test.HEIGHT - GetTitleHeight() .... Хотя у меня при изменении размера стоит так: FUNCTION ResizeForma1(lButton) LOCAL cForm := _HMG_ThisFormName LOCAL hWnd := GetFormHandle(cForm) LOCAL actpos:={0,0,0,0}, i, w, h, nWLbl LOCAL nHStBar := GetWindowHeight(GetControlHandle("Label_StatusBar", cForm)) // высота StatusBar внизу окна LOCAL nFWidth := GetClientWidth( GetFormHandle( cForm ) ) LOCAL nFHeight := GetClientHeight( GetFormHandle( cForm ) ) DEFAULT lButton := .T. GetClientRect(hWnd, actpos) w := actpos[3]-actpos[1] h := actpos[4]-actpos[2] - oBrw1:nTop - nHStBar IF w !=0 .and. h != 0 nWLbl := GetProperty(cForm, "Label_0", "Col" ) SetProperty(cForm, "Label_0", "Width", nFWidth - nWLbl ) SetProperty(cForm, "Label_1", "Width", nFWidth - nWLbl ) SetProperty(cForm, "Label_2", "Width", nFWidth - nWLbl ) SetProperty(cForm, "Label_3", "Width", nFWidth - nWLbl ) SetProperty(cForm, "Label_4", "Width", nFWidth - nWLbl ) SetProperty(oBrw1:cParentWnd, oBrw1:cControlName, "Enabled", .F.) _SetControlHeight( oBrw1:cControlName, oBrw1:cParentWnd, h) _SetControlWidth ( oBrw1:cControlName, oBrw1:cParentWnd, w) oBrw1:Paint() // Иначе не перерисовываются вертикальные разделители SetProperty(oBrw1:cParentWnd, oBrw1:cControlName, "Enabled", .T.) //oBrw1:Display() //SetNoHoles( oBrw1 ) // убрать дырку внизу таблицы перед подвалом oBrw1:Refresh(.T.) // перечитывает данные в таблице IF lButton MyButtonBar(.T.) // перепостроить кнопки на форме ENDIF Endif DoMethod(oBrw1:cParentWnd, oBrw1:cControlName, "SetFocus") Return Nil

Andrey: Нашёл где собака зарыта: ДО: actpos= {0, 0, 1259, 979} HStBar= 70 w= 1259 h= 761 // ------- заблокировать изменение размеров окна ---------- SetProperty(cForm, "Sizable" , .F. ) // NOSIZE SetProperty(cForm, "MaxButton" , .F. ) // NOMAXIMIZE SetProperty(cForm, "MinButton" , .F. ) // NOMINIMIZE ПОСЛЕ: actpos= {0, 0, 1269, 989} nHStBar= 70 w= 1269 h= 771 Т.е. после запрета изменения размера окна, размер окна меняется на 10х10 пикселей !!! Разве так должно быть ?

Haz: 1 Если после первого показа бровса сразу вызвать пересчет , то что ? 2 Перепроверь свой пересчет размеров, возможно там не то считает.

Haz: Haz пишет: Т.е. после запрета изменения размера окна, размер окна меняется на 10х10 пикселей !!! Разве так должно быть ? скорее всего косяк

Andrey: Всем привет ! Вопрос такой созрел: как из другого объекта можно раскрыть комбобох ? Т.е. допустим при нажатии мышкой на картинке , открылся комбобох. @ 10, nFWidth - 30 IMAGE Image_1 PICTURE aFlags[M->nPubLang] WIDTH 26 HEIGHT 26 ; OnMouseHover RC_CURSOR( "MINIGUI_FINGER" ) ..... ; ACTION { || Forma_1.ComboEx_1.Show, Forma_1.ComboEx_1.?????? }

SergKis: Andrey пишет: как из другого объекта можно раскрыть комбобох PostMessage( GetControlHandle(<ComboBoxName>, cFormName), WM_KEYDOWN, VK_F4, 0)

Andrey: SergKis пишет: PostMessage( GetControlHandle(<ComboBoxName>, cFormName), WM_KEYDOWN, VK_F4, 0) Не срабатывает ! ACTION { || Forma_1.ComboEx_1.Show ,; PostMessage( GetControlHandle( "ComboEx_1", "Forma_1" ), WM_KEYDOWN, VK_F4, 0) }



полная версия страницы