purebasic.info

PureBasic forum
Текущее время: Пн июл 16, 2018 11:25 pm

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




Начать новую тему Ответить на тему  [ Сообщений: 65 ]  На страницу 1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Выходной код
СообщениеДобавлено: Пн мар 30, 2015 6:56 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс дек 09, 2012 9:02 pm
Сообщений: 771
Откуда: Дагестан
Благодарил (а): 0 раз.
Поблагодарили: 11 раз.
Пункты репутации: 0
Какой по вашему мнению, должен генерировать код "дизайнер"?
Пример генератора кода
Вложение:
CreateCode.zip [684.4 KiB]
Скачиваний: 95


Последний раз редактировалось mestnyi Вт апр 28, 2015 9:50 pm, всего редактировалось 8 раз(а).

Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Выходной код
СообщениеДобавлено: Пн мар 30, 2015 8:31 pm 
Не в сети
PureBasic Coder
Аватар пользователя

Зарегистрирован: Чт ноя 10, 2011 10:50 am
Сообщений: 4049
Откуда: Ростов-на-Дону
Благодарил (а): 70 раз.
Поблагодарили: 81 раз.
Пункты репутации: 24
Дизайнер должен еще дать возможность писать код для событий. Например, создал кнопку, выбираешь "Нажатие", и пишешь код. И это все в цикл или callback пихается потом

_________________
Пурик - лучший язык программирования


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Выходной код
СообщениеДобавлено: Пн мар 30, 2015 9:21 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс дек 09, 2012 9:02 pm
Сообщений: 771
Откуда: Дагестан
Благодарил (а): 0 раз.
Поблагодарили: 11 раз.
Пункты репутации: 0
Цитата:
Дизайнер должен еще дать возможность писать код для событий

Это все будет. Не переживай. :D Почему я спрашиваю, к примеру код который генерирует "родной дизайнер" не очень мне нравится.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Выходной код
СообщениеДобавлено: Вт мар 31, 2015 3:57 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс дек 09, 2012 9:02 pm
Сообщений: 771
Откуда: Дагестан
Благодарил (а): 0 раз.
Поблагодарили: 11 раз.
Пункты репутации: 0
Нету что ли идеи, как должен выглядеть код?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Выходной код
СообщениеДобавлено: Вт мар 31, 2015 4:14 pm 
Не в сети
профессор

Зарегистрирован: Вс июн 10, 2012 8:18 am
Сообщений: 1294
Благодарил (а): 60 раз.
Поблагодарили: 49 раз.
Пункты репутации: 14
mestnyi писал(а):
код который генерирует "родной дизайнер" не очень мне нравится.

Чем? Если ты про выносную процедуру Window_0_Events(), то по моему вполне удобно, особенно когда много окон. Только, как говорит Никита, не хватает генерации кода событий.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Выходной код
СообщениеДобавлено: Вт мар 31, 2015 4:42 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пт янв 27, 2012 7:12 pm
Сообщений: 880
Откуда: Кустанай
Благодарил (а): 27 раз.
Поблагодарили: 13 раз.
Пункты репутации: 7
mestnyi писал(а):
Нету что ли идеи, как должен выглядеть код?

Я мало редактором пользовался, но мне там не хватало вывода картинок на форму, например ImageButton и т.д.
Ну а вообще скачайте тот же визуал барсик и скомуниздите оттуда всё, что можно скамуниздить, так быстрее будет, чем ждать ответов.
А начинание отличное и очень полезное.

_________________
Детям нельзя в интернет. От детей интернет тупеет.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Выходной код
СообщениеДобавлено: Вт мар 31, 2015 9:09 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Чт июн 25, 2009 1:02 pm
Сообщений: 2277
Откуда: Russia — Belarus
Благодарил (а): 5 раз.
Поблагодарили: 72 раз.
Пункты репутации: 11
mestnyi писал(а):
Нету что ли идеи, как должен выглядеть код?

Вот именно, потому что этот код очень индивидуален для каждого проекта. Я например для каждого окна, гаджета и т.п. использую его ID как константу, также нужна обработка ошибок. Т.е. например если окно не удалось открыть, то пишется ошибка "Не удалось создать окно программы" и End.
По этому какой бы код твой дизайнер не генерировал — его всё-равно придется дополнять.

_________________
EnableExplicit User


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Выходной код
СообщениеДобавлено: Вт мар 31, 2015 9:45 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс дек 09, 2012 9:02 pm
Сообщений: 771
Откуда: Дагестан
Благодарил (а): 0 раз.
Поблагодарили: 11 раз.
Пункты репутации: 0
переместил в начало топика


Последний раз редактировалось mestnyi Вт апр 07, 2015 3:07 pm, всего редактировалось 5 раз(а).

Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Выходной код
СообщениеДобавлено: Вт мар 31, 2015 10:40 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс дек 09, 2012 9:02 pm
Сообщений: 771
Откуда: Дагестан
Благодарил (а): 0 раз.
Поблагодарили: 11 раз.
Пункты репутации: 0
Цитата:
использую его ID как константу, также нужна обработка ошибок

Это же реально сделать. :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Выходной код
СообщениеДобавлено: Вт мар 31, 2015 11:16 pm 
Не в сети
PureBasic Coder
Аватар пользователя

Зарегистрирован: Чт ноя 10, 2011 10:50 am
Сообщений: 4049
Откуда: Ростов-на-Дону
Благодарил (а): 70 раз.
Поблагодарили: 81 раз.
Пункты репутации: 24
Местный, кароче, с тебя визуал студия, заточенная под пурик :D

_________________
Пурик - лучший язык программирования


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Выходной код
СообщениеДобавлено: Ср апр 01, 2015 6:02 am 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс дек 09, 2012 9:02 pm
Сообщений: 771
Откуда: Дагестан
Благодарил (а): 0 раз.
Поблагодарили: 11 раз.
Пункты репутации: 0
Цитата:
Местный, кароче, с тебя визуал студия, заточенная под пурик

Это значить, что мой код приемлем? :D


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Выходной код
СообщениеДобавлено: Ср апр 01, 2015 6:39 am 
Не в сети
профессор

Зарегистрирован: Чт сен 22, 2011 6:21 pm
Сообщений: 230
Благодарил (а): 31 раз.
Поблагодарили: 22 раз.
Пункты репутации: 0
ну как сказать :D
Изображение


Вложения:
err.JPG [8.35 KiB]
Скачиваний: 0
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Выходной код
СообщениеДобавлено: Ср апр 01, 2015 7:39 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6321
Благодарил (а): 19 раз.
Поблагодарили: 189 раз.
Пункты репутации: 48
mestnyi писал(а):
Цитата:
Дизайнер должен еще дать возможность писать код для событий

Это все будет. Не переживай. :D Почему я спрашиваю, к примеру код который генерирует "родной дизайнер" не очень мне нравится.

Вы сами то определитесь, что это будет
а) Визуальный дизайнер форм
или
б) Визуальная среда программирования

Продуктов группы "а" для Пурика достаточно много, включая встроенный инструмент "Формы" или тот же PureForm от Philippe Guntz.
Выходной код построен по принципам процедурного программирования, содержит 1 или 2 основных файла.
Подходит для начального наброска формы и элементов. При дальнейшей коррекции формы и написания кода неудобны, т.к. по определению Визуальный дизайнер форм не предназначен для написания кода программы в целом.

Продуктов группы "б" для Пурика нет. Проект обычно содержит множество связанных файлов, от 3 до десятков, которые просто нереально собрать в exe без исходной среды программирования.
Особенностью является обычно то, что программист не видит исходный код формы и элементов на ней, а только код программы, который генерируется автоматически средой или пишется программистом.
Т.о. Визуальная среда программирования берет на себя полностью функцию генерирования кода для видимых элементов формы в соответствии с настройками. При изменении настроек или добавлении элементов код формы оперативно корректируется. Видимый код написанный программистом при этом не уничтожается и не изменяется.
А раз мы не видим код формы, то и отпадает вопрос каким он должен быть. Он невидим, руками не корректируем, но должен работать так, как спроектировал программист.

_________________
read-only


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Выходной код
СообщениеДобавлено: Ср апр 01, 2015 9:14 am 
Не в сети
профессор

Зарегистрирован: Вс июн 10, 2012 8:18 am
Сообщений: 1294
Благодарил (а): 60 раз.
Поблагодарили: 49 раз.
Пункты репутации: 14
mestnyi писал(а):
Это значить, что мой код приемлем? :D

Да, только он не работает без поправок :)
Вообще, к любой конструкции кода можно привыкнуть, если эта конструкция будет удобной и логически обоснованной, или просто не будет создавать неудобств.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Выходной код
СообщениеДобавлено: Ср апр 01, 2015 8:10 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Вс дек 09, 2012 9:02 pm
Сообщений: 771
Откуда: Дагестан
Благодарил (а): 0 раз.
Поблагодарили: 11 раз.
Пункты репутации: 0
Цитата:
Вы сами то определитесь, что это будет
а) Визуальный дизайнер форм
или
б) Визуальная среда программирования

Честно сказать, ни то ни другое мне не подходить.
Цитата:
Подходит для начального наброска формы и элементов.
При дальнейшей коррекции формы и написания кода неудобны.

потому что
я этого не хочу
Цитата:
Особенностью является обычно то, что программист не видит исходный код формы и элементов на ней

и этого не хочу.
Вот что я хочу
1) чтобы в дальнейшем при написании кода, писать как можно меньше кода и при желании иметь доступ к любому куску кода.
2) чтобы любой код не зависимо, на чем был написан (пурекод) где есть визуальные элементы можно было визуально изменить.
3) чтобы генерировать свой оптимальный код который логичен удобен.

Вот код c константами как я думаю будет удобный
Код:
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
EnableExplicit
 
Enumeration Window
  #Form_0
  #Form_1
EndEnumeration
 
Enumeration Gadget
  #Form_0_Button_0
  #Form_1_String_0
EndEnumeration
 
 
Procedure Form_1_Gadget_Event( )
  Select EventGadget( )
    Case #Form_1_String_0
     
  EndSelect
EndProcedure
 
Procedure Form_1_Gadget( Window, Width, Height )
    StringGadget(#Form_1_String_0, 10, 10, 100, 30,"String_0")
   
  BindEvent( #PB_Event_Gadget, @Form_1_Gadget_Event(), Window )
EndProcedure
 
Procedure Form_1_Open( ParentID = 0, Flags = 13107200, Width = 400, Height = 200 )
 Static Window = #Form_1
  If IsWindow( Window ) :HideWindow( Window, #False, Flags ) :Else
    OpenWindow( Window, 0, 0, Width, Height, "Form_1", Flags, ParentID )
    Form_1_Gadget( Window, Width, Height )
  EndIf
  ProcedureReturn Window
EndProcedure
 
Procedure Form_1_Event( Event, Window )
  Select Event
    Case #PB_Event_CloseWindow
      CloseWindow( Window )
     
  EndSelect
  ProcedureReturn #True
EndProcedure
 
 
 
Procedure Form_0_Gadget_Event( )
  Select EventGadget( )
    Case #Form_0_Button_0
     
  EndSelect
EndProcedure
 
Procedure Form_0_Gadget( Window, Width, Height )
    ButtonGadget(#Form_0_Button_0, 10, 10, 100, 30,"Button_0")
   
  BindEvent( #PB_Event_Gadget, @Form_0_Gadget_Event(), Window )
EndProcedure
 
Procedure Form_0_Open( ParentID = 0, Flags = 13107200, Width = 400, Height = 200 )
 Static Window = #Form_0
  If IsWindow( Window ) :HideWindow( Window, #False, Flags ) :Else
    OpenWindow( Window, 0, 0, Width, Height, "Form_0", Flags, ParentID )
    Form_0_Gadget( Window, Width, Height )
  EndIf
  ProcedureReturn Window
EndProcedure
 
Procedure Form_0_Event( Event, Window )
  Select Window
    Case #Form_0
      Select Event
        Case #PB_Event_CloseWindow
          CloseWindow( Window )
         
      EndSelect
    Case #Form_1 :Form_1_Event( Event, Window )
     
  EndSelect
  ProcedureReturn #True
EndProcedure
 
 
CompilerIf #PB_Compiler_IsMainFile
  Define Event
  Form_0_Open( )
  ResizeWindow(#Form_0,333,333,#PB_Ignore,#PB_Ignore)
 
  Form_1_Open( WindowID(#Form_0))
 
  While Form_0_Event( Event, EventWindow( ))
    If IsWindow( #Form_0 )
      Event = WaitWindowEvent( )
    Else
      Break
    EndIf
  Wend
 
  End
CompilerEndIf
 
DisableExplicit
 


А это с переменными
Код:
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
EnableExplicit
 
Global Form_0
Global Form_1
 
Global Form_0_Button_0
Global Form_1_String_0
 
 
Procedure Form_1_Gadget_Event( )
  Select EventGadget( )
    Case Form_1_String_0
     
  EndSelect
EndProcedure
 
Procedure Form_1_Gadget( Window, Width, Height )
    Form_1_String_0 = StringGadget(#PB_Any, 10, 10, 100, 30,"String_0")
   
  BindEvent( #PB_Event_Gadget, @Form_1_Gadget_Event(), Window )
EndProcedure
 
Procedure Form_1_Open( ParentID = 0, Flags = 13107200, Width = 400, Height = 200 )
 Static Window = #PB_Any
  If IsWindow( Window ) :HideWindow( Window, #False, Flags ) :Else
    Form_1 = OpenWindow( Window, 0, 0, Width, Height, "Form_1", Flags, ParentID ) :Window = Form_1
    Form_1_Gadget( Window, Width, Height )
  EndIf
  ProcedureReturn Window
EndProcedure
 
Procedure Form_1_Event( Event, Window )
  Select Event
    Case #PB_Event_CloseWindow
      CloseWindow( Window )
     
  EndSelect
  ProcedureReturn #True
EndProcedure
 
 
 
Procedure Form_0_Gadget_Event( )
  Select EventGadget( )
    Case Form_0_Button_0
     
  EndSelect
EndProcedure
 
Procedure Form_0_Gadget( Window, Width, Height )
   Form_0_Button_0 = ButtonGadget(#PB_Any, 10, 10, 100, 30,"Button_0")
   
  BindEvent( #PB_Event_Gadget, @Form_0_Gadget_Event(), Window )
EndProcedure
 
Procedure Form_0_Open( ParentID = 0, Flags = 13107200, Width = 400, Height = 200 )
 Static Window = #PB_Any
  If IsWindow( Window ) :HideWindow( Window, #False, Flags ) :Else
    Form_0 = OpenWindow( Window, 0, 0, Width, Height, "Form_0", Flags, ParentID ) :Window = Form_0
    Form_0_Gadget( Window, Width, Height )
  EndIf
  ProcedureReturn Window
EndProcedure
 
Procedure Form_0_Event( Event, Window )
  Select Window
    Case Form_0
      Select Event
        Case #PB_Event_CloseWindow
          CloseWindow( Window )
         
      EndSelect
    Case Form_1 :Form_1_Event( Event, Window )
     
  EndSelect
  ProcedureReturn #True
EndProcedure
 
 
CompilerIf #PB_Compiler_IsMainFile
  Define Event
  Form_0_Open( )
  ResizeWindow(Form_0,333,333,#PB_Ignore,#PB_Ignore)
 
  Form_1_Open( WindowID(Form_0))
 
  While Form_0_Event( Event, EventWindow( ))
    If IsWindow( Form_0 )
      Event = WaitWindowEvent( )
    Else
      Break
    EndIf
  Wend
 
  End
CompilerEndIf
 
DisableExplicit
 



Последний раз редактировалось mestnyi Пт апр 03, 2015 8:49 am, всего редактировалось 1 раз.

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

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


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

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


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

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