D
dreamorder
Гость
Доброго времени суток гос-да.
Снова возникла проблема. Рисую линии, но удалять при новом рисунке предыдущие не получается.
Хотя на графике в 1 дочернем окне всё работает, а вот во втором ну никак не
желает делать тоже самое :stars:
вот пример скрипта:
прошу помощи в решении этой задачи
Добавлено:
:laugh: :stars:
Добавлено:
up!
Похоже серьёзная задачка, раз никто пока не решил ;)
Так же есть ещё проблема с этим столбиком рисунков линий, после какого то времени, возможно происходит искажение координат для рисунка или ещё что то, но в общем кривые получаются :'(
для линий
Снова возникла проблема. Рисую линии, но удалять при новом рисунке предыдущие не получается.
Хотя на графике в 1 дочернем окне всё работает, а вот во втором ну никак не
желает делать тоже самое :stars:
вот пример скрипта:
Код:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#include <WinAPIEx.au3>
#include <BigNum.au3>
#include <Date.au3>
;AutoItSetOption('TrayIconHide', 1)
;Opt("GUIResizeMode",1) ; "1" обязательное обьявление переменных
;=====================================================================================
HotKeySet("+{ESC}", "vyx")
;==================================================================================
Global $Form2 = GUICreate("Real pVp", 952, 630, 100, 100)
GUISetIcon("C:\Windows\rty\logo\logo.ico", -1)
GUISetBkColor(0xE6E6FA)
Global $iShift = 0 ; начальный сдвиг графика
Global $iStep = 777 ; количество точек нарисованных неподвижно
Global $gg = 72999
Global $iHeight = 219
Global $Form1 = GUICreate("",$gg, $iHeight, 32, 5, BitOR($DS_SETFOREGROUND,$WS_CHILD),-1,$Form2) ; дочернее окно графика
GUISetBkColor(0xE6E6FA)
Global $iWidth3 = 27
Global $iHeight3 = 510
Global $Form3 = GUICreate("",$iWidth3, $iHeight3, 2, 5, BitOR($DS_SETFOREGROUND,$WS_CHILD),-1,$Form2) ; дочернее окно графика
GUISetBkColor(0x000000)
GUISetState(@SW_SHOW,$Form1)
GUISetState(@SW_SHOW,$Form2)
GUISetState(@SW_SHOW,$Form3)
GUISetState()
; ===================================================================================
AdlibRegister('ran', Random(2900, 3000))
AdlibRegister('_Indikator', 3000)
AdlibRegister('Line', 3000)
AdlibRegister('_Main', 60000)
; ==================================================================================
; ===================================================================================
Global $nCheck
Global $0pStartX,$1pStartX,$2pStartX,$3pStartX,$4pStartX,$5pStartX,$6pStartX
Global $iStartY = 109
Global $0pEndX,$1pEndX,$2pEndX,$3pEndX,$4pEndX,$5pEndX,$6pEndX
Global $iEndY = 109
Global $Per = 0,$pPer = 0, $iPer = 0,$centrcen = 0
Global $03StartX,$13StartX,$23StartX,$33StartX,$43StartX,$53StartX,$63StartX
Global $3StartY = 255,$3EndY = 255
Global $03EndX,$13EndX,$23EndX,$33EndX,$43EndX,$53EndX,$63EndX
Global $0pPerx1 = 4 ; координаты пера свечей
Global $0pPerx2 = 7
Global $1pPerx1 = 1
Global $1pPerx2 = 3
Global $2pPerx1 = 3
Global $2pPerx2 = 5
Global $3pPerx1 = 5
Global $3pPerx2 = 7
Global $4pPerx1 = 7
Global $4pPerx2 = 9
Global $5pPerx1 = 9
Global $5pPerx2 = 10
Global $03Perx1 = 255 ; координаты пера для индикатора
Global $03Perx2 = 256
Global $13Perx1 = 255
Global $13Perx2 = 256
Global $23Perx1 = 255
Global $23Perx2 = 256
Global $33Perx1 = 255
Global $33Perx2 = 256
Global $43Perx1 = 255
Global $43Perx2 = 256
Global $53Perx1 = 255
Global $53Perx2 = 256
Global $63Perx1 = 255
Global $63Perx2 = 256
Global $ffx = 0
Global $ffxx = 27
Global $ffy = 255
Global $ffyy = 255
Global $Lpx = 109
Global $Lpxx = 101
Global $Lpyy = 875
Global $Lpy = 12
Global $Lpyf = 870
Global $Lpxxx = 109
;Global $cena1,$cena2,$cena3,$cena4,$cena5,$cena6
;Global $h1 =100, $h2 =100, $h3 =100, $h4 =100, $h5 =100, $h6 =100
;Global $hhh
_GDIPlus_Startup()
Global $hGraphic = _GDIPlus_GraphicsCreateFromHWND($Form1)
Global $hBitmap = _GDIPlus_BitmapCreateFromGraphics($gg, $iHeight, $hGraphic)
Global $hBackbuffer1 = _GDIPlus_ImageGetGraphicsContext($hBitmap)
Global $hEraser11 = _GDIPlus_PenCreate(0xFFE6E6FA,24) ; стирающая ручка полосы процентов
Global $hPenBlueThinz = _GDIPlus_PenCreate(0xFF5F9EA0,1) ; перо для полоса процент линии
Global $hPenBlueThinz0 = _GDIPlus_PenCreate(0xFF800000,1) ; перо для полоса 0 линии
Global $hPenBlueThin0 = _GDIPlus_PenCreate(0xFFFF0000,2) ; перо для синей линии
Global $hPenBlueThin1 = _GDIPlus_PenCreate(0xFF008000,2) ; перо для синей линии
Global $hPenBlueThin2 = _GDIPlus_PenCreate(0xFFFFA500,3) ; перо для синей линии
Global $hPenBlueThin3 = _GDIPlus_PenCreate(0xFFFFFFff,4) ; перо для синей линии
Global $hPenBlueThin6 = _GDIPlus_PenCreate(0xFF00FF00, 3) ; ручка для
Global $hBrushYellow = _GDIPlus_BrushCreateSolid(0xFF000000) ; кисть вывода цифр процентов
;Global $hEraser = _GDIPlus_PenCreate(0xFF696969, 47) ; стирающая ручка цифр процентов
Global $hFormat = _GDIPlus_StringFormatCreate() ; формат текста
Global $hFamily = _GDIPlus_FontFamilyCreate('Tahoma') ; шрифт текста
Global $hFont = _GDIPlus_FontCreate($hFamily, 10) ; размер шрифта
_GDIPlus_GraphicsSetSmoothingMode($hBackbuffer1, 2)
_GDIPlus_Startup()
Global $hGraphic3 = _GDIPlus_GraphicsCreateFromHWND($Form3)
Global $hBitmap3 = _GDIPlus_BitmapCreateFromGraphics($iWidth3, $iHeight3, $hGraphic3)
Global $hBackbuffer3 = _GDIPlus_ImageGetGraphicsContext($hBitmap3)
;Global $hEraser113 = _GDIPlus_PenCreate(0xFF0000c0,120) ; стирающая ручка полосы процентов
Global $hPenBlueThinz03 = _GDIPlus_PenCreate(0xFF808000,5) ; перо для полоса 0 линии
Global $hPenBlueThin03 = _GDIPlus_PenCreate(0xFF1f561c,333) ; перо для синей линии
Global $hPenBlueThin13 = _GDIPlus_PenCreate(0xFFFFA500,5) ; перо для синей линии
Global $hPenBlueThin23 = _GDIPlus_PenCreate(0xFFFFD700,5) ; перо для синей линии
Global $hPenBlueThin33 = _GDIPlus_PenCreate(0xFFFFFFFF,3) ; перо для синей линии
Global $hPenBlueThin63 = _GDIPlus_PenCreate(0xFF808000,5) ; ручка для
_GDIPlus_GraphicsSetSmoothingMode($hBackbuffer3, 2)
GUIRegisterMsg($WM_ERASEBKGND, 'WM_ERASEBKGND')
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
_GDIPlus_FontDispose($hFont)
_GDIPlus_FontFamilyDispose($hFamily)
_GDIPlus_StringFormatDispose($hFormat)
_GDIPlus_PenDispose($hPenBlueThinz0) ; удаление ресурсов
_GDIPlus_PenDispose($hPenBlueThinz) ; удаление ресурсов
_GDIPlus_PenDispose($hPenBlueThin0) ; удаление ресурсов
_GDIPlus_PenDispose($hPenBlueThin1) ; удаление ресурсов
_GDIPlus_PenDispose($hPenBlueThin2) ; удаление ресурсов
_GDIPlus_PenDispose($hPenBlueThin3) ; удаление ресурсов
_GDIPlus_PenDispose($hPenBlueThin6)
_GDIPlus_BrushDispose($hBrushYellow)
;_GDIPlus_PenDispose($hEraser)
_GDIPlus_PenDispose($hEraser11)
_GDIPlus_GraphicsDispose($hGraphic) ; удаление ресурсов
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_GraphicsDispose($hBackbuffer1)
;-----------------------------------------------------------------
_GDIPlus_PenDispose($hPenBlueThinz03) ; удаление ресурсов
_GDIPlus_PenDispose($hPenBlueThin03) ; удаление ресурсов
_GDIPlus_PenDispose($hPenBlueThin13) ; удаление ресурсов
_GDIPlus_PenDispose($hPenBlueThin23) ; удаление ресурсов
_GDIPlus_PenDispose($hPenBlueThin33) ; удаление ресурсов
_GDIPlus_PenDispose($hPenBlueThin63)
;_GDIPlus_PenDispose($hEraser113)
_GDIPlus_GraphicsDispose($hGraphic3) ; удаление ресурсов
_GDIPlus_BitmapDispose($hBitmap3)
_GDIPlus_GraphicsDispose($hBackbuffer3)
_GDIPlus_Shutdown()
Exit
EndSwitch
WEnd
Func _Main()
Local $tTime, $aTime
; Получение текущего системного времени
$tTime = _Date_Time_GetSystemTime()
$aTime = _Date_Time_SystemTimeToArray($tTime)
; MemoWrite("Час .........: " & $aTime[3])
; MemoWrite("Минута ......: " & $aTime[4])
; MemoWrite("Секунда .....: " & $aTime[5])
; MemoWrite("Миллисекунда : " & $aTime[6])
Select
Case $aTime[4] = 0
pPerx()
Case $aTime[4] = 3
pPerx()
Case $aTime[4] = 6
pPerx()
Case $aTime[4] = 9
pPerx()
Case $aTime[4] = 12
pPerx()
Case $aTime[4] = 15
pPerx()
Case $aTime[4] = 18
pPerx()
Case $aTime[4] = 21
pPerx()
Case $aTime[4] = 24
pPerx()
Case $aTime[4] = 27
pPerx()
Case $aTime[4] = 30
pPerx()
Case $aTime[4] = 33
pPerx()
Case $aTime[4] = 36
pPerx()
Case $aTime[4] = 39
pPerx()
Case $aTime[4] = 42
pPerx()
Case $aTime[4] = 45
pPerx()
Case $aTime[4] = 48
pPerx()
Case $aTime[4] = 51
pPerx()
Case $aTime[4] = 54
pPerx()
Case $aTime[4] = 57
pPerx()
EndSelect
EndFunc
Func _Indikator()
$Per = _BigNum_Add($Per, $pPer)
$3EndY = _BigNum_Add($3EndY, $pPer)
$hhh = (100 - $Per)
EndFunc
Func pPerx()
$centrcen = $Per + $pPer
If $Lpy >= $iStep Then ; рассояние в пикселях, после которого нужно делать сдвиг графика
$iShift -= 12 ; смещение графика
_GDIPlus_GraphicsClear($hGraphic) ; очистка графика
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $iShift, 0, $gg, $iHeight) ; рисуем заново со смещением
Else
$Lpyf -=12
$Lpy += 12
EndIf
$0pPerx1 += 12
$0pPerx2 += 12
$1pPerx1 += 12
$1pPerx2 += 12
$2pPerx1 += 12
$2pPerx2 += 12
$3pPerx1 += 12
$3pPerx2 += 12
$4pPerx1 += 12
$4pPerx2 += 12
$5pPerx1 += 12
$5pPerx2 += 12
EndFunc
Func ran()
$pPer = Random(-5, 5, 1)
EndFunc
Func Line()
Local $tt
Select
Case $iPer <- 99
$iPer += 15
Case $iPer > 99
$iPer -= 15
Case $Per <- 99
$tt = Random(-9, -3,1)
$Per = $tt
$iStartY = $tt
$iEndY = $tt
$Lpx = $tt
$Lpxx = $tt
$Lpxxx = $tt
Case $Per > 99
$ttp = Random(3,9,1)
$iStartY = $ttp
$iEndY = $ttp
$Per = $ttp
$Lpx = $ttp
$Lpxx = $ttp
$Lpxxx = $ttp
EndSelect
$0pStartX = $0pPerx1
$0pEndX = $0pPerx2
$1pStartX = $1pPerx1
$1pEndX = $1pPerx2
$2pStartX = $2pPerx1
$2pEndX = $2pPerx2
$3pStartX = $3pPerx1
$3pEndX = $3pPerx2
$4pStartX = $4pPerx1
$4pEndX = $4pPerx2
$5pStartX = $5pPerx1
$5pEndX = $5pPerx2
$03StartX = 0
$03EndX = 4
$13StartX = 4
$13EndX = 8
$23StartX = 9
$23EndX = 13
$33StartX = 13
$33EndX = 15
$43StartX = 15
$43EndX = 19
$53StartX = 20
$53EndX = 24
$63StartX = 24
$63EndX = 27
$03StartY = $03Perx1
$03EndY = $03Perx2
$13StartY = $13Perx1
$13EndY = $13Perx2
$23StartY = $23Perx1
$23EndY = $23Perx2
$33StartY = $33Perx1
$33EndY = $33Perx2
$43StartY = $43Perx1
$43EndY = $43Perx2
$53StartY = $53Perx1
$53EndY = $53Perx2
$63StartY = $63Perx1
$63EndY = $63Perx2
$iStartY = _BigNum_Add($iStartY, $pPer)
$iEndY = _BigNum_Add($iEndY, $pPer)
$Lpx = _BigNum_Add($Lpx, $pPer)
$Lpxx = _BigNum_Add($Lpxx, $pPer)
$Lpxxx = _BigNum_Add($Lpxxx, $pPer)
$3StartY = _BigNum_Add($3StartY, $pPer)
grss03()
grss13()
grss23()
grss33()
grss43()
grss53()
grss63()
Lp100()
grss0($0pStartX, $iStartY, $0pEndX, $iEndY)
grss1($1pStartX, $iStartY, $1pEndX, $iEndY)
grss2($2pStartX, $iStartY, $2pEndX, $iEndY)
grss3($3pStartX, $iStartY, $3pEndX, $iEndY)
grss4($4pStartX, $iStartY, $4pEndX, $iEndY)
grss5($5pStartX, $iStartY, $5pEndX, $iEndY)
EndFunc
Func Lp100()
Local $tLayout
Local $PR
$PR &= 100 - $Per
$PR &='%'
_GDIPlus_GraphicsDrawLine($hGraphic, $Lpy, $Lpx, 72999, $Lpxxx, $hEraser11) ; удаление нарисованного
_GDIPlus_GraphicsDrawLine($hGraphic, $Lpy, $Lpx, 870 ,$Lpxxx, $hPenBlueThinz) ; линия полосы %
_GDIPlus_GraphicsDrawLine($hGraphic, $Lpy, 109, 72999 ,109,$hPenBlueThinz0) ; линия полосы 0
$tLayout = _GDIPlus_RectFCreate($Lpyy +2, $Lpxx, 0, 0) ; координаты для надписи с длиной отрезка
_GDIPlus_GraphicsDrawStringEx($hGraphic, Round($PR, 3) & '%', $hFont, $tLayout, $hFormat, $hBrushYellow) ; вывод надписи
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $iShift, 0, $gg, $iHeight)
EndFunc
Func grss0($0pStartX, $iStartY, $0pEndX, $iEndY)
Select
Case $Per <= $centrcen
; _GDIPlus_GraphicsDrawLine($hBackbuffer1, 12, $iHeight/2, $gg - $iShift, $iHeight/2, $hPenPurpurThin) ; линия ноль-линия
_GDIPlus_GraphicsDrawLine($hBackbuffer1, $0pStartX, $iStartY, $0pEndX, $iEndY, $hPenBlueThin0) ; линия отрезка
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $iShift, 0, $gg, $iHeight)
EndSelect
EndFunc
Func grss1($1pStartX, $iStartY, $1pEndX, $iEndY)
Select
Case $Per >= $centrcen
;_GDIPlus_GraphicsDrawLine($hBackbuffer1, 12, $iHeight/2, $gg - $iShift, $iHeight/2, $hPenPurpurThin) ; линия ноль-линия
_GDIPlus_GraphicsDrawLine($hBackbuffer1, $1pStartX, $iStartY, $1pEndX, $iEndY, $hPenBlueThin1) ; линия отрезка
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $iShift, 0, $gg, $iHeight)
EndSelect
EndFunc
Func grss2($2pStartX, $iStartY, $2pEndX, $iEndY)
Select
Case $Per >= $centrcen
_GDIPlus_GraphicsDrawLine($hBackbuffer1, $2pStartX, $iStartY, $2pEndX, $iEndY, $hPenBlueThin2) ; линия отрезка
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $iShift, 0, $gg, $iHeight)
EndSelect
EndFunc
Func grss3($3pStartX, $iStartY, $3pEndX, $iEndY)
Select
Case $Per >= $centrcen
_GDIPlus_GraphicsDrawLine($hBackbuffer1, $3pStartX, $iStartY, $3pEndX, $iEndY, $hPenBlueThin3) ; линия отрезка
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $iShift, 0, $gg, $iHeight)
EndSelect
EndFunc
Func grss4($4pStartX, $iStartY, $4pEndX, $iEndY)
Select
Case $Per >= $centrcen
_GDIPlus_GraphicsDrawLine($hBackbuffer1, $4pStartX, $iStartY, $4pEndX, $iEndY, $hPenBlueThin2) ; линия отрезка
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $iShift, 0, $gg, $iHeight)
EndSelect
EndFunc
Func grss5($5pStartX, $iStartY, $5pEndX, $iEndY)
Select
Case $Per >= $centrcen
_GDIPlus_GraphicsDrawLine($hBackbuffer1, $5pStartX, $iStartY, $5pEndX, $iEndY, $hPenBlueThin1) ; линия отрезка
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $iShift, 0, $gg, $iHeight)
EndSelect
EndFunc
Func grss6($6pStartX, $iStartY, $6pEndX, $iEndY)
_GDIPlus_GraphicsDrawLine($hBackbuffer1, $6pStartX, $iStartY, $6pEndX, $iEndY, $hPenBlueThin6) ; линия отрезка
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $iShift, 0, $gg, $iHeight)
EndFunc
Func WM_ERASEBKGND()
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $iShift, 0, $gg, $iHeight)
_GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
EndFunc
;===============================================================================================================
Func grss03()
If $Per >= $iPer Then
smenacveta1()
_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
_GDIPlus_GraphicsDrawLine($hBackbuffer3, $03StartX, $3StartY, $03EndX, $3EndY, $hPenBlueThinz03) ; линия отрезка
_GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
Else
smenacveta()
_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
_GDIPlus_GraphicsDrawLine($hBackbuffer3, $03StartX, $3StartY, $03EndX, $3EndY, $hPenBlueThinz03) ; линия отрезка
_GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
EndIf
EndFunc
Func grss13()
If $Per >= $iPer Then
smenacveta1()
_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
_GDIPlus_GraphicsDrawLine($hBackbuffer3, $13StartX, $3StartY, $13EndX, $3EndY, $hPenBlueThin13) ; линия отрезка
_GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
Else
smenacveta()
_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
_GDIPlus_GraphicsDrawLine($hBackbuffer3, $13StartX, $3StartY, $13EndX, $3EndY, $hPenBlueThin13) ; линия отрезка
_GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
EndIf
EndFunc
Func grss23()
If $Per >= $iPer Then
smenacveta1()
_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
_GDIPlus_GraphicsDrawLine($hBackbuffer3, $23StartX, $3StartY, $23EndX, $3EndY, $hPenBlueThin23) ; линия отрезка
_GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
Else
smenacveta()
_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
_GDIPlus_GraphicsDrawLine($hBackbuffer3, $23StartX, $3StartY, $23EndX, $3EndY, $hPenBlueThin23) ; линия отрезка
_GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
EndIf
EndFunc
Func grss33()
If $Per >= $iPer Then
smenacveta1()
_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
_GDIPlus_GraphicsDrawLine($hBackbuffer3, $33StartX, $3StartY, $33EndX, $3EndY, $hPenBlueThin33) ; линия отрезка
_GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
Else
smenacveta()
_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
_GDIPlus_GraphicsDrawLine($hBackbuffer3, $33StartX, $3StartY, $33EndX, $3EndY, $hPenBlueThin33) ; линия отрезка
_GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
EndIf
EndFunc
Func grss43()
If $Per >= $iPer Then
smenacveta1()
_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
_GDIPlus_GraphicsDrawLine($hBackbuffer3, $43StartX, $3StartY, $43EndX, $3EndY, $hPenBlueThin23) ; линия отрезка
_GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
Else
smenacveta()
_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
_GDIPlus_GraphicsDrawLine($hBackbuffer3, $43StartX, $3StartY, $43EndX, $3EndY, $hPenBlueThin23) ; линия отрезка
_GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
EndIf
EndFunc
Func grss53()
If $Per >= $iPer Then
smenacveta1()
_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
_GDIPlus_GraphicsDrawLine($hBackbuffer3, $53StartX, $3StartY, $53EndX, $3EndY, $hPenBlueThin13) ; линия отрезка
_GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
Else
smenacveta()
_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
_GDIPlus_GraphicsDrawLine($hBackbuffer3, $53StartX, $3StartY, $53EndX, $3EndY, $hPenBlueThin13) ; линия отрезка
_GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
EndIf
EndFunc
Func grss63()
If $Per >= $iPer Then
smenacveta1()
_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
_GDIPlus_GraphicsDrawLine($hBackbuffer3, $63StartX, $3StartY, $63EndX, $3EndY, $hPenBlueThinz03) ; линия отрезка
_GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
Else
smenacveta()
_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
_GDIPlus_GraphicsDrawLine($hBackbuffer3, $63StartX, $3StartY, $63EndX, $3EndY, $hPenBlueThinz03) ; линия отрезка
_GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
EndIf
EndFunc
Func smenacveta()
$hPenBlueThinz03 = _GDIPlus_PenCreate(0xFF8B0000,5) ; перо для полоса 0 линии
; $hPenBlueThin03 = _GDIPlus_PenCreate(0xccFF0000,5) ; перо для синей линии
$hPenBlueThin13 = _GDIPlus_PenCreate(0xFFB22222,5) ; перо для синей линии
$hPenBlueThin23 = _GDIPlus_PenCreate(0xFFFF0000,5) ; перо для синей линии
$hPenBlueThin33 = _GDIPlus_PenCreate(0xFFFFFFFF,6) ; перо для синей линии
$hPenBlueThin63 = _GDIPlus_PenCreate(0xFF8B0000, 5) ; ручка для точки выкупа
EndFunc
Func smenacveta1()
$hPenBlueThinz03 = _GDIPlus_PenCreate(0xFF808000,5) ; перо для полоса 0 линии
; $hPenBlueThin03 = _GDIPlus_PenCreate(0xccFF0000,5) ; перо для синей линии
$hPenBlueThin13 = _GDIPlus_PenCreate(0xFFFFA500,5) ; перо для синей линии
$hPenBlueThin23 = _GDIPlus_PenCreate(0xFFFFD700,5) ; перо для синей линии
$hPenBlueThin33 = _GDIPlus_PenCreate(0xFFFFFFFF,6) ; перо для синей линии
$hPenBlueThin63 = _GDIPlus_PenCreate(0xFF808000, 5) ; ручка для точки выкупа
EndFunc
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Func vyx()
Sleep (300)
Exit
EndFunc
прошу помощи в решении этой задачи
Добавлено:
Сообщение автоматически объединено:
:laugh: :stars:
Добавлено:
Сообщение автоматически объединено:
up!
Похоже серьёзная задачка, раз никто пока не решил ;)
Так же есть ещё проблема с этим столбиком рисунков линий, после какого то времени, возможно происходит искажение координат для рисунка или ещё что то, но в общем кривые получаются :'(
для линий