bb.donnay-software.com

Donnay Software Web Forums
It is currently Wed Aug 05, 2020 3:44 pm

All times are UTC - 7 hours




Post new topic Reply to topic  [ 4 posts ] 
Author Message
PostPosted: Sat Jul 25, 2020 10:35 pm 
Offline
User avatar

Joined: Sat Feb 04, 2012 2:23 am
Posts: 1349
Location: Russia, Southern federal district, city of Krasnodar
I have all the charts drawn normally, but after writing the chart as a file, it stops. To proceed further it is necessary to press Esc. If there are a lot of charts, it becomes difficult. Is there any way to prevent this stop from happening?

Code:
   ****** Цикл по будущим сценариям *******************************

   SELECT DrawScen
   DBGOTOP()
   DO WHILE .NOT. EOF()

      PUBLIC X_MaxW := 1800, Y_MaxW := 900           // Размер графического окна для отображения когнитивных диаграмм в пикселях
      PUBLIC nXSize := 1800
      PUBLIC nYSize :=  900
     
      oScr := DC_WaitOn('Немного подождите! Идет формирование изображения в памяти и его масштабирование',,,,,,,,,,,.F.)
     
      // Create new bitmap with given size
      oPS := XBPPRESSPACE() :new() :Create()
      oBMP := XBPBITMAP() :New() :Create()
*     oBMP:Make( nXSize, nYSize, nPlanes, nBits )
      oBMP:Make( nXSize, nYSize )
      oBMP:presSpace( oPS )
     
      // here your GRA* Code
     
      **** Закрасить фон прямоугольника ***************
*     GraSetColor( oPS, GRA_CLR_WHITE, GRA_CLR_WHITE )
      GraSetColor( oPS, BD_LIGHTGREY, BD_LIGHTGREY )
      GraBox( oPS, { 0, 0 }, { nXSize, nYSize }, GRA_FILL )
     
      *########################################################################################################################################
      DrawScenario(oPS, Kod, Name, Kod_Sc, N_PointsScenario, mPar)                                         // Графическая функция <<<===#######
      *########################################################################################################################################
     
      *My image original, my image scaled
     
      DC_Impl(oScr)                                                   

      SELECT DrawScen

      DO CASE
         CASE mPar = 'Cls'

              ****** Запись полноразмерного графического файла в папку: M_PathAppl+"\FutureScenarios\"
              DIRCHANGE(M_PathAppl)                                   // Перейти в папку текущего приложения
              IF FILEDATE("FutureScenarios",16) = CTOD("//")
                 DIRMAKE("FutureScenarios")
                 aMess := {}
                 AADD(aMess, L('В папке текущего приложения: "'+UPPER(ALLTRIM(M_PathAppl))+'"'))
                 AADD(aMess, L('не было директории "FutureScenarios" для будущих сценариев и она была создана!'))
                 AADD(aMess, L('В эту папку записываются исходные изображения высокого качества (без масштабирования)'))
                 LB_Warning(aMess, L('2.1. Классификационные шкалы и градации' ))
              ENDIF
              DIRCHANGE(M_PathAppl+"\FutureScenarios\")                  // Перейти в папку Futurecenarios
              cFileName = 'FutureScen'+'-'+ALLTRIM(STRTRAN(STR(Kod,mNRazr),' ','0'))+'-Splain.jpg'

         CASE mPar = 'Atr'

              ****** Запись полноразмерного графического файла в папку: M_PathAppl+"\PastScenarios\"
              DIRCHANGE(M_PathAppl)                                   // Перейти в папку текущего приложения
              IF FILEDATE("PastScenarios",16) = CTOD("//")
                 DIRMAKE("PastScenarios")
                 aMess := {}
                 AADD(aMess, L('В папке текущего приложения: "'+UPPER(ALLTRIM(M_PathAppl))+'"'))
                 AADD(aMess, L('не было директории "PastScenarios" для прошлых сценариев и она была создана!'))
                 AADD(aMess, L('В эту папку записываются исходные изображения высокого качества (без масштабирования)'))
                 LB_Warning(aMess, L('2.2. Описательные шкалы и градации' ))
              ENDIF
              DIRCHANGE(M_PathAppl+"\PastScenarios\")                  // Перейти в папку Futurecenarios
              cFileName = 'PastScen'+'-'+ALLTRIM(STRTRAN(STR(Kod,mNRazr),' ','0'))+'-Splain.jpg'

      ENDCASE
     
      ERASE(cFileName)
      oBMP:SaveFile(cFileName,XBPBMP_FORMAT_JPG)
     
      IF nWidth > 1800
         FullView( cFileName, "по верху", 65 )                // Визуализация полноразмерного файла на мониторе высокого разрешения
      ELSE
         ****** Формирование с помощью bmp2bmp() и отображение масштабированного изображения
         aNewSize := {nWidth,nHeight-29}                      // Новый размер изображения (еще немного уменьшается, чтобы не рисовать по панели задач)
         oBMP:loadFile(cFileName)                             // Загрузка полноразмерного изображения
         oRet := BMP2BMP(oBMP,aNewSize)                       // Масштабирование изображения
         cFileNameScale = SUBSTR(cFileName,1,AT(".jpg",cFileName)-1)+"_scaled.jpg"
         ERASE(cFileNameScale)
         oRet:saveFile(cFileNameScale,XBPBMP_FORMAT_JPG)      // Запись масштабированного графического файла в в папку приложения для визуализации
         FullView( cFileNameScale, "по верху", 0 )            // Визуализация масштабированного графического файла на мониторе ограниченного разрешения
     
      ENDIF
      DIRCHANGE(M_PathAppl)                                   // Перейти в папку текущего приложения

      SELECT DrawScen
      DBSKIP(1)
   ENDDO


У меня все графики нормально рисуется, но после записи графика в виде файла происходит остановка. Чтобы двигаться дальше надо нажать Esc. Если графиков много, то это становится затруднительным. Есть ли возможность как-то сделать, чтобы этой остановки не происходило?

_________________
http://lc.kubagro.ru/
https://www.researchgate.net/profile/Eugene_Lutsenko
http://ej.kubagro.ru/
http://ej.kubagro.ru/a/viewaut.asp?id=11


Top
 Profile  
 
PostPosted: Sun Jul 26, 2020 6:04 pm 
Offline
User avatar

Joined: Wed Feb 24, 2010 3:44 pm
Posts: 1189
hi,

have DC_WaitOn() "stopped" :?:

---

don´t declare PUBLIC in loop
destroy Object after print before next loop

use Debugger

_________________
greetings by OHR
Jimmy


Top
 Profile  
 
PostPosted: Mon Jul 27, 2020 8:35 am 
Offline
User avatar

Joined: Sat Feb 04, 2012 2:23 am
Posts: 1349
Location: Russia, Southern federal district, city of Krasnodar
Jimmi!
How do I do this: "destroy Object after print before next loop"?

_________________
http://lc.kubagro.ru/
https://www.researchgate.net/profile/Eugene_Lutsenko
http://ej.kubagro.ru/
http://ej.kubagro.ru/a/viewaut.asp?id=11


Top
 Profile  
 
PostPosted: Thu Jul 30, 2020 11:04 am 
Offline
User avatar

Joined: Sat Feb 04, 2012 2:23 am
Posts: 1349
Location: Russia, Southern federal district, city of Krasnodar
I realized that if you don't want to stop the process after showing an image, you don't need to show it at all. Then let users view all the images in the folder at once

_________________
http://lc.kubagro.ru/
https://www.researchgate.net/profile/Eugene_Lutsenko
http://ej.kubagro.ru/
http://ej.kubagro.ru/a/viewaut.asp?id=11


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: Google [Bot] and 21 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group