On-line: Pasha, SergKis, гостей 1. Всего: 3 [подробнее..]
АвторСообщение
Andrey
постоянный участник




Пост N: 1929
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.11.11 21:36. Заголовок: Примеры из Минигуи -ошибки, вопросы..... (продолжение)


Всем привет.
Взялся смотреть примеры из МиниГуи, так не все работают. Может кто подскажет что там "допилить" нужно ?
А заодно может и исправить и добавить новые....

Очень красочный пример: \MiniGUI\SAMPLES\Advanced\AVI_Animation - не работает под Win7 (наверно AVI-шки нет в ресурсах)
Предложение Григорию:
Можно ли добавить еще один пример с отдельным AVI-файлом в ресурсах проекта и показом такого же бегунка ?

Пример: \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.



Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]


Andrey
постоянный участник




Пост N: 4045
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.03.15 00:09. Заголовок: SergKis пишет: Разн..


SergKis пишет:

 цитата:
Разницу не увидел, что первый, что второй примеры (тексты разные) работают одинаково


Я пробовал сделать примеры показывающие как можно делать меню на ОДНОЙ форме:
1) пример с динамически построением кнопок на форме с последующим удалением объектов (метод "Release")
2) пример с построением кнопок на форме сразу, с использованием Show/Hide для второго уровня кнопок.

Все примеры работают нормально. Только при переносе в свой проект 1-вариант не работает.
SergKis пишет:

 цитата:

На мой взгляд основная ошибка - динамическое создание\удаление кнопок второго уровня в oninit.
Создавай столько контролов (между define window и end window) сколько надо для работы окна сразу (координаты не важны их можно устанавливать перед Visible .T.). А динамическое создание\удаление контролов даже gfilatov говорил делать осторожно. Я этим не пользуюсь совсем.



Вот это я хотел услышать !
Уже года три работаю с МиниГуи, а с этим и не разобрался (не услышал)...
Спасибо БОЛЬШОЕ !

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 4048
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.03.15 06:18. Заголовок: Предыдущие примеры 1..


Предыдущие примеры 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

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 4049
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.03.15 22:14. Заголовок: Всем привет. Использ..


Всем привет.
Использую объект 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

Теперь когда много файлов при показе тормоза начинаются... и подвисание программы.
Как убрать этот эффект ?


Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4593
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.03.15 22:18. Заголовок: Andrey пишет: Тепер..


Andrey пишет:

 цитата:
Теперь когда много файлов при показе тормоза начинаются...


На сколько много файлов ?
Если тормоз только из за FOR то попробуй FOR EACH

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4594
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.03.15 22:31. Заголовок: Andrey пишет: aList..


Andrey пишет:

 цитата:
aList := Directory( cPath + cMaska )


Вместо этого можно в цикле пробнуть FileSeek()
+
Form_Report.List_1.AddItem
+
Form_Report.List_1.Value

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 491
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 11.03.15 22:55. Заголовок: Dima пишет: Файлов ..



 цитата:
Файлов у юзера много стало


Дима правильно спросил - много это сколько ?
от тормозов при сканировании папки с числом файлов более 1000 скорее всего не избавиться программно.
Лучше спросить клиента зачем ему столько отчетов или предложить организовать вложенные папки по видам отчетов

Возможно поможет ...
================================
Долго открывается директория, в которой большое количество файлов из-за того, что NTFS обновляет метку последнего доступа к файлам.

Когда в директории много файлов то метку надо обновить на каждом, а это может занять много времени. Чтобы функцию отключить надо в реестре по адресу

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem создать ключ

NtfsDisableLastAccessUpdate типа DWORD и установить значение в «1».

После перезагрузки данная проблема исчезнет.

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 4050
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.03.15 23:07. Заголовок: Haz пишет: много эт..


Haz пишет:

 цитата:
много это сколько ?


1186 файлов... Я сам офигел.

Haz пишет:

 цитата:
предложить организовать вложенные папки по видам отчетов



Да это лучшее решение. Буду делать его. Когда программу делал, то лет 7 назад об этом не думал.
Спасибо за идею !

Как сделать перемещение/показ списка по файлам и папкам в одной функции GetReportFiles(cPath, cMaska) ?
Если нужно показывать папки Отчет-2010, Отчет-2011,.... и файлы по маске *.txt

Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4595
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.03.15 23:29. Заголовок: Andrey пишет: Как с..


Andrey пишет:

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


cPath есть , вот и отталкивайся от него.

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 513
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.03.15 23:40. Заголовок: Andrey пишет: Как сд..


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


в одной функции не знаю, но в двух grid\browse можно:
- читай в 1-й список папок
- во второй (по on change в 1-м) читай список файлов по маске из выбранной папки, можно не по on change, а по кнопке или
Enter\dublclick.

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 4051
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.03.15 00:10. Заголовок: SergKis пишет: в од..


SergKis пишет:

 цитата:
в одной функции не знаю, но в двух grid\browse можно:


Понял, буду делать... Хотел быстренько одну функцию изменить, а нет - не получилось.

Другой вопрос по CHECKBOX.
Есть у него режим ReadOnly как TEXTBOX или EDITBOX ?
Что то по хелперу фраза непонятная...
Available at control definition only
R: Read-Only




Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 514
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.03.15 00:20. Заголовок: Andrey пишет:Есть у ..


Andrey пишет:
 цитата:
Есть у него режим ReadOnly


в help см. Enabled - оно есть
Andrey пишет:
 цитата:
Хотел быстренько одну функцию изменить


проще можно в grid читать папки (с обратной сортировкой), grid, на котором ты achoice делал, после выбора, показывай другой grid с отчетами. компоненты все у тебя под рукой ...

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 515
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.03.15 01:58. Заголовок: Andrey пишет:Хотел б..


Andrey пишет:
 цитата:
Хотел быстренько одну функцию изменить


можно совсем простенько:
GetFolder(...) см. \Samples\Basic\GetFolder
GetFile(...) см. \Samples\Basic\GetFile

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 4052
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.03.15 02:09. Заголовок: SergKis пишет: можн..


SergKis пишет:

 цитата:
можно совсем простенько:
GetFolder(...) см. \Samples\Basic\GetFolder
GetFile(...) см. \Samples\Basic\GetFile


Забыл про них...

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 4063
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.03.15 20:43. Заголовок: Подскажите как занов..


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


Спасибо: 0 
Профиль
Haz
администратор




Пост N: 495
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 25.03.15 21:24. Заголовок: Andrey пишет: масси..


Andrey пишет:

 цитата:
массив в COMBOBOXEX



C:\MiniGUI\SAMPLES\BASIC\COMBO_5

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 4065
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.03.15 21:50. Заголовок: Haz пишет: C:\M..


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


Спасибо: 0 
Профиль
Haz
администратор




Пост N: 496
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 25.03.15 22:39. Заголовок: Andrey пишет: А то ..


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.





Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 4066
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.03.15 22:42. Заголовок: Haz пишет: а если с..


Haz пишет:

 цитата:
а если справку из поставки miniGui почитать по Combo ...



Спасибо !
Просто не нашёл пример и потерялся...

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 4071
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.03.15 11:43. Заголовок: Всем привет ! Вывож..


Всем привет !

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

А как мне сделать обработку нажатия на картинки допустим на 3 части ?

Разрезать картинку на 3 части нельзя.


Спасибо: 0 
Профиль
Haz
администратор




Пост N: 497
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 29.03.15 15:20. Заголовок: координаты своей кар..


координаты своей картинки знаешь

 цитата:
@ 5,5 IMAGE Image_1 ......


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


Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 355
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет