Форум » 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.

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

Andrey: SergKis пишет: Разницу не увидел, что первый, что второй примеры (тексты разные) работают одинаково Я пробовал сделать примеры показывающие как можно делать меню на ОДНОЙ форме: 1) пример с динамически построением кнопок на форме с последующим удалением объектов (метод "Release") 2) пример с построением кнопок на форме сразу, с использованием Show/Hide для второго уровня кнопок. Все примеры работают нормально. Только при переносе в свой проект 1-вариант не работает. SergKis пишет: На мой взгляд основная ошибка - динамическое создание\удаление кнопок второго уровня в oninit. Создавай столько контролов (между define window и end window) сколько надо для работы окна сразу (координаты не важны их можно устанавливать перед Visible .T.). А динамическое создание\удаление контролов даже gfilatov говорил делать осторожно. Я этим не пользуюсь совсем. Вот это я хотел услышать ! Уже года три работаю с МиниГуи, а с этим и не разобрался (не услышал)... Спасибо БОЛЬШОЕ !

Andrey: Предыдущие примеры 1FormDemo.prg и 2FormDemo.prg были простые. Сделал еще один пример 3FormDemo.prg На кнопки вешаю кодо-блок нескольких функций, типа: aButton[1,7] := {|| Domethod( cForm, "BUTTON_EXIT" , "Hide" ), ; lRet := MsgYesNo( "Do you want to start another menu: 10 ?" ), ; IIF( lRet, MsgInfo("Starting the menu 10"), MsgInfo("Starting the menu 1") ),; IIF( lRet, MenuTask(10, aColor, aButton2), MenuTask(1, aColor, aButton2) ),; MsgInfo("Skill menu!") , ; Domethod( cForm, "BUTTON_EXIT" , "Show" ) } Не отрабатывает функция MenuTask(). Не получает управления эта функция. Что не так делаю ? Примеры тут - https://cloud.mail.ru/public/6e47c4e671d1/Menu_buttons_Second_Level.7z

Andrey: Всем привет. Использую объект LISTBOX, прогу давно написал. Файлов у юзера много стало и программа начала подвисать. Для показа списка файлов у юзера на форме использую такую функцию: FUNCTION GetReportFiles(cPath, cMaska) LOCAL aList := {}, nI, cFile // Получаем список файлов в папке отчётов с маской aList := Directory( cPath + cMaska ) FOR nI := Len( aList ) TO 1 STEP - 1 cFile := aList[ nI, 1 ] // Добавляем элемент из массива Form_Report.List_1.AddItem( cFile ) // Присваиваем номер по порядку Form_Report.List_1.Value := nI NEXT // Возвращаемся к началу списка Form_Report.List_1.Value := 1 RETURN Nil Теперь когда много файлов при показе тормоза начинаются... и подвисание программы. Как убрать этот эффект ?


Dima: Andrey пишет: Теперь когда много файлов при показе тормоза начинаются... На сколько много файлов ? Если тормоз только из за FOR то попробуй FOR EACH

Dima: Andrey пишет: aList := Directory( cPath + cMaska ) Вместо этого можно в цикле пробнуть FileSeek() + Form_Report.List_1.AddItem + Form_Report.List_1.Value

Haz: Файлов у юзера много стало Дима правильно спросил - много это сколько ? от тормозов при сканировании папки с числом файлов более 1000 скорее всего не избавиться программно. Лучше спросить клиента зачем ему столько отчетов или предложить организовать вложенные папки по видам отчетов Возможно поможет ... ================================ Долго открывается директория, в которой большое количество файлов из-за того, что NTFS обновляет метку последнего доступа к файлам. Когда в директории много файлов то метку надо обновить на каждом, а это может занять много времени. Чтобы функцию отключить надо в реестре по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem создать ключ NtfsDisableLastAccessUpdate типа DWORD и установить значение в «1». После перезагрузки данная проблема исчезнет.

Andrey: Haz пишет: много это сколько ? 1186 файлов... Я сам офигел. Haz пишет: предложить организовать вложенные папки по видам отчетов Да это лучшее решение. Буду делать его. Когда программу делал, то лет 7 назад об этом не думал. Спасибо за идею ! Как сделать перемещение/показ списка по файлам и папкам в одной функции GetReportFiles(cPath, cMaska) ? Если нужно показывать папки Отчет-2010, Отчет-2011,.... и файлы по маске *.txt

Dima: Andrey пишет: Как сделать перемещение/показ списка по файлам и папкам в одной функции GetReportFiles(cPath, cMaska) ? cPath есть , вот и отталкивайся от него.

SergKis: Andrey пишет: Как сделать перемещение/показ списка по файлам и папкам в одной функции GetReportFiles(cPath, cMaska) ? в одной функции не знаю, но в двух grid\browse можно: - читай в 1-й список папок - во второй (по on change в 1-м) читай список файлов по маске из выбранной папки, можно не по on change, а по кнопке или Enter\dublclick.

Andrey: SergKis пишет: в одной функции не знаю, но в двух grid\browse можно: Понял, буду делать... Хотел быстренько одну функцию изменить, а нет - не получилось. Другой вопрос по CHECKBOX. Есть у него режим ReadOnly как TEXTBOX или EDITBOX ? Что то по хелперу фраза непонятная... Available at control definition only R: Read-Only

SergKis: Andrey пишет:Есть у него режим ReadOnly в help см. Enabled - оно есть Andrey пишет: Хотел быстренько одну функцию изменить проще можно в grid читать папки (с обратной сортировкой), grid, на котором ты achoice делал, после выбора, показывай другой grid с отчетами. компоненты все у тебя под рукой ...

SergKis: Andrey пишет:Хотел быстренько одну функцию изменить можно совсем простенько: GetFolder(...) см. \Samples\Basic\GetFolder GetFile(...) см. \Samples\Basic\GetFile

Andrey: SergKis пишет: можно совсем простенько: GetFolder(...) см. \Samples\Basic\GetFolder GetFile(...) см. \Samples\Basic\GetFile Забыл про них...

Andrey: Подскажите как удалить и заново перечитать массив в COMBOBOXEX ? @ 110,10 COMBOBOXEX ComboEx_3 ; WIDTH 150 ; ITEMS {"one ","two ","tree "} ; .......

Haz: Andrey пишет: массив в COMBOBOXEX C:\MiniGUI\SAMPLES\BASIC\COMBO_5

Andrey: Haz пишет: C:\MiniGUI\SAMPLES\BASIC\COMBO_5 Что то не совсем понятно. Нужно удалить каждый элемент массива, а потом добавить по каждому элементу. Правильно ли это ? А то в ГРИДе делалось немного по другому: // перечитаем Grid_1251 aList := LoadDbf1251() // новый массив Form_6.Grid_1251.DeleteAllItems IF Len(aList) > 0 Form_6.Grid_1251.DisableUpdate FOR nI := 1 to LEN(aList) Form_6.Grid_1251.AddItem( aList[nI] ) NEXT Form_6.Grid_1251.EnableUpdate ENDIF

Haz: Andrey пишет: А то в ГРИДе делалось немного по другому: а если справку из поставки miniGui почитать по Combo ... METHODS: · Show Shows a ComboBox control · Hide Hides a ComboBox control · AddItem( cItemText ) Add a new item to a ComboBox control · DeleteItem( nItemIndex ) Deletes an item from a ComboBox control · DeleteAllItems Deletes all items from a ComboBox control · SetFocus Gives the focus to a ComboBox control · Release Releases a ComboBox control from memory · EnableUpdate Update enables for ComboBox control · DisableUpdate Update disables for ComboBox control · SaveAs Save a ComboBox control as BitMap file.

Andrey: Haz пишет: а если справку из поставки miniGui почитать по Combo ... Спасибо ! Просто не нашёл пример и потерялся...

Andrey: Всем привет ! Вывожу картинку во всю форму по длине. На неё назначена обработка при нажатии: @ 5,5 IMAGE Image_1 ...... PICTURE ....... ACTION AboutInfo() OnMouseHover RC_CURSOR( "MINIGUI_FINGER" ) А как мне сделать обработку нажатия на картинки допустим на 3 части ? Вот чтобы так было: Разрезать картинку на 3 части нельзя.

Haz: координаты своей картинки знаешь @ 5,5 IMAGE Image_1 ...... как поделил на 3 части знаешь Вот и обрабатывай в зависимости от положения курсора, координаты курсора из OnMouseMove возьмешь пример с координатами есть в минигуи



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