forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Visual Basic (http://forum.boolean.name/forumdisplay.php?f=62)
-   -   Проблемы с переводом (http://forum.boolean.name/showthread.php?t=12664)

Лit}{Ъ 05.07.2010 14:44

Ответ: Проблемы с переводом
 
Я вроде сказал. Перевожу программу с VB 6.0 на VB 2010.
Я что то не понял смысла второго прндложения, можно на чуть более руском?

Dream 05.07.2010 14:56

Ответ: Проблемы с переводом
 
что не понятно? для того чтобы сделать Read|Write, если такого файла нет, прога попытается его создать, что, если у юзера нету прав на создание этого файла, в этом месте, повлечёт за собой обвал программы, или вылет до ближайшего обработчика.

Лit}{Ъ 10.07.2010 12:17

Ответ: Проблемы с переводом
 
Я вообшето спрашивал про второе предложение а не про вторую строчку! Сажу подругому - что значит:" Узать костыль совместимости со старым VB это верх идиотизма при наличии прекрасного BinaryReader."

Что за BinaryReader и костыль совместимости?

pax 10.07.2010 12:46

Ответ: Проблемы с переводом
 
Костыль совместимости это Microsoft.VisualBasic.*
BinaryReader - это средство бинарного чтения из потоков данных, например из файловых потоков, в структуре Net Framework.

Для операций ввода/вывода в Net обычно используются классы пространства имен System.IO

Лit}{Ъ 28.07.2010 19:47

Ответ: Проблемы с переводом
 
Кто нибудь знает как в 2010 называются константы с кодами клавиш? В 6.0 были vbKeyLeft, vbKeyUp, vbKeyW а здесь как? (Подскажите пудь до класса содержащего оные)

pax 28.07.2010 21:18

Ответ: Проблемы с переводом
 
Ну если использовать события Windows.Forms, то тебе нужно перечисление System.Windows.Forms.Keys

Лit}{Ъ 28.07.2010 22:29

Ответ: Проблемы с переводом
 
Спс...
Подскажите пожалуйста как в ВБ 2010 ведётся отладка! Я исправил все ошибки компиляции выставляю Solution Configurations на Debug жму F5 - результат чёрный экран, курсор часиками, загрузка цп сначала поднимается до 100 потом падает до нуля и ничего не происходит! Открываю диспетчер - процес проекта (который уже запущенная форма) не отвечает (просто свернуть не получается) - завершаю - у окошка Vb на секунду появляется сообщение об ошибке с решениями и сразу проподает... Что я не так делаю?:''((

pax 28.07.2010 22:37

Ответ: Проблемы с переводом
 
Черный экран? В смысле консоль? Приложение Windows.Forms или консольное?

Лit}{Ъ 28.07.2010 22:59

Ответ: Проблемы с переводом
 
Windows Forms. С Директ Х в фул скрине.

pax 28.07.2010 23:01

Ответ: Проблемы с переводом
 
Код главного цикла посмотреть можно? Как он реализован?

Лit}{Ъ 28.07.2010 23:07

Ответ: Проблемы с переводом
 
А что считать главным циклом? У меня там всё через таймеры (приложение должно неприрывно реиндинговать и отображать картинку).

Вопрос вообще в том как настроить ВБ в режим отладки. 6.0 при таких случаях после завершения работы выделял строчку на которой стопорнулся и объяснял суть ошибки - как добится этого от 2010?

pax 28.07.2010 23:14

Ответ: Проблемы с переводом
 
Таймерами никто не делает, главный цикл - это цикл отрисовки. Мне кажется в Managed.DirectX должен быть каркас приложения, вызывающий функции отрисовки во время простоя приложения, когда нет оконных сообщений.

Лit}{Ъ 28.07.2010 23:29

Ответ: Проблемы с переводом
 
??? :4to: Жуть! Я думал циклы используются только в ДОС приложениях или конечных программмах. Все исходники что я видел были с таймерами. Вот я ими и пользуюсь раз в N милисекунд обновляю картинку на экране и радуюсь!

А почему не делают то?

Лit}{Ъ 28.07.2010 23:34

Ответ: Проблемы с переводом
 
Я раз в 30 милли секунд обращаюсь к

Код:

Private Shared Sub Reinder_Timer()
  Dim A As String, I1 As Long, Re As RECT, B As Long
  Re.Bottom = 1000
  Re.Right = 1000
  If UP2D.DirectDraw = True Then
  For I = 1 To UP2D.NDisp Step 1
    UP2D.Display(I).XCam = UpPhiz.Body(I).Dat.Znach(1) - UP2D.Kartinka(I).RECT(0, 0).Right / 2
    UP2D.Display(I).YCam = UpPhiz.Body(I).Dat.Znach(2) - UP2D.Kartinka(I).RECT(0, 0).Bottom / 2
  Next I
  For I = 1 To UpPhiz.NPhB Step 1
    A = A + " " + CStr(UpPhiz.Body(I).Active)
  Next I
  Call UpSo.Zvuchi()
  Call UP2D.StartDraw()
  For I = 1 To UpGP.Nn Step 1
    Call UpGP.See(I)
    Call UpSo.Lissen(I)
  Next I
  For I1 = 1 To UP2D.NDisp Step 1
    With UpSo.Ears(UpPhiz.Body(I1).Dat.Znach(13))
    For I = 1 To .Ind(0) Step 1
      If UpSo.Zvuk(.Ind(I)).Taim = 1 Then
      Call UpSo.Play(UpSo.Zvuk(.Ind(I)).Tip)
      End If
    Next I
    End With
    With UpGP.Glaza(UpPhiz.Body(I1).Dat.Znach(13))
    For I = 1 To .Ind(0) Step 1
      B = .Ind(I)
      With UpPhiz.Body(B).Dat
      Call UP2D.Draw(UpPhiz.Body(B).Tip, I1, CLng(.Znach(1)), CLng(.Znach(2)), UP2D.Pha(.Znach(3)), CLng(.Znach(10)), UpPhiz.Body(B).Phase)  'Risovanie kartinki
      End With
    Next I
    End With
  Next I1
  Call UP2D.EndDraw()
  End If
 End Sub


pax 28.07.2010 23:36

Ответ: Проблемы с переводом
 
Потому что между значений с таймерами может случиться перерисовка формы, которая не предусмотрена.

Самый простой способ отрисовки в цикле, это в перегруженной функции OnPaint формы в конце написать Invalidate(), что приведет к новой перерисовке снова и снова.


Часовой пояс GMT +4, время: 23:21.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot