Форум » GUI » TsBrowse в Минигуи (продолжение) » Ответить

TsBrowse в Минигуи (продолжение)

Vlad04: TsBrows определяется в виде строки ПАРМЕТРОВ объекта и их значений К примеру [quote] DEFINE TBROWSE oBrw2 ; AT 60,450 ; ALIAS cAlias ; OF Form1 ; WIDTH 330 ; HEIGHT 340 ; FONT "Verdana" ; SIZE 9 ; ON DBLCLICK CopyRec(); ON GOTFOCUS fModelo_Hab(2) ; AUTOFILTER ; CELLED EDIT; VALUE nRec; GRID [/quote] Здесь я собрал параметры из разных tBrows Можно или нет и какие парметры заменить выражением ( и каким) ? oBrw2:.... oBrw2:....

Ответов - 175, стр: 1 2 3 4 5 6 7 8 9 All

Andrey: Вспомнил про ещё один баг в METHOD ExcelOle() ! После создания xls файла, сам Эксель уходин на второй план, т.е. под окно этого экспорта. Юзера ЗЛЯТСЯ ОЧЕНЬ на это !!! Для исправления этого нужно сделать так: [pre2] CursorArrow() ::Reset() If hProgress != Nil SendMessage( hProgress, PBM_SETPOS, 0, 0 ) EndIf If lActivate oExcel:Visible := .T. hWnd := oExcel:hWnd ShowWindow( hWnd, 6 ) // MINIMIZE windows INKEYGUI(100) ShowWindow( hWnd, 3 ) // MAXIMIZE windows BringWindowToTop( hWnd ) Else oExcel:Application:Quit() EndIf //::Reset() //If hProgress != Nil // SendMessage( hProgress, PBM_SETPOS, 0, 0 ) //EndIf Return Nil [/pre2] Такой код оставляет ЭКСЕЛЬ на переднем плане.

Alex_Cher: Andrey пишет: Вспомнил про ещё один баг в METHOD ExcelOle() А в oExcel := TOleAuto():New( "Excel.Application" ) можно получить такой же же эффект, что бы при создание Excel вылетал на передний план ?

Andrey: Alex_Cher пишет: можно получить такой же же эффект, что бы при создание Excel вылетал на передний план ? Да. Делай последние строчки так же как METHOD ExcelOle() и получишь такой же результат.


Andrey: Может такой код нужно ставить, чтобы Эксель оставался на экране: [pre2] If lActivate oExcel:Visible := .T. If VAL( oExcel:Version ) <= 13 // Excel 2003 ShowWindow( oExcel:hWnd, 6 ) // MINIMIZE windows ShowWindow( oExcel:hWnd, 3 ) // MAXIMIZE windows Endif Try BringWindowToTop( oExcel:hWnd ) // a window on the foreground End Try Else oExcel:Application:Quit() EndIf[/pre2]

Alex_Cher: Andrey пишет: Делай последние строчки так же как METHOD ExcelOle() Андрей, неверное я что-то не догоняю, с сырцах не нашел метод TOleAuto(): и куда добавлять ...?

Andrey: Alex_Cher пишет: неверное я что-то не догоняю, с сырцах не нашел метод TOleAuto(): и куда добавлять ...? Этот код добавляй в свою программу. Я писал про METHOD ExcelOle() который находиться MiniGUI\SOURCE\TsBrowse\h_tbrowse.prg Но этот метод Григорий исправит и будет достен в следующей версии.

Andrey: Нашёл ещё один баг в METHOD ExcelOle(): При многострочном построении Tsbrowsa при экспорте - получается так: Хотя таблица выглядеть должна примерно так: Как и где исправить код для этого метода ?

Alex_Cher: Andrey пишет: Этот код добавляй в свою программу. Андрей с Excel все получилось ... , почему с Word не получается - oWord:Visible := .T. hWnd := oWord:hWnd ShowWindow( hWnd, 6 ) // MINIMIZE windows INKEYGUI(100) ShowWindow( hWnd, 3 ) // MAXIMIZE windows BringWindowToTop( hWnd )

Andrey: Alex_Cher пишет: почему с Word не получается - Там фигня с Вордом. Я делаю так: [pre2] If lActivate oText:HomeKey(wdStory) // в начало текста oWord:Visible := .T. SetWordWindowToForeground(oWord) // окно Word на передний план EndIf RETURN NIL ////////////////////////////////////////////////////////////////////// // окно Word на передний план FUNCTION SetWordWindowToForeground(oWord) LOCAL hWnd, nVer, cCaption, cTitle // ------------------- поиск ХЕНДЛА открытого окна документа -------------- hWnd := 0 nVer := VAL( oWord:Version ) // Версия Word IF nVer > 14 // Word 2010 hWnd := oWord:ActiveDocument:ActiveWindow:Hwnd ELSE //hWnd:=oWord:hwnd - так делать нельзя ! cCaption := oWord:Windows[1]:Caption cTitle := cCaption + " - MICROSOFT WORD" hWnd := FindWindowEx(,,, cTitle ) IF hWnd == 0 cTitle := cCaption + " [Режим ограниченной функциональности] - MICROSOFT WORD" hWnd := FindWindowEx(,,, cTitle ) ENDIF ENDIF IF hWnd > 0 ShowWindow( hWnd, 6 ) // MINIMIZE windows ShowWindow( hWnd, 3 ) // MAXIMIZE windows BringWindowToTop( hWnd ) // A window on the foreground ENDIF RETURN NIL[/pre2] Смотри пример DBF_to_DOC_03.7z на https://abonent4.ru/minigui/

Alex_Cher: Andrey пишет: Там фигня с Вордом. Я делаю так: Все получилось, Андрей, большое тебе спасибо ....!

Andrey: Модуль h_tbrowse.prg, METHOD ExcelOle(...) Нафига там где то посередке стоит: [pre2] If ::lIsDbf ( ::cAlias )->( DbGoTo( nRecNo ) ) ::GoPos( nOldRow, nOldCol ) EndIf ::nAt := nAt[/pre2] Всё равно при выходе стоит - ::Reset()

Andrey: Если в методе ExcelOle(...) стоит функция доп.обработки [pre2] If bExtern != Nil Eval( bExtern, oSheet, Self ) EndIf[/pre2] В ней также можно перемещаться по tsbrowse, то наверное вот этот кусок: [pre2] If ::lIsDbf ( ::cAlias )->( DbGoTo( nRecNo ) ) ::GoPos( nOldRow, nOldCol ) EndIf ::nAt := nAt[/pre2] - нужно ставить уже после этой If bExtern != Nil ? Или я не прав ?

SergKis: Andrey пишет нужно ставить уже после этой If bExtern != Nil ? Я бы сказал "нужно ставить уже и после этой If bExtern != Nil ? "

Andrey: Понял ! Спасибо ! Буду у себя так делать. Осталось Григорию у себя в библиотеке поменять...

Andrey: Всем привет ! Можно ли как то на лету изменить таблицу с параметром SELECT .T. или вообще без него ? Т.е. строиться таблица с SELECT .T., а потом его нужно удалить/восстановить.



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