<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; Не обновляется ListView (После создания нового окна)]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=15475&amp;type=atom" />
	<updated>2020-06-27T08:22:53Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=15475</id>
		<entry>
			<title type="html"><![CDATA[Re: Не обновляется ListView (После создания нового окна)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=140399#p140399" />
			<content type="html"><![CDATA[<p><strong>AdcB</strong>, в указанном участке кода оператором <span class="bbu">else</span> Вы только изменяете текст статуса. <em>gosub, ReloadList</em> выполнится в любом случае, если вы заберёте <em>return</em> с проверочного тела. Поэтому и советую для Вас тело даже в одну строчку выделять скобками</p>]]></content>
			<author>
				<name><![CDATA[qqlexa]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=39096</uri>
			</author>
			<updated>2020-06-27T08:22:53Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=140399#p140399</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Не обновляется ListView (После создания нового окна)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=140391#p140391" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><ul><li><p>1) Оформлять название темы соответственно правилам форума</p></li></ul></blockquote></div><p>Согласен, правила оформления это хорошо.<br /></p><div class="quotebox"><blockquote><ul><li><p>2) Иметь единый стандарт оформления кода, а значит используете маленькую букву для if, return и прочих операторов - продолжайте это делать везде, а не там где вам угодно</p></li></ul></blockquote></div><p>Я стараюсь так делать. Сейчас.. Этот скрипт писался с 11 числа.<br /></p><div class="quotebox"><blockquote><ul><li><p>3) Желательно даже для одной строки открывать тело через фигурные скобки &quot;{ .. }&quot;, так как вы уже потеряли как минимум на строчке 145 ход скрипта, так происходит в многих местах</p></li></ul></blockquote></div><p>Учту, спасибо. Лично я не совсем понимаю о чём речь про 145 строку. Да, советы дельные. Но в этом моменте мне нужно чтобы именно тут закончились действия, и никаких &quot;Всё же...необходимо выбрать&quot; не было.<br /></p><div class="codebox"><pre><code>
If ErrorLevel = 1
{
	GuiControl, Text, Status , Переименовывание отменено
	return ; 145 строка
}
else
	GuiControl, Text, Status , Переименовывание успешно
	gosub, ReloadList
}
Else
GuiControl, Text, Status , Всё же...необходимо выбрать 
return
</code></pre></div><p>Сейчас перечитываю, и ведь действительно, их бы и не было без Return. Легче написать &quot;Ретурн&quot;, чем разбираться в коде. И всё же в этом помогут скобки, да.<br /></p><div class="quotebox"><blockquote><ul><li><p>4) Если у вас в теле if присутствует оператор возврата return, не нужно делать else { }</p></li></ul></blockquote></div><p>У меня они присутствуют скорее для уверенности что конец именно тут, они должны уйти на последней оптимизации скрипта.<br /></p><div class="quotebox"><blockquote><ul><li><p>5) Одинаковый код нужно выводить в функции. Повторяется одно и то же как минимум раз - делаем функцию</p></li></ul></blockquote></div><p>Функции - пока-что для меня сложно, не очень понимаю как они работают. Но справка есть, почему нет, изучу на досуге.<br /></p><div class="quotebox"><blockquote><ul><li><p>6) Лучше не использовать русских символов в названии переменных и меток, так как Ваш код может быть полезен и для других желающих, которые не смогут понять смысл метки</p></li></ul></blockquote></div><p>Изначально скрипт писался только для меня и МОЖЕТ БЫТЬ друзей. Хорошо я знаю только русский. Наверное мне так легче понимать про что этот кусок. Интересно, попадает ли столько цитат под запрет..</p>]]></content>
			<author>
				<name><![CDATA[AdcB]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=39402</uri>
			</author>
			<updated>2020-06-26T23:15:47Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=140391#p140391</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Не обновляется ListView (После создания нового окна)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=140364#p140364" />
			<content type="html"><![CDATA[<p>Думаю, что Вы хотите становиться лучше, тогда накину советов:<br /></p><ul><li><p>1) Оформлять название темы соответственно правилам форума</p></li><li><p>2) Иметь единый стандарт оформления кода, а значит используете маленькую букву для if, return и прочих операторов - продолжайте это делать везде, а не там где вам угодно</p></li><li><p>3) Желательно даже для одной строки открывать тело через фигурные скобки &quot;{ .. }&quot;, так как вы уже потеряли как минимум на строчке 145 ход скрипта, так происходит в многих местах</p></li><li><p>4) Если у вас в теле if присутствует оператор возврата return, не нужно делать else { }</p></li><li><p>5) Одинаковый код нужно выводить в функции. Повторяется одно и то же как минимум раз - делаем функцию</p></li><li><p>6) Лучше не использовать русских символов в названии переменных и меток, так как Ваш код может быть полезен и для других желающих, которые не смогут понять смысл метки</p></li></ul><p>Думаю, после выполнения советов из этого списка вы отыскаете проблему <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[qqlexa]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=39096</uri>
			</author>
			<updated>2020-06-26T16:19:18Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=140364#p140364</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Не обновляется ListView (После создания нового окна)]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=140275#p140275" />
			<content type="html"><![CDATA[<p>Столкнулся с проблемой, не обновляется ListView после смены игры. Вроде, это связанно с новым окном</p><p>https://youtu.be/BCg2RRfBTnE - То что происходит, хотя в скрипте прописано обновление списка (ReloadList)</p><div class="codebox"><pre><code>
;DS3 Сохранения
HotKey, *+F5, БыстроеСохранение
HotKey, *+F9, Загрузить

Gui, Show, w530 h300, DS3 Сохранения
Gui, Add, ListView, r14 w400 y10 x110 vList gList Checked SortDesc, Название
Gui, Add, Text, x110 y280 vStatus, 0000000000000000000000000000000000000000000000000000
Gui, Add, Text, y130 x12 vFolderUse, 0000000000
GuiControl, Text, Status , Работает
GuiControl, Text, FolderUse , Сохранения


Gui, Add, Button,y10 x10 gСохранение, Сохранить (+F5)
Gui, Add, Button,y40 x10 gЗагрузить, Загрузить (+F9)

Gui, Add, Button,y150 x10 gСохранения , Сохранения
Gui, Add, Button,y175 x10 gБэкапы , Бэкапы
Gui, Add, Button,y229 x10 gПереименовать , Переименовать
Gui, Add, Button,y253 x10 gОбновить, Обновить
Gui, Add, Button,y276.5 x456 gУдалить , Удалить

Gui, Add, CheckBox, y10 x514 vConfirmDelete

WindowCreated = No

GameChoice := &quot;Dark Souls 3&quot; 
DDDAFolder := &quot;D:\Games\Dragon&#039;s Dogma Dark Arisen&quot;
;
gosub, СменитьИгру

List:
If (A_GuiEvent = &quot;DoubleClick&quot;)
{
	If (LV_GetCount(&quot;Selected&quot;)) &gt; 0
	{
		LV_GetText(RowText, A_EventInfo)
		gosub, UpdateTimeBackup
		Filecopy %GameSave%\%SaveFileName%, %ScriptBackup%\%TimeB% - DoubleClick.%FileType%
		If FolderUse = Сохранения
			Filecopy %ScriptSave%\%RowText%, %GameSave%\%SaveFileName%, true
		If FolderUse = Бэкапы
			Filecopy %ScriptBackup%\%RowText%, %GameSave%\%SaveFileName%, true
	}
}
return
Help:
MsgBox 1
Return

; 					Клавиши

+F1::reload
F2::Gui, Show
Сохранение:
gosub, Сохранения
GuiControl, Text, Status , Жду название..
InputBox, FileName, Название, Введите название файла, , 420, 100, , , , , Save
If ErrorLevel
{
	GuiControl, Text, Status , Сохранение отменено
	return
}
else
	gosub, UpdateTimeBackup
	FileCopy %GameSave%\%SaveFileName%, %ScriptSave%\%TimeB% - %FileName%.%FileType%
	GuiControl, Text, Status , Сохранение успешно
	gosub, ReloadList
return



БыстроеСохранение:
GuiControl, Text, Status , Сохраняю..
gosub, UpdateTimeBackup
FileCopy %GameSave%\%SaveFileName%, %ScriptSave%\%TimeB% - F5 Save.%FileType%
gosub, ReloadList
SoundBeep, 750, 500
GuiControl, Text, Status , Сохранение успешно
return


Загрузить:
CheckCount = 0
Loop
{
    Check := LV_GetNext(Check, &quot;Checked&quot;)
    if not Check
        break
    LV_GetText(Text, Check)
	CheckCount := CheckCount + 1
   
}
If CheckCount = 1
{
	CheckCol := LV_GetNext(0, &quot;Checked&quot;)
	If not CheckCol = 0
	{
		GuiControl, Text, Status , Перемещаю..
		LV_GetText(FileC,CheckCol)
		;MsgBox %RowNumber% - %FileC% - %CheckCol%
		gosub, UpdateTimeBackup
		FileCopy %GameSave%\%SaveFileName%, %ScriptBackup%\%TimeB% - F9 Load.%FileType%
		Filecopy %ScriptSave%\%FileC%, %GameSave%\%SaveFileName%, true
		FileС := &quot;&quot;
		SoundBeep, 400, 500
		GuiControl, Text, Status , Успешная загрузка
	}
}
Else if CheckCount &gt; 1
{
	GuiControl, Text, Status , Ты выбрал больше 1 файла, целых %CheckCount%
}
Else if CheckCount = 0
GuiControl, Text, Status , Чтобы загрузить, нужно выбрать 1 файл
Return

; 					Кнопки
; 					Первое окно

Переименовать:
RenameFileNumber = 0 
If (LV_GetCount(&quot;Selected&quot;)) &gt; 0
{
Loop % LV_GetCount(&quot;Selected&quot;)
	
	{
		RenameFileNumber  := LV_GetNext(RenameFileNumber)
		if not RenameFileNumber 
			break
		LV_GetText(FileR, RenameFileNumber)
		InputBox, FileName, Название, Введите название файла, , 420, 100, , , , , %FileR%
		If FolderUse = Сохранения
		{
			FileMove %ScriptSave%\%FileR%, %ScriptSave%\%FileName%
		}
		If FolderUse = Бэкапы
		{
			FileMove %ScriptBackup%\%FileR%, %ScriptBackup%\%FileName%
		}
		
		
	}
If ErrorLevel = 1
{
	GuiControl, Text, Status , Переименовывание отменено
	return
}
else
	GuiControl, Text, Status , Переименовывание успешно
	gosub, ReloadList
}
Else
GuiControl, Text, Status , Всё же...необходимо выбрать 
return



Обновить:
GuiControl, Text, Status , Работает. Почти.
Gosub, ReloadList
return

Удалить:
Gui, Submit, nohide
If ConfirmDelete = 1
{
GuiControl, Text, Status , Удаляю..
DeleteFileNumber = 0 
If FolderUse = Сохранения
{
	Loop % LV_GetCount(&quot;Selected&quot;)
	{
		DeleteFileNumber  := LV_GetNext(DeleteFileNumber)
		if not DeleteFileNumber 
			break
		LV_GetText(FileD, DeleteFileNumber)
		FileRecycle, %ScriptSave%\%FileD%
		;msgBox %ScriptSave%\%FileD%
		GuiControl, Text, Status , Удаление успешно
	}
}
If FolderUse = Бэкапы
{
	Loop % LV_GetCount(&quot;Selected&quot;)
	{
		DeleteFileNumber := LV_GetNext(DeleteFileNumber)
		if not DeleteFileNumber 
			break
		LV_GetText(FileD, DeleteFileNumber)
		FileRecycle, %ScriptBackup%\%FileD%
		;msgBox %ScriptBackup%\%FileD%
		GuiControl, Text, Status , Удаление успешно
	}
}
If (LV_GetCount(&quot;Selected&quot;)) = 0
GuiControl, Text, Status , Ты ничего не выбрал :|
gosub, ReloadList
}
Else if ConfirmDelete = 0
{
GuiControl, Text, Status , Подтверди!
GuiControl, Hide, ConfirmDelete
sleep 100
GuiControl, Show, ConfirmDelete
sleep 100
GuiControl, Hide, ConfirmDelete
sleep 100
GuiControl, Show, ConfirmDelete
}
Return


Сохранения:
FolderUse = Сохранения
GuiControl, Text, FolderUse , Сохранения
gosub, ReloadList
return


Бэкапы:
FolderUse = Бэкапы
GuiControl, Text, FolderUse , Бэкапы
gosub, ReloadList
return

ReloadList:
LV_Delete()
If LV_GetCount() = 0
{
	If FolderUse = Сохранения
	{
		Loop, %ScriptSave%\*.%FileType%
		LV_Add(&quot;&quot;, A_LoopFileName)
		LV_ModifyCol()
		
	}
	Else if FolderUse = Бэкапы
	{
		Loop, %ScriptBackup%\*.%FileType%
		LV_Add(&quot;&quot;, A_LoopFileName)
		LV_ModifyCol()
	}
}
return

; 					Окно смена игры
СменитьИгру:
Gui, СменаИгры:Submit

If GameChoice = Dark Souls 3
{
	Game := &quot;DS3&quot;
}
If GameChoice = Dark Souls II Scholar of the First Sin
{
	Game := &quot;DS2SoF&quot;
}
If GameChoice = Dragon&#039;s Dogma Dark Arisen
{
	Game := &quot;DDDA&quot;
}
; Ниже есть настройки для этих игр:
; Dark Souls II Scholar of the First Sin
; Dark Souls 3
; Dragon&#039;s Dogma Dark Arisen
If Game = DS2SoF
{
	GameFolder = %Appdata%\DarkSoulsII
	GameSave = %GameFolder%\0140000100000001
	ScriptSave = %GameFolder%\Сохранения\Сохранения скрипта
	ScriptBackup = %GameFolder%\Сохранения\Сохранения скрипта\Бэкапы
	SaveFileName = DS2SOFS0000.sl2
	FileType = sl2
	FileCreateDir, %GameFolder%\Сохранения
	FileCreateDir, %GameFolder%\Сохранения\Сохранения скрипта
	FileCreateDir, %GameFolder%\Сохранения\Сохранения скрипта\Бэкапы
	FolderUse = Сохранения
}
If Game = DS3
{
	GameFolder = %Appdata%\DarkSoulsIII
	GameSave = %GameFolder%\0110000100000666
	ScriptSave = %GameFolder%\Сохранения\Сохранения скрипта
	ScriptBackup = %GameFolder%\Сохранения\Сохранения скрипта\Бэкапы
	SaveFileName = DS30000.sl2
	FileType = sl2
	FileCreateDir, %GameFolder%\Сохранения
	FileCreateDir, %GameFolder%\Сохранения\Сохранения скрипта
	FileCreateDir, %GameFolder%\Сохранения\Сохранения скрипта\Бэкапы
	FolderUse = Сохранения
}
If Game = DDDA
{
	GameFolder = %DDDAFolder%
	GameSave = %DDDAFolder%\Steam\MEX\remote
	ScriptSave = %GameFolder%\Steam\MEX\Сохранения\Сохранения скрипта
	ScriptBackup = %GameFolder%\Steam\MEX\Сохранения\Сохранения скрипта\Бэкапы
	SaveFileName = DDDA.sav
	FileType = sav
	FileCreateDir, %GameFolder%\Steam\MEX\Сохранения
	FileCreateDir, %GameFolder%\Steam\MEX\Сохранения\Сохранения скрипта
	FileCreateDir, %GameFolder%\Steam\MEX\Сохранения\Сохранения скрипта\Бэкапы
	FolderUse = Сохранения
}
Sleep 150
gosub, ReloadList
return
ОтменаСменыИгры:
Gui, СменаИгры:Hide 
return

;

UpdateTimeBackup:
FileGetTime, TimeB, %GameSave%\%SaveFileName%
FormatTime, TimeB, %TimeB%,  yy.MM.dd H;mm
return

GuiClose:
MsgBox % A_DefaultGui &quot; &quot; A_DefaultListView 
Return
GuiContextMenu:
If WindowCreated = No
{
Gui, СменаИгры:New,, Смена Игры
Gui,  СменаИгры:Add, Text, vText1
Gui,  СменаИгры:Add, Text, vText2
Gui,  СменаИгры:Add, Text, vText3
Gui,  СменаИгры:Add, DropDownList, x10 y120 vGameChoice Choose1 w380, Dark Souls 3|Dark Souls II Scholar of the First Sin|Dragon&#039;s Dogma Dark Arisen
Gui, СменаИгры:Add, Button,y165 x300 gСменитьИгру , Сменить игру
Gui, СменаИгры:Add, Button,y165 x247 gОтменаСменыИгры , Отмена
WindowCreated = Yes
}

Gui, СменаИгры:Show, h200 w400
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[AdcB]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=39402</uri>
			</author>
			<updated>2020-06-24T01:42:28Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=140275#p140275</id>
		</entry>
</feed>
