Не буду создавать новую тему, продлжу тут....
скажу сразу, что вопрос касаеться типов...
Создал такой тип:
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-ой день и еще не освоил их...