Тема: Непойму...
Показать сообщение отдельно
Старый 24.01.2010, 10:24   #5
ArtemkA
ПроЭктировщик
 
Аватар для ArtemkA
 
Регистрация: 09.10.2008
Адрес: Казань
Сообщений: 137
Написано 7 полезных сообщений
(для 9 пользователей)
Ответ: Непойму...

Не буду создавать новую тему, продлжу тут....
скажу сразу, что вопрос касаеться типов...

Создал такой тип:
Type TButton
	Field Id%
	Field Name$
	Field Menu$
	Field X%
	Field Y%
	Field Width%
	Field Height%
	Field Disabled%
End Type
Функцией добавляю запись:
Function D2D_CreateNewButton(ButtonPatch$,ButtonName$,MenuId$,ButtonX%,ButtonY%,ButtonFlag%=0)
	Buttons.TButton=New TButton
		Buttons\Id%=LoadImage(ButtonPatch$)
		Buttons\Name$=ButtonName$
		Buttons\Menu$=MenuId$
		Buttons\X%=ButtonX%
		Buttons\Y%=ButtonY%
		Buttons\Width%=ImageWidth(Buttons\Id%)
		Buttons\Height%=ImageHeight(Buttons\Id%)
		Buttons\Disabled%=ButtonFlag%
End Function
тут все отлично работает.
Потом создал функцию, которая проверяет, находиться ли указатель мыши над данным элементом или нет.

Function D2D_MouseButtonFree%(ElementId$)
	For MButtons.TButton=Each TButton
		If MButtons\Name$=ElementId$ Then
			If D2D_MX%>MButtons\X% And D2D_MY%>MButtons\Y% And D2D_MX%<MButtons\X%+MButtons\Width% And D2D_MY%<MButtons\Y%+MButtons\Height% Then
				D2D_MouseFree%=1
			Else
				D2D_MouseFree%=0
			EndIf
		Else
			D2D_MouseFree%=3
		EndIf
	Next
	Return D2D_MouseFree%
End Function
Потом пишу так:
D2D_CreateNewButton("Media Files\07.bmp","Option_Button","Option_Menu",200,100,0) ; создаю элемент Button
; и проверяю находиться ли мышь над ним
Text 10,10,D2D_MouseButtonFree("Option_Button")
Но у меня получаеться работать только с последней записью в типе ((( В данном случае Option_Button (функция возвращает 1 если мышь находиться над ним), а если добавить еще одну запись, допустим, New_Button, то уже функция возвратит 3 (элемент не найден). Почему так происходит? Че с добавлением новой записи старые удаляються? Или я проверяю их не так? Вроде цикл For Each проходиться по всем записям в типе....подскажите пожалуйста что,где и как. ) Я с типами работаю только 2-ой день и еще не освоил их...
__________________
Windows 7, AMD Athlon(tn) 64 Procerssor 3500+2.21 ГГц, 1,5 Гб ОЗУ GeForce 7600 GT 256 Мб

http://vkontakte.ru/id25633980 - я тут
(Offline)
 
Ответить с цитированием