Форум программистов, компьютерный форум, киберфорум
Visual FoxPro
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/47: Рейтинг темы: голосов - 47, средняя оценка - 4.77
5 / 5 / 1
Регистрация: 12.08.2010
Сообщений: 151

Передача параметра в запрос

20.12.2011, 13:06. Показов 9593. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени всем. Подскажите, пожалуйста. VFP 9.0, есть форма на ней Грид, беру значение из грида (предполагаю, что беру с первого столбца активной строки) и передаю параметром в другую
C#
1
2
id=thisform.grid1.column1.text1.Text
DO form marry WITH id
во второй форме в Init принимаю
C#
1
2
3
LPARAMETERS id
_screen.AddProperty("My_Spr")
_screen.My_Spr=RTRIM(id)
Вроде же как нах-я в _screen.My_Spr, поэтому в Active второй формы пишу запрос и пытаюсь занести полученные данные в text:
C#
1
2
3
4
SELECT * FROM marry WHERE Number_marry==_screen.My_Spr INTO CURSOR logg
thisform.text1.Value = logg.Number_marry
thisform.text2.Value = logg.surname_g
thisform.text3.Value = _screen.My_Spr
Но, FoxPro дает ошибку - operator operand type mismatch. Если в запросе where написать число то работает правильно. Спасибо. Тип поля в грид Numeric 6.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.12.2011, 13:06
Ответы с готовыми решениями:

Передача параметра в запрос
Доброго времени суток, нужно передать значение поля "ЗначениеСсылка" (тип справочник.ссылка) в запрос. Пишу следующим образом: ...

Передача параметра в запрос
Добрый день. Существует форма. На ней поля "Организация" и "Е-мейл"(Он же АдресЭП). Поле организация связана с соответствующим...

