<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK v2: Рисование графиков из массива данных]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=18427</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=18427&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK v2: Рисование графиков из массива данных».]]></description>
		<lastBuildDate>Sat, 09 Aug 2025 07:49:12 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK v2: Рисование графиков из массива данных]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=162628#p162628</link>
			<description><![CDATA[<p>Исправлена функция TimeSubMs приводившая к случайной ошибке (тип числовой переменной становился string и был равен &quot;0-1&quot;).<br />Исправлены имена окон дочерних графиков.<br />Добавил (наконец-то) описание класса.</p>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Sat, 09 Aug 2025 07:49:12 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=162628#p162628</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK v2: Рисование графиков из массива данных]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=162358#p162358</link>
			<description><![CDATA[<p>Потому-что &quot;График 1&quot; это название первого окна где все графики.</p><p>Название можно поменять, укажу это в описании когда руки дойдут.</p>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Wed, 16 Apr 2025 16:18:48 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=162358#p162358</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK v2: Рисование графиков из массива данных]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=162356#p162356</link>
			<description><![CDATA[<div class="quotebox"><cite>Alectric пишет:</cite><blockquote><p>Выделяю в отдельные методы только то, что будет вызываться несколько раз</p></blockquote></div><p>Это не совсем верно. Вообще считается, что метод или функция по размеру не должны превышать видимый на одном экране текст. Количество вызовов не имеет значения. Структура должна быть примерно такая:<br /></p><div class="codebox"><pre><code>#Requires AutoHotkey v2

class MyClass
{
    __New() {
        this.FirstMethod()
        this.SecondMethod()
        ; ...
        this.LastMethod()
    }

    FirstMethod() {
 
    }

    SecondMethod() {
        
    }

    LastMethod() {
        
    }
}</code></pre></div><div class="quotebox"><cite>Alectric пишет:</cite><blockquote><p>Запусти пример, затем нажми на кнопку внизу графика &quot;Выбран X&quot;</p></blockquote></div><p>Нажимаю &quot;Выбрать 1&quot;, почему-то появляется график 2, но скрывается кнопка 1:</p><p> <span class="postimg"><img src="https://i.imgur.com/m8Fg9Zd.png" alt="https://i.imgur.com/m8Fg9Zd.png" /></span></p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Wed, 16 Apr 2025 16:12:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=162356#p162356</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK v2: Рисование графиков из массива данных]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=162355#p162355</link>
			<description><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>Логические блоки лучше выделять не комментариями</p></blockquote></div><p>Это не логические блоки, это содержимое метода __New. Выделяю в отдельные методы только то, что будет вызываться несколько раз.</p>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Wed, 16 Apr 2025 16:03:30 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=162355#p162355</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK v2: Рисование графиков из массива данных]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=162354#p162354</link>
			<description><![CDATA[<p>Запусти пример, затем нажми на кнопку внизу графика &quot;Выбран X&quot; - появится дочерний экземпляр графика, в основном окне этот график станет скрытым.<br />Вообще, уже с этим разобрался... хотя не уверен что правильно сделал.<br />Почитай надписи при наведении на кнопки внизу, может какое-то описание непонятно?</p>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Wed, 16 Apr 2025 16:00:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=162354#p162354</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK v2: Рисование графиков из массива данных]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=162353#p162353</link>
			<description><![CDATA[<div class="quotebox"><cite>Alectric пишет:</cite><blockquote><div class="codebox"><pre><code>; Добавление меню
    ; Меню настроек
    this.GraphMenuSettings:=Menu()

    obm:=ObjBindMethod(this,&quot;MenuSave&quot;)
    this.GraphMenuSettings.add(this.mi.MenuSave,obm)

    obm:=ObjBindMethod(this,&quot;MenuLoad&quot;)
    this.GraphMenuSettings.add(this.mi.MenuLoad,obm
...
; Создание основного окна
    this.GuiGraph:=Gui(&quot;+MinSize400x100 +Resize&quot;,this.Name)
    this.GuiGraph.MarginX:=0
    this.GuiGraph.MarginY:=0
...
; Создание окна перехода по времени
    this.GuiGoToT:=Gui(&quot;+owner&quot; this.GuiGraph.Hwnd &quot; -sysmenu -Resize&quot;,&quot;Перейти на время&quot;)
    this.GuiGoToT.SetFont(&quot;s10&quot;)
    this.hTT:=this.GuiGoToT.Add(&quot;DateTime&quot;,&quot;xm+1&quot;,&quot;HH:mm:ss        dd.MM.yyyy&quot;)
    obm:=ObjBindMethod(this,&quot;TTOk&quot;)
...</code></pre></div></blockquote></div><p>Логические блоки лучше выделять не комментариями, а отдельными методами с соответствующими названиями.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Wed, 16 Apr 2025 15:59:31 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=162353#p162353</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK v2: Рисование графиков из массива данных]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=162352#p162352</link>
			<description><![CDATA[<p>Если деструктор вызывается дважды, значит создаётся ещё один экземпляр, вероятно здесь:<br /></p><div class="codebox"><pre><code>this.Child.Push(Graph())</code></pre></div><div class="quotebox"><cite>Alectric пишет:</cite><blockquote><p>Как сообщить родительскому экземпляру что &quot;этот&quot; экземпляр можно удалять в методе Hide()?</p></blockquote></div><p>Не совсем ясна суть вопроса, поясните, или лучше покажите на простом примере.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Wed, 16 Apr 2025 15:54:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=162352#p162352</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK v2: Рисование графиков из массива данных]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=162351#p162351</link>
			<description><![CDATA[<p>Нет... все-таки деструктор вызывается дважды иногда... выдал ему костыль, вроде стабильно работает.</p>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Wed, 16 Apr 2025 15:49:44 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=162351#p162351</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK v2: Рисование графиков из массива данных]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=162350#p162350</link>
			<description><![CDATA[<p>Вроде разобрался с двойным вызовом деструктора.</p><p>Как сообщить родительскому экземпляру что &quot;этот&quot; экземпляр можно удалять в методе Hide()? Еще не знаю.</p>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Wed, 16 Apr 2025 14:36:39 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=162350#p162350</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK v2: Рисование графиков из массива данных]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=162349#p162349</link>
			<description><![CDATA[<p>По непонятной причине, иногда, деструктор вызывается 2 раза... не могу разобраться в чем причина.</p>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Wed, 16 Apr 2025 12:32:13 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=162349#p162349</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK v2: Рисование графиков из массива данных]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=162348#p162348</link>
			<description><![CDATA[<p>Вернул кнопки. Отобрал &quot;костыль&quot;, деструктор вызывается.<br />Теперь не могу сообразить: как сообщить родительскому экземпляру что &quot;этот&quot; экземпляр можно удалять в методе Hide()?</p>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Wed, 16 Apr 2025 06:21:51 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=162348#p162348</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK v2: Рисование графиков из массива данных]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=162347#p162347</link>
			<description><![CDATA[<p>Без кнопок выглядит странно. Бывают такие окна в каких-то приложениях?<br /></p><div class="quotebox"><cite>Alectric пишет:</cite><blockquote><p>Не получилось сделать из-за ссылок на ObjBindMethod. Нигде не нашел как сделать иначе.</p></blockquote></div><div class="codebox"><pre><code>#Requires AutoHotkey v2.0

inst1 := MyClass1()
inst2 := MyClass2()
Sleep 1500
inst1 := &#039;&#039;
inst2 := &#039;&#039;

class MyClass1
{
    __New() {
        this.timer := ObjBindMethod(this, &#039;MyTimer&#039;)
        ObjRelease(ObjPtr(this))
        SetTimer this.timer, -10
    }

    MyTimer() {
        ToolTip &#039;Timer from MyClass1&#039;
    }

    __Delete() {
        ObjAddRef(ObjPtr(this))
        SoundBeep 800
    }
}

class MyClass2
{
    __New() {
        this.clbks := MyClass2.Callbacks()
        this.timer := ObjBindMethod(this.clbks, &#039;MyTimer&#039;)
        SetTimer this.timer, -1000
    }

    __Delete() {
        SoundBeep 1200
    }

    class Callbacks
    {
        MyTimer() {
            ToolTip &#039;Timer from MyClass2&#039;
        }
    }
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Tue, 15 Apr 2025 17:50:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=162347#p162347</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK v2: Рисование графиков из массива данных]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=162346#p162346</link>
			<description><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>Может лучше заставить __Delete() работать?</p></blockquote></div><p>Попробуй заставить на этом примере:<br /></p><div class="codebox"><pre><code>a:=test()
;a:=a.Delete()  ; раскоментируй чтобы вызвать деструктор
a:=&quot;&quot;

Class test
{
  __Delete()
  {
    msgbox &quot;Деструктор вызван.`n&quot;
  }

  Delete()
  {
    settimer this.obm,0
    this.obm:=&quot;&quot;
  }

  __New()
  {
    this.obm:=ObjBindMethod(this,&quot;f&quot;)
    settimer this.obm,100
  }

  f(*)
  {
    tooltip a_tickcount
  }
}

Esc::exitapp
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Tue, 15 Apr 2025 17:41:09 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=162346#p162346</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK v2: Рисование графиков из массива данных]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=162345#p162345</link>
			<description><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>Минимизации и закрытия.</p></blockquote></div><p>По задумке их не должно быть. Может потом переделаю.<br /></p><div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>А если будет создано несколько экземпляров класса, как они будут между собой делить эти значения?</p></blockquote></div><p>Мышка может находиться только в 1 окне одновременно.<br /></p><div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>Выглядит, как костыль. Может лучше заставить __Delete() работать?</p></blockquote></div><p>Не получилось сделать из-за ссылок на ObjBindMethod. Нигде не нашел как сделать иначе.</p>]]></description>
			<author><![CDATA[null@example.com (Alectric)]]></author>
			<pubDate>Tue, 15 Apr 2025 17:28:19 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=162345#p162345</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK v2: Рисование графиков из массива данных]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=162344#p162344</link>
			<description><![CDATA[<p>Ещё такое заметил:<br /></p><div class="codebox"><pre><code>  static WheelUp:=false
  static WheelDown:=false
  static HotKeymW:=0</code></pre></div><p>А если будет создано несколько экземпляров класса, как они будут между собой делить эти значения?</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Tue, 15 Apr 2025 17:18:04 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=162344#p162344</guid>
		</item>
	</channel>
</rss>
