purebasic.info

PureBasic forum
Текущее время: Вс окт 20, 2019 9:17 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
СообщениеДобавлено: Вт окт 08, 2019 6:43 pm 
Не в сети
профессор

Зарегистрирован: Сб фев 06, 2016 6:18 pm
Сообщений: 330
Благодарил (а): 14 раз.
Поблагодарили: 40 раз.
Пункты репутации: 2
Я никогда так не делал, сегодня, интереса ради поэкспериментировал. И нате вам, в данном случае память не растет, это нормально? :?
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#Gadget = 0
#Test = 1
 
OpenWindow(0, 0, 0, 120, 70, "", #PB_Window_SystemMenu|1)
ButtonGadget(#Gadget, 10, 15, 100, 20 , "->")
Repeat
  Event.l = WaitWindowEvent()
  If Event = #PB_Event_Gadget And EventGadget() = 0
    For i = 0 To 10000
      ButtonGadget(#Test, 10, 40, 100, 20, Str(i))
    Next i
  EndIf
Until Event = #PB_Event_CloseWindow
End



Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт окт 08, 2019 7:32 pm 
Не в сети
профессор

Зарегистрирован: Чт сен 22, 2011 6:21 pm
Сообщений: 293
Благодарил (а): 41 раз.
Поблагодарили: 29 раз.
Пункты репутации: 0
Название темы противоречит наблюдаемому результату :D
Тут возможно несколько версий:
1) Фред предусмотрел удаление предыдущего гаджета, при создании нового с тем-же номером.
2) Расход памяти на гаджет мал, и утечка не видна (теряется в заранее выделенной области).

зы. скорее первое
зызы. надежней удалять руками и не париться.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт окт 08, 2019 8:07 pm 
Не в сети
профессор

Зарегистрирован: Сб фев 06, 2016 6:18 pm
Сообщений: 330
Благодарил (а): 14 раз.
Поблагодарили: 40 раз.
Пункты репутации: 2
Kuzmat писал(а):
Название темы противоречит наблюдаемому результату :D
Кто его знает :) Лучше, конечно, так не делать а то мало ли, может не на каждый гаджет предусмотрено. :?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт окт 08, 2019 8:28 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11536
Благодарил (а): 4 раз.
Поблагодарили: 473 раз.
repeat писал(а):
И нате вам, в данном случае память не растет, это нормально?
Почему она должна расти? Если ID уже есть, предыдущий объект уничтожается перед созданием нового.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт окт 08, 2019 8:52 pm 
Не в сети
профессор

Зарегистрирован: Сб фев 06, 2016 6:18 pm
Сообщений: 330
Благодарил (а): 14 раз.
Поблагодарили: 40 раз.
Пункты репутации: 2
Пётр писал(а):
предыдущий объект уничтожается перед созданием нового.
О! это хорошо :)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт окт 08, 2019 8:56 pm 
Не в сети
профессор

Зарегистрирован: Пн июл 22, 2013 11:00 pm
Сообщений: 909
Благодарил (а): 2 раз.
Поблагодарили: 45 раз.
Пункты репутации: 9
Может проверяется в списке(они в список ложатся) и есле ранее был создан с этим номером то просто не создаётся? :roll:
попробуй создать сотню другую с разными ид и после запусти свой тест а после тоже самое только в два раза больше и типа увеличится ли проверка есле имеет быть то как бы время должно вырости. :roll:
PS: Но скорее уничтожается так как есть типа смена размеров(не проверяет же размерность каждого окна,проще наверное уничтожить)? :D


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт окт 08, 2019 9:38 pm 
Не в сети
профессор

Зарегистрирован: Сб фев 06, 2016 6:18 pm
Сообщений: 330
Благодарил (а): 14 раз.
Поблагодарили: 40 раз.
Пункты репутации: 2
Сергейчик писал(а):
так как есть типа смена размеров
А еще Text$ его тоже нужно менять. Вот так пробую:
Код:
1
2
3
4
5
6
7
8
9
10
11
#Test = 0
 
OpenWindow(0, 0, 0, 120, 30, "", #PB_Window_SystemMenu|1)
For i = 0 To 10
  ButtonGadget(#Test, 10, 6, 100, 20 , "Test")
  Debug GadgetID(#Test)
Next i
Repeat
  Event.l = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
End

ID меняется :? Вот думаю - если пишется по одному адресу, то зачем менять ID? Выделяется память для данных, всему этому делу присваивается ID, если гаджет пересоздается то разница только в длине строки, остальные параметры (#Gadget, x, y, Width, Height, ... [, Flags]) по 4байта, и Text$ по идее, это указатель не? :? Видимо оно таки очищается и всё по-новой.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB