Что нового

Неправильная функция?

Статус
Закрыто для дальнейших ответов.

lexaSF

Новичок
Сообщения
182
Репутация
3
Вот кусок кода.Возвращаемое значение _GUICtrlListBox_FindString($List1,$read[$i]) = -1 т.к совподения нет, $FindText = 0 но все равно уменя получается что условие If $FindText = $read[$i] Then выполняется?Это почему так,я уже всю голову сломал :(
Код:
$read = IniReadSectionNames($Dir)
	If @error <> 1 Then
For $i=1 To $read[0]
			MsgBox(0,'',$i)
	$FindStr = _GUICtrlListBox_FindString($List1,$read[$i])
	MsgBox(0,'',$FindStr) ;возвращает -1
	$FindText = _GUICtrlListBox_GetText($List1,$FindStr) ; $findText = 0 здесь
	If $FindText = $read[$i] Then
		MsgBox(0,'',$LB_ERR ); здесь тоже -1
     ExitLoop		
	 Else
_GUICtrlListBox_AddString($List1, $read[$i])
EndIf
Next
EndIf
 

SyDr

Сидра
Сообщения
651
Репутация
158
Re: Проблема с GUI

Это потому что $FindText = $read[$i] :smile:

Зачем вызывать функцию _GUICtrlListBox_GetText() с вторым параметром, равным -1? В справке же сказано, что индексация начинается с нуля.
 
Автор
L

lexaSF

Новичок
Сообщения
182
Репутация
3
Re: Проблема с GUI

но как оно может быть равно read[$i] там же -1 значение?как это можно исправить?


Добавлено:
Сообщение автоматически объединено:

вообще там лист, в котором должно быть автообновление значеий, тоесть я добавил секцию в ини и она сразу же появится в листе
 

SyDr

Сидра
Сообщения
651
Репутация
158
Re: Проблема с GUI

А я нифига не понял. :(

Исправить можно, написав код правильно. Ещё раз повторю, "Зачем вызывать функцию _GUICtrlListBox_GetText() с вторым параметром, равным -1? В справке же сказано, что индексация начинается с нуля."
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 471
Репутация
2 401
Re: Проблема с GUI

lexaSF
Последнее...
Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Как правильно называть темы

[Проблема с GUI] это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, Администратор форума.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 471
Репутация
2 401
Re: Проблема с GUI

И ещё одно...
Предупреждение За нарушение правил форума (пункт Б.2):
Не создавайте одинаковые темы в разных форумах, и/или темы с разными названиями несущие одинаковое содержание.
 
Автор
L

lexaSF

Новичок
Сообщения
182
Репутация
3
Re: Проблема с GUI

Ладно, я просто сначала здесь сделал а потом увидел что есть специальный раздел
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 471
Репутация
2 401
Re: Проблема с GUI

lexaSF [?]
я просто сначала здесь сделал а потом увидел что есть специальный раздел
Ну так попросил бы модераторов перенести...

А что с названием темы?
 
Автор
L

lexaSF

Новичок
Сообщения
182
Репутация
3
Re: Проблема с GUI

Блин, я не знаю как ее по другому назвать.Оставь плиз так
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 471
Репутация
2 401
Re: Проблема с GUI

lexaSF [?]
Блин, я не знаю как ее по другому назвать.Оставь плиз так
Мне не хочется под новый год раздавать баны, поэтому у меня к тебе просьба. Прочитай очень и очень внимательно вот это: Как правильно называть темы

А потом возвращайся сюда, иначе ты не сможешь пользоваться этим форумом в полной мере :(.
 
Автор
L

lexaSF

Новичок
Сообщения
182
Репутация
3
так пойдет?
 

dwerf

Использует ArchLinux
Сообщения
478
Репутация
218
lexaSF [?]
Вряд ли. Имхо: должно быть что то об условии, которое не выполняется.

По теме: поставьте перед условием MsgBox с переменными, сравните значения "вручную"
Код:
MsgBox(0, '', $FindText & @CRLF & $read[$i])
If $FindText = $read[$i] Then


Если не разберётесь, скопируйте чтоли инифайл и весь скрипт сюда.

А вообще SyDr направляет вас в верном направлении. Если _GUICtrlListBox_FindString не нашёл ничего, значит там этого текста нет. Из этого нужно исходить в дальнейших действиях.
 
Автор
L

lexaSF

Новичок
Сообщения
182
Репутация
3
Я пробовал, вот весь скрипт:
Код:
#include <GUIConstants.au3>
#Include <GuiComboBox.au3>
#Include <GuiListBox.au3>

$Dir = @DesktopDir & '\ini.ini'

#Region ### START Koda GUI section ### Form=
$Form1_1_1 = GUICreate("Form1", 376, 322, 370, 266)
GUISetIcon("C:\Users\Lexa\Desktop\heroic_autobots.ico")
GUISetBkColor(0xB9D1EA)
$Label1 = GUICtrlCreateLabel("SID", 16, 128, 35, 24)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Input1 = GUICtrlCreateInput("", 16, 56, 169, 21)
$Label2 = GUICtrlCreateLabel("Name", 16, 32, 50, 24)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Input2 = GUICtrlCreateInput("", 16, 152, 169, 21)
$Label3 = GUICtrlCreateLabel("ID", 16, 80, 23, 24)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Input3 = GUICtrlCreateInput("", 16, 104, 169, 21)
$Label4 = GUICtrlCreateLabel("Server", 16, 176, 56, 24)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Input4 = GUICtrlCreateInput("", 16, 200, 169, 21)
$Button1 = GUICtrlCreateButton("Save", 16, 280, 73, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Button2 = GUICtrlCreateButton("Delete", 208, 280, 73, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$List1 = GUICtrlCreateList("", 208, 104, 153, 162)
$Button3 = GUICtrlCreateButton("Clear", 112, 280, 73, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Button4 = GUICtrlCreateButton("Edit", 289, 280, 73, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Label5 = GUICtrlCreateLabel("  Load Settings", 224, 0, 122, 26)
GUICtrlSetFont(-1, 12, 800, 0, "Constantia")
$Combo1 = GUICtrlCreateCombo("None", 208, 56, 153, 25)
GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
$Combo2 = GUICtrlCreateCombo("None", 16, 248, 169, 25)
GUICtrlSetData(-1, "1-1|1-2|1-3|1-4|1-5|1-6|1-7|1-8|2-1|2-2|2-3|2-4|2-5|2-6|2-7|2-8|3-1|3-2|3-3|3-4|3-5|3-6|3-7|3-8|4-1|4-2|4-3|4-5")
GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
$Label6 = GUICtrlCreateLabel("Account", 72, 0, 67, 23)
GUICtrlSetFont(-1, 12, 800, 0, "Constantia")
$Label7 = GUICtrlCreateLabel("Map", 16, 224, 32, 22)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
GUISetState(@SW_SHOW)
_GUICtrlListBox_AddFile($Combo2,'*.udb')
#EndRegion ### END Koda GUI section ###


While 1
	$read = IniReadSectionNames($Dir)
	If @error <> 1 Then
For $i=1 To $read[0]
			MsgBox(0,'',$i)
	$FindStr = _GUICtrlListBox_FindString($List1,$read[$i])
	$FindText = _GUICtrlListBox_GetText($List1,$FindStr)
	If $FindText = $read[$i] Then
	 Else
_GUICtrlListBox_AddString($List1, $read[$i])
EndIf
Next
EndIf
$read = IniReadSectionNames($Dir)
$name = GUICtrlRead($Input1)
$sid = GUICtrlRead($Input2)
$id = GUICtrlRead($Input3)
$serv = GUICtrlRead($Input4)
$map = GUICtrlRead($Combo2)
	$nMsg = GUIGetMsg()
	Switch $nMsg
	Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			IniWrite( $Dir,$name, "SID",$sid)
			IniWrite( $Dir,$name, "ID",$id)
			IniWrite( $Dir,$name, "SERVER",$serv)
			IniWrite( $Dir,$name, "MAP",_GUICtrlComboBox_GetCurSel($Combo2))
			IniWrite( $Dir,$name, "SETTING",
		Case $Button2
			$Marker = _GUICtrlListBox_GetCaretIndex($List1)
			$StrText = _GUICtrlListBox_GetText($List1,$Marker)
			_GUICtrlListBox_DeleteString($List1, $Marker)
			IniDelete($Dir,$StrText)
		EndSwitch
WEnd

Ини файл:

INI:
[lexa]
SID=1111
ID=lexa.1
SERVER=111
MAP=4
[eew]
SID=ewew
ID=weewwe
SERVER=weewwe
MAP=4
[eewe]
SID=ewew
ID=weewwe
SERVER=weewwe
MAP=4
[eewee]
SID=ewew
ID=weewwe
SERVER=weewwe
MAP=4
 
Статус
Закрыто для дальнейших ответов.
Верх