Передача параметра в запрос
ASP.Net Web Forms При регистрации пользователю системой присваивается ключ(UserId , получить его можно с помощью...

20
 Аватар для Redglow
107 / 107 / 0
Регистрация: 06.05.2011
Сообщений: 277
20.12.2011, 13:35
Цитата Сообщение от НеГоДяЙкА Посмотреть сообщение
Доброго времени всем. Подскажите, пожалуйста. VFP 9.0, есть форма на ней Грид, беру значение из грида (предполагаю, что беру с первого столбца активной строки) и передаю параметром в другую
C#
1
2
id=thisform.grid1.column1.text1.Text
DO form marry WITH id
И если у вас изменится порядок и имена столбцов в гриде или источник данных, будете каждый раз лезть в код и перекомпилировать? И не надо предполагать, обычно это плохо заканчивается. У грида есть свойство RecordSource, в котором содержится источник данных. Вот и берите значение Id напрямую:
Code
1
2
3
4
LOCAL lcAlias, lnId
lcAlias = ThisForm.Grid1.RecordSource
lnId = EVALUATE(lcAlias + ".Id")
DO FORM Marry WITH lnId
Цитата Сообщение от НеГоДяЙкА Посмотреть сообщение
во второй форме в Init принимаю
C#
1
2
3
LPARAMETERS id
_screen.AddProperty("My_Spr")
_screen.My_Spr=RTRIM(id)
Стесняюсь спросить, а зачем все эти телодвижения со _Screen? Это свойство будет использоваться еще где-то кроме этой формы? К тому же, Вы не проверяете, существует ли оно уже, поэтому при повторном запуске формы программа вылетит в ошибку.

Цитата Сообщение от НеГоДяЙкА Посмотреть сообщение
Вроде же как нах-я в _screen.My_Spr, поэтому в Active второй формы пишу запрос и пытаюсь занести полученные данные в text:
C#
1
2
3
4
SELECT * FROM marry WHERE Number_marry==_screen.My_Spr INTO CURSOR logg
thisform.text1.Value = logg.Number_marry
thisform.text2.Value = logg.surname_g
thisform.text3.Value = _screen.My_Spr
Создавать курсор в Activate() формы есть плохая затея уже тем, что он будет создаваться каждый раз, когда форма будет получать фокус, т.е. промазали и ткнули мышью мимо формы, затем вернулись на форму - курсор пересоздался, вызвали справочник, вернулись на форму - код снова отработал и т.д.
Если курсор должен создаваться на форме однажды, логичнее перенести его в Init() формы, если же в ходе работы он может быть перевыбран многократно, есть смысл вообще создать отдельный метод и вызывать уже его при необходимости.

Цитата Сообщение от НеГоДяЙкА Посмотреть сообщение
Но, FoxPro дает ошибку - operator operand type mismatch. Если в запросе where написать число то работает правильно. Спасибо. Тип поля в грид Numeric 6.
И не удивительно. Если тип Marry.Number_marry символьный, то свой параметр вы должны преобразовать к символьному типу, если же числовой, тогда не понятно, зачем вы используете оператор символьного сравнения "==".
В свете вышесказанного код должен выглядеть так (предполагая, что тип полей числовой):

SQL
1
2
3
4
5
6
7
8
9
10
* Init()
LPARAMETERS tnId
 
SELECT * FROM Marry WHERE Marry.Number_marry = tnId INTO CURSOR Logg
 
WITH ThisForm
    .text1.Value = Logg.Number_marry
    .text2.Value = Logg.Surname_g
    .text3.Value = tnId
ENDWITH
Естественно, здесь еще нужно проверить, чтобы типы Marry.Number_marry и tnId были одинаковыми и сделать приведение типов с помощью VAL() либо STR() в случае их несовпадения.
1
5 / 5 / 1
Регистрация: 12.08.2010
Сообщений: 151
20.12.2011, 14:10  [ТС]
Большое спасибо за столь широко раскрытый ответ. Я всего второй день над FoxPro и пока еще мало знаю его возможностей.
Цитата Сообщение от Redglow Посмотреть сообщение
У грида есть свойство RecordSource, в котором содержится источник данных. Вот и берите значение Id напрямую
Он почему-то выдавал всегда только первую строку, хотя выделенной строкой были другие. Исправив не запомнив что, он начал выдавать ошибку при загрузки формы с данным гридом. Ошибка - алиас не найден. В какой сфере искать ошибку?


Цитата Сообщение от Redglow Посмотреть сообщение
Создавать курсор в Activate() формы есть плохая затея
не спорю, он мне нужен был для проверки , будет ли запрос не из инита выполняться.
0
 Аватар для Redglow
107 / 107 / 0
Регистрация: 06.05.2011
Сообщений: 277
20.12.2011, 14:16
Цитата Сообщение от НеГоДяЙкА Посмотреть сообщение
Он почему-то выдавал всегда только первую строку, хотя выделенной строкой были другие. Исправив не запомнив что, он начал выдавать ошибку при загрузки формы с данным гридом. Ошибка - алиас не найден.

А можно еще раз, только на этот раз человеческим языком?
0
5 / 5 / 1
Регистрация: 12.08.2010
Сообщений: 151
20.12.2011, 14:23  [ТС]
Постараюсь. первое, что сейчас волнует, на форме есть кнопка при нажатии на которую открывается другая форма с гридом, раньше она открывалась нормально, сейчас выдает ошибку "Алиас не найден".
Я не поняла, что такого сделала, что теперь выдает ошибку. Не подскажите ли, пожалуйста, с чем это связано?! Рассказать как грид заполняю?! =)
0
 Аватар для Redglow
107 / 107 / 0
Регистрация: 06.05.2011
Сообщений: 277
20.12.2011, 14:33
Предположу, что к моменту инициализации грида не существует (или не открыт) его источник данных. Без кода и более подробной информации этот вопрос такой же бессмысленный, как и "Доктор, почему у меня что-то болит?".
Для начала изучите порядок событий в форме, например, здесь.
Если грид настроен в конструкторе, т.е. ему заранее назначен RecordSource, а его колонкам ControlSource, то источник данных в Init() формы уже должен быть доступным. Это значит, что если источником данных является таблица - она должна быть заранее открыта в Load() формы, а еще лучше - при старте программы и не закрываться аж до завершения работы. Если это курсор - он должен быть создан до вызова формы или же в ее Load() и т.д.
А вообще, откройте для себя отладчик, без него придется очень туго.
1
5 / 5 / 1
Регистрация: 12.08.2010
Сообщений: 151
20.12.2011, 14:40  [ТС]
я уже разобралась..просто ставила код разукрашивания строк , ну и он был источником ошибки..Спасибо за ссылку. Еще один вопрос остался, еще с предыдущего сообщения...Как я поняла, в FP не нужно отлавливать в каком месте грида находится курсор, так вот, ваши строки
Цитата Сообщение от Redglow Посмотреть сообщение
lcAlias = ThisForm.Grid1.RecordSource
lnId = EVALUATE(lcAlias + ".Number_marry")
должны брать запись Number_marry с выделенной ячейки?! просто у меня всегда один и тот же запрос выходит..со значением с первой строки.простите, если я что-то не так объясняю.
0
 Аватар для Redglow
107 / 107 / 0
Регистрация: 06.05.2011
Сообщений: 277
20.12.2011, 14:49
Перемещение указателя в гриде означает перемещение указателя в таблице-источнике данных. Т.е. значение должно браться из текущей записи в этой таблице. Думаю, Вам стоит привести источник данных грида первой и второй форм, структуру таблиц и что собственно Вы хотите добиться?
0
5 / 5 / 1
Регистрация: 12.08.2010
Сообщений: 151
26.12.2011, 14:22  [ТС]
Redglow, вы мне нужны на помощь, пожалуйста. Все руки не доходили до foxPro...Не подскажите ли вы, вот предположим, при создании формы и заполнении ее "начинкой" в Init я написала код, который есть выше, но повторюсь -
C#
1
2
3
4
5
6
7
8
9
10
11
12
LPARAMETERS tnId
SELECT * FROM Marry WHERE Marry.number_marry = tnId INTO CURSOR Logg 
WITH ThisForm
        .text0.Value = Logg.Number_marry
        .text1.Value = Logg.surname_b
        .text2.Value = Logg.name_b
        .text3.Value = Logg.patronymic_b
        .text4.Value = Logg.surname_g
        .text5.Value = Logg.name_g
        .text6.Value = Logg.patronymic_b
ENDWITH
this.Refresh
Предположим в textbox'ax я поменяла данные и при нажатии на кнопку я хочу что бы изменения сохранились, я все понять не могу каким способом это можно здесь реализовать? Создать курсор, тейблапдейтнуть или как!?
Глупо предположила, что выйдет так:
C#
1
2
3
4
5
6
7
8
9
10
11
SELECT * FROM Marry WHERE Marry.number_marry = thisform.text0.Value INTO CURSOR Logg READWRITE NOFILTER
WITH ThisForm
        Logg.Number_marry=.text0.Value  
        Logg.surname_b=.text1.Value  
        Logg.name_b=.text2.Value  
        Logg.patronymic_b=.text3.Value  
        Logg.surname_g=.text4.Value  
        Logg.name_g=.text5.Value  
        Logg.patronymic_b=.text6.Value  
ENDWITH
TABLEUPDATE(Logg)
Ошибка - Объект Logg не найден
0
 Аватар для Redglow
107 / 107 / 0
Регистрация: 06.05.2011
Сообщений: 277
26.12.2011, 14:48
1. Свойство Value предназначено для установки некоего значения контролу в текущий момент времени. Но, учитывая, что значения берутся из полей курсора и введенные значения должны быть помещены в него же, пользоваться Value нет никакого смысла. Для этих целей есть свойство ControlSource.
2. Учитывая, что курсор не является объектом, присвоить значение его полю как это делаете Вы в виде CursorName.FieldName = <SomeValue> нельзя. А если вспомнить, что курсор - это временная таблица, то и решение проблемы лежит на поверхности - REPLACE CursorName.FieldName WITH <SomeValue> или же воспользоваться UPDATE (если по каким-то причинам не подходит ControlSource). Учтите, что в Init() вашей формы в данный момент курсор создан только для чтения.
3. TABLEUPDATE() используется для буферизированных таблиц/курсоров. В приведенных отрывках кода я не вижу и намека на то, что упомянутый курсор буферизирован, а значит и применять TABLEUPDATE() бессмысленно.
4. Зачем Вы пересоздаёте курсор при сохранении? Почему не проверяете тип и значение Text0.Value?
Сдаётся мне, Вы опять пишете код наугад, не особо понимая что делаете и зачем.
0
5 / 5 / 1
Регистрация: 12.08.2010
Сообщений: 151
27.12.2011, 10:17  [ТС]
Цитата Сообщение от Redglow Посмотреть сообщение
Зачем Вы пересоздаёте курсор при сохранении
я думала в инете он уничтожается , поэтому заново создавала.

Цитата Сообщение от Redglow Посмотреть сообщение
Сдаётся мне, Вы опять пишете код наугад, не особо понимая что делаете и зачем.
Вы правы...НО то что я сейчас пытаюсь сделать на foxpro уже давно у меня работает на др языках программирования, а FoxPro это просто пропускной билетик для зачета...про который , в виду недостаточности времени , я мало чего могу самостоятельно изучить и прочитать...саму иногда совесть тормошит..

Из того, что вы сказали я поняла, что можно записать изменения из textbox'ов в таблицу и напрямую?! Т.е. код будет выглядеть вида:
C#
1
replace (marry.Number_marry) WITH val(text0.ControlSource)
???
0
 Аватар для Redglow
107 / 107 / 0
Регистрация: 06.05.2011
Сообщений: 277
27.12.2011, 10:40
Вы невнимательно прочли то, что я написал.
1. Повторяю, курсор - это временная таблица, соответственно она закроется только тогда, когда в явном виде будет указано USE IN <MyCursor> или в неявном виде это сделает сам фокс при завершении работы исполняемого файла, например.
2. Способ 1, он же самый правильный. Устанавливаете каждому текстбоксу в ControlSource соответствующее ему поле. Это можно сделать как конструкторе в design time, так и напрямую в Init() формы. Т.е.
Code
1
2
3
4
WITH This
    .Text1.ControlSource = "Logg.Surname_b"
    * и т.д.
ENDWITH
Этим самым из Logg.Surname_b значение будет подставляться в Text1.Value и в него же будет возвращаться введённое в текстбокс значение, т.е. будет выполнен неявный REPLACE, причём сделан он будет без предупреждений. Естественно, курсор до выполнения Init() формы должен быть создан с опцией READWRITE. Если же курсор будет буферизирован, то по событию сохранения достаточно будет проверить запись на изменения (OLDVAL()), сделать TABLEUPDATE() и зафиксировать изменения.
Кстати говоря, в других языках программирования есть аналогичные свойства, которые ведут себя точно так же, разве что могут быть отличия в названии.
3. Способ 2, который тоже вполне имеющий право на жизнь. Добавляете форме свойство oRecord, например. В Init() формы будет
Code
1
2
3
4
5
6
SELECT * FROM Marry WHERE Marry.number_marry = tnId INTO CURSOR Logg READWRITE
WITH This
    SCATTER NAME .oRecord
    .Text1.ControlSource = "ThisForm.oRecord.Surname_b"
    * и т.д.
ENDWITH
По событию сохранения же делаете проверку на изменения и в случае изменений сохраняете запись:
Code
1
2
SELECT Logg
GATHER NAME ThisForm.oRecord
либо же
Code
1
2
3
4
5
6
SELECT Logg
WITH ThisForm.oRecord
    REPLACE Number_marry WITH .Number_marry,;
        Surname_b WITH .Surname_b,;
        <field list>  WITH <value list> IN Logg
ENDWITH
Естественно, если курсор будет буферизирован, TABLEUPDATE() никто не отменял.
Это все расписано в хелпе с примерами и относится к азам. Почаще туда заглядывайте.
1
5 / 5 / 1
Регистрация: 12.08.2010
Сообщений: 151
28.12.2011, 11:33  [ТС]
Естественно, у меня не получлось...поэтому решила сделать проще...с помощью Form_Wizard'а решила понасоздавать форм на основе таблиц, а там уже есть встроенные функции - добавления, удаления, редактирования...Но есть опять вопрос...простите за глупую датошность..надеюсь это последнее...Сейчас попробую скинуть файлы, что бы было понятно...все свое "добро" я запускаю через форму autoidentif.scx, вопрос в том,когда открывается форма table, то там есть грид, я уже поняла как при выборе строки в гриде открывать другую таблицу с данными этой записи, но вот как это делать при запуске формы, созданной Wizard'ом я не знаю...Помогите пож-та.
Вложения
Тип файла: rar ZAGS.rar (456.7 Кб, 17 просмотров)
0
 Аватар для Redglow
107 / 107 / 0
Регистрация: 06.05.2011
Сообщений: 277
29.12.2011, 10:41
Уж извините, но у меня сейчас аврал с проектом, так что некогда даже толком поесть, не говоря уже о "посмотреть". Посмотрю после НГ, если выживу. )
Кстати, быть может у кого-то другого больше свободного времени и этот кто-то подскажет быстрее.
0
5 / 5 / 1
Регистрация: 12.08.2010
Сообщений: 151
29.12.2011, 10:59  [ТС]
Redglow, думаю не надо после нового года..завтра без вооружения пойду сдаваться декану на зачет...спасибо вам за всё и простите)
0
 Аватар для Redglow
107 / 107 / 0
Регистрация: 06.05.2011
Сообщений: 277
29.12.2011, 12:08
Цитата Сообщение от НеГоДяЙкА Посмотреть сообщение
и простите)
Табожешьмой, звучит как прощание перед расстрелом. Не хватает только "и прощайте". )
Что конкретно не получается?
Особой разницы между формой, созданной в конструкторе IDE, визардом или вообще, исключительно программным способом нет. Вы все правильно делаете, в Init() формы необходимо присвоить Grid1.RecordSource, только помимо этого еще нужно указать ControlSource для каждой колонки:
Code
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
LPARAMETERS lnRazdel
 
LOCAL lcAlias
DO CASE
    CASE lnRazdel = 1
        lcAlias = "Marry"
 
    CASE lnRazdel = 2
        lcAlias = "Adoption"
 
    CASE lnRazdel = 3
        lcAlias = "Birth"
 
    CASE lnRazdel = 4
        lcAlias = "Change_of_name"
 
    CASE lnRazdel = 5
        lcAlias = "Death"
 
    CASE lnRazdel = 6
        lcAlias = "Dissolution_of_marriage"
 
    CASE lnRazdel = 7
        lcAlias = "Fatherhood"
 
    OTHERWISE
        RETURN .f.
        NODEFAULT
ENDCASE
 
WITH This
    .Grid1.RecordSource = lcAlias
    .Grid1.Column1.ControlSource = lcAlias + ".Number_mar"
    .Grid1.Column2.ControlSource = lcAlias + <имя соответствующего поля>
    * и так далее для всех оставшихся колонок
    ENDWITH
ENDWITH
Если колонок на гриде больше, чем реально необходимо, там же в Init() формы можно указать
Code
1
This.Grid1.ColumnCount = 3 && или сколько там реально нужно
З.Ы. Зачем вам форма table таких огромных размеров и такой вырвиглазной расцветки?
З.Ы.Ы. У вас тут еще и имена полей в разных таблицах разные. Сделайте тогда массив и в CASE заполняйте его именами полей, чтобы подставить эти значения в Column.ControlSource, иначе переменными километровая простыня кода получится.
1
5 / 5 / 1
Регистрация: 12.08.2010
Сообщений: 151
29.12.2011, 12:35  [ТС]
Я для таблиц доделала позже, просто грамоздко..Вида такого -
C#
1
2
3
4
5
6
7
8
9
10
IF RAZDEL=3
    ThisForm.grid1.RecordSource="birth"
    
    thisform.grid1.column1.ControlSource="number_birth"
    thisform.grid1.column1.header1.Caption="Íîìåð äîêóìåíòà"
    thisform.grid1.column2.ControlSource="surname"
        ...
    thisform.grid1.column8.Visible=.f.
    thisform.grid1.column9.Visible=.f.
ENdif
Цитата Сообщение от Redglow Посмотреть сообщение
З.Ы. Зачем вам форма table таких огромных размеров и такой вырвиглазной расцветки?
Да как то настроение такое было...разляпать все цветами .. так и осталось..
Цитата Сообщение от Redglow Посмотреть сообщение
Что конкретно не получается?
Конкретно не получается (пример)-> нажимаем кнопку Бракосчетания, в гриде выбираем определенну. строку, нажимаем кнопку перехода-> и там, что бы форма автоматически вставала на запись из грида..то есть в просто форме я научилась это делать..а там сообразить не могу...

Добавлено через 20 минут
Цитата Сообщение от Redglow Посмотреть сообщение
У вас тут еще и имена полей в разных таблицах разные.
Я решила, хотя бы две формы -marry, birth. Сделать нормально, что бы можно было увидеть, что работает...а то, действительно, очень много прописывать всего...
0
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 44
30.10.2013, 00:34
Здраствуйте, у меня та же ошибка, но ситуация попроще.

IF thisform.Label6.Caption<2 THEN
thisform.Label7.Caption='Текст'
ENDIF

Ошибка во второй строке кода, помогите пожалуйста
0
187 / 180 / 29
Регистрация: 26.05.2011
Сообщений: 856
30.10.2013, 08:37
thisform.Label7.Caption - какой тип?
0
 Аватар для Redglow
107 / 107 / 0
Регистрация: 06.05.2011
Сообщений: 277
30.10.2013, 08:40
1. контрол label нужен исключительно для того, чтобы выводить на форму текст, он не должен участвовать ни в каких операциях, процедурах, функциях
2. свойство caption - всегда текстового типа и оно не может быть числом. Вот скажите, "вася" больше 15835 или меньше? Даже если в caption содержится число в текстовом виде, нужно привести оба аргумента к одному типу - либо caption преобразовать в число, либо число в строку.
Читайте хелп по функциям преобразования типов VAL(), STR(), TRANSFORM() и т.д.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.10.2013, 08:40
Помогаю со студенческими работами здесь

Передача параметра в запрос Access'a
Так как в методе OpenRecordset нельзя использовать подзапросы, приходится пользоваться внутренними запросами базы данных. Но в этом запросе...

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

Передача параметра в sql запрос
привет. осуществляю поиск по базе. мне надо найти слово или выражение (которое ввожу из формы) в базе. var Myquery =...

Передача параметра в запрос из DTPicker
В Access 2000 создал форму. На нее установил поле ввода DTPicker. На закладке 'Данные' подключил запрос 'Запрос_2'. 'Запрос_2'...

Access передача параметра из формы в запрос
Доброго времени суток, весь день не могу найти ошибку. 1. с запуском формы выполняется код, 2. первым делом в поле на форме...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru