|
16.09.2010, 17:48
|
#46
|
ПроЭктировщик
Регистрация: 24.10.2009
Сообщений: 143
Написано 5 полезных сообщений (для 7 пользователей)
|
Ответ: Проблемы с переводом
Я нарыл исходник с бесконечным циклом отриссовки и оконным режимом. Возникли следующие вопросы:
Что обозначает строка DoEvents перед loop в бесконечном цикле отрисовки?(без неё проект тупо виснет)
Нормально ли что отрисовка в цикле сделана без функции OnPaint?
Что делает метод DirectDrawSurfase7 Blt?
Что за метод Flip, а точнее почему он необходим при FullScreen режиме (в конце для отрисовки), но не требуется в оконном?
__________________
Гомоморфный образ группы - путь во славу коммунизма - изоморфен фактор группе по ядру гомоморфизма.
|
(Offline)
|
|
16.09.2010, 20:52
|
#47
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Проблемы с переводом
1. DoEvents - выполняет цикл по оконным сообщениям, необходим для правильной работы окна. Если его убрать, то окно не сдвинешь с места и возможно не будет верной отрисовка. Так что он обязателен.
2. Нормально.
3. Понятия не имею, т.к. с DerectDraw не работал, возможно что-то связанное с синхронизацией буферов или блоков памяти. Вот нашел описание - ссылка http://www.gamedev.ru/code/forum/?id=36432#m3. Похоже это копирование части или всего сурфэйса в другой сурфэйс.
4. Flip обычно меняет местами передний и задний буферы. Т.е. картинка рисуется на заднем буфере, а потом отображается пользователю полностью. На самом деле в оконном режиме он скорее всего тоже необходим для правильной отрисовки.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
05.10.2010, 18:04
|
#48
|
ПроЭктировщик
Регистрация: 24.10.2009
Сообщений: 143
Написано 5 полезных сообщений (для 7 пользователей)
|
Ответ: Проблемы с переводом
Подскажите плиз. Каким образом в структуре описать НЕ SHARED массив ФИКСИРОВАННОЙ ДЛИННЫ?
(что то духе)
Public Structure a
Public b(100) As Long
End Structure
(только работающее)
__________________
Гомоморфный образ группы - путь во славу коммунизма - изоморфен фактор группе по ядру гомоморфизма.
|
(Offline)
|
|
05.10.2010, 18:25
|
#49
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Проблемы с переводом
В структурах нельзя объявлять массивы сразу фиксированной длины.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
05.10.2010, 22:02
|
#50
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: Проблемы с переводом
Хотел бы уточнить что DoEvents выделяет системе время на обработку событий, в том числе и на отрисовку невалидных областей экрана. В ресурсоемких и долгих по времени циклах рекомендуется ставить чтобы небыло фриза приложения плоть до непрорисовки элементов окна.
__________________
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
|
|
06.10.2010, 14:46
|
#51
|
ПроЭктировщик
Регистрация: 24.10.2009
Сообщений: 143
Написано 5 полезных сообщений (для 7 пользователей)
|
Ответ: Проблемы с переводом
????
А как тогда реатизовать в ВБ 2010 аналог следующего кода в вб 6.0
Public Type A
B(100) as long
End type
__________________
Гомоморфный образ группы - путь во славу коммунизма - изоморфен фактор группе по ядру гомоморфизма.
|
(Offline)
|
|
06.10.2010, 15:01
|
#52
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Проблемы с переводом
А почему бы класс не использовать вместо структуры?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
06.10.2010, 15:34
|
#53
|
ПроЭктировщик
Регистрация: 24.10.2009
Сообщений: 143
Написано 5 полезных сообщений (для 7 пользователей)
|
Ответ: Проблемы с переводом
Я об этом подумывал. Тогда другой вопрос. Как решить nullReferenceExpresion was unhandled: Object reference not set to an instance of an object?(Это выдаётся в случае с классом)
__________________
Гомоморфный образ группы - путь во славу коммунизма - изоморфен фактор группе по ядру гомоморфизма.
|
(Offline)
|
|
06.10.2010, 16:16
|
#54
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Проблемы с переводом
класс надо сначала инициализировать (выделить память под экземпляр при создании с ключевым словом New)
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
06.10.2010, 16:40
|
#55
|
ПроЭктировщик
Регистрация: 24.10.2009
Сообщений: 143
Написано 5 полезных сообщений (для 7 пользователей)
|
Ответ: Проблемы с переводом
А как обойти Arrays cannot be declared with new?
__________________
Гомоморфный образ группы - путь во славу коммунизма - изоморфен фактор группе по ядру гомоморфизма.
|
(Offline)
|
|
06.10.2010, 18:58
|
#56
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Проблемы с переводом
Да что же тут такого сложного
Public Class A Public B(100) As Long End Class
'создание экземпляра класса: Dim _a As A = New A
|
(Offline)
|
|
07.10.2010, 14:22
|
#57
|
ПроЭктировщик
Регистрация: 24.10.2009
Сообщений: 143
Написано 5 полезных сообщений (для 7 пользователей)
|
Ответ: Проблемы с переводом
Простие, вы меня не поняли. Знаю, сам виноват - изяснялся туманно. Про выделение памяти для ПЕРЕМЕННЫХ все было понятно с первого раза. Я переспрашиват как выделять память на МАССИВЫ. Если
Public Class A
Public B(100) As Long
End Class
Public Shared C(100) As new A
То Arrays cannot be declared with 'New'.
если
Public Shared C(100) As A= new A
то Explicit initialization is not permitted for arrays declared with explicit bounds.
Это и сложно...
__________________
Гомоморфный образ группы - путь во славу коммунизма - изоморфен фактор группе по ядру гомоморфизма.
|
(Offline)
|
|
07.10.2010, 15:07
|
#58
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Проблемы с переводом
Нельзя инициализировать массив во время обявления, если у него объявлен размер.
Если надо в другом классе объявить инициализированный массив типа А, то в его статическом конструкторе нужно проинициализировать каждый элемент.
Public Shared C(100) As A
Shared Sub New() For i As Integer = 0 To C.Length - 1 C(i) = New A Next End Sub
|
(Offline)
|
|
07.10.2010, 15:20
|
#59
|
ПроЭктировщик
Регистрация: 24.10.2009
Сообщений: 143
Написано 5 полезных сообщений (для 7 пользователей)
|
Ответ: Проблемы с переводом
О ужас! Куда я попал! ....
Тоесть здравый анлалог (в смысле без гемора инициализации) следующего кода в 2010 невозможен?
Public Type A
b(100) as long
end type
Public a(100) as a
__________________
Гомоморфный образ группы - путь во славу коммунизма - изоморфен фактор группе по ядру гомоморфизма.
|
(Offline)
|
|
07.10.2010, 15:36
|
#60
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Проблемы с переводом
Если не инициализировать, то в каждом элементе второго массива будет Nothing, а не экземпляр класса A.
При использовании структур как выяснилось - запрещается объявлять массивы фиксированный длины.
я вообще на C# программирую
Может нужно что-то проще? зачем объявлять тип для массива?
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:55.
|