purebasic.info

PureBasic forum
Текущее время: Чт янв 18, 2018 12:57 am

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




Начать новую тему Ответить на тему  [ Сообщений: 46 ]  На страницу Пред.  1, 2, 3, 4
Автор Сообщение
СообщениеДобавлено: Пт мар 20, 2015 8:43 am 
Не в сети
профессор

Зарегистрирован: Вт мар 24, 2009 11:54 am
Сообщений: 354
Благодарил (а): 13 раз.
Поблагодарили: 18 раз.
Пункты репутации: 19
Вопрос решен. Оказывается необходимо использовать InitializeStructure(*object, _iTransport) и все нормально работает. Код ниже. :D

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
;-CLASS INTERFACE
 
Interface iTransport
  RedrawBuffer()
EndInterface
 
;-CLASS TEMPLATE
 
Structure _iGadget
  x.l:y.l
  w.l:h.l
 
  dx.l:dy.l
 
  type.l ;
  hide.l
  on.l
  flag.l
 
  image_id_1.l
  image_id_2.l
  image_id_3.l
EndStructure
 
Structure _iTransport
  *vTable
 
  image_id_1.l; buf 1
  image_id_2.l; buf 2
  flip.l      ; flip buf  
  Map _iGadget._iGadget()
EndStructure
 
Procedure AddTransportGUIObject(W.l,H.l)
  Protected *object._iTransport
  *object = AllocateMemory(SizeOf(_iTransport))
  InitializeStructure(*object, _iTransport)
    If *object
      ;Make sure the *vTable field points to our virtual table.
        *object\vTable = ?VTable_TransportGUIClass
      ;Initialise track
        *object\image_id_1=CreateImage(#PB_Any,W,H)
        *object\image_id_2=CreateImage(#PB_Any,W,H)
       
        *object\_iGadget("Test")\x=0
       
       
       
    EndIf
  ;Return a pointer to our object.
    ProcedureReturn *object
EndProcedure
 
Procedure TransportClass_RedrawBuffer(*this._iTransport)
 
EndProcedure  
 
iTransport.iTransport=AddTransportGUIObject(10,10)
 
;***************************************************
DataSection
  VTable_TransportGUIClass:
   Data.i @TransportClass_RedrawBuffer()
EndDataSection



Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 46 ]  На страницу Пред.  1, 2, 3, 4

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


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

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


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

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