forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   BlitzMax (http://forum.boolean.name/forumdisplay.php?f=104)
-   -   Ptr и Var : как работает ? (http://forum.boolean.name/showthread.php?t=5904)

zheland 12.04.2008 23:42

Ptr и Var : как работает ?
 
Ptr и Var : для чего нужны и как работают ?:@

jimon 12.04.2008 23:45

Ответ: Ptr и Var : как работает ?
 
указатели на переменные
к примеру чтобы можно внутри функции изменить аргумент который в неё подается

dimanche13 13.04.2008 00:21

Ответ: Ptr и Var : как работает ?
 
ptr - *, var - &(byref param), varptr-&(get address)

zheland 13.04.2008 01:13

Ответ: Ptr и Var : как работает ?
 
А как ими пользоваться ?

Horror 13.04.2008 14:58

Ответ: Ptr и Var : как работает ?
 
псевдо код
Код:

function Set(var В:Integer)
{
B=5
}
//гдетто при вызове
A:integer
Set(A)

результат
A=5

есля я правельно все написал
то это пример что ты можешь в функцию засунуть свою переменныю
и в функции ее изменить
очень удобно

ПС бмакс совсем не знаю)
написал примерно))

moka 14.04.2008 18:19

Ответ: Ptr и Var : как работает ?
 
Horror, почти прально написал (синтаксис не тот только), но суть именно та.
var - передаёт не значение переменной, а сам указатель на переменную, это почти также как заглобалить переменную и юзать не передовая, только - это не корректный подход будет :) При этом порой и не подходящий вовсе.

HolyDel 14.04.2008 18:22

Ответ: Ptr и Var : как работает ?
 
Horror очень здорово написал. это истинный псевдокод - семесь Си, паскаля и бейсика.
+1 как говорится.

dimanche13 14.04.2008 22:49

Ответ: Ptr и Var : как работает ?
 
Да, за такой псевдокод и +100 не жалко ;)

Horror 15.04.2008 00:35

Ответ: Ptr и Var : как работает ?
 
пасибо!
Ну главное чтоб понятно было))
надеюс автор понял))
я то в бмаксе не шарю))

zheland 30.04.2008 12:28

Ответ: Ptr и Var : как работает ?
 
Цитата:

А как ими пользоваться ?
А как пользоваться Ptr
*Можно-ли перевести Byte Ptr в Short Ptr

moka 30.04.2008 12:56

Ответ: Ptr и Var : как работает ?
 
drunnik, Ptr - это массив.
К примеру: Byte Ptr - это массив байтов.
К примеру в Xors'е есть функция: xEntityName(Entity%), она возвращает массив байтов, я делаю так:

Код:

Function BPtoString$(tByte:Byte Ptr)
  Local tName$
  For Local i%=0 to 256
      If tByte[i]=Null Return tName
      tName:+Chr(tByte[i])
  Next
End Function

Код:

Local EntityName$=BPtoString(xEntityName(Entity))

zheland 30.04.2008 13:02

Ответ: Ptr и Var : как работает ?
 
Цитата:

*Можно-ли перевести Byte Ptr в Short Ptr
Просто
Код:

Byte Ptr ( variable : Short Ptr )
не работает

moka 30.04.2008 16:07

Ответ: Ptr и Var : как работает ?
 
drunnik, не понял что ты такое прописал :)
Объясни что дано и что хочешь получить.

Bagration 30.04.2008 16:52

Ответ: Ptr и Var : как работает ?
 
Здраствуйте, пишу потому уже два часа не могу одну проблему решить, гы стыд мне! :mad: :''((
Как мне в филдах создать переменную указатель? Скажем для GUI, при создании кнопки указываем ей переменную которой она манипулирует. Потом в упдейте идет увеличиения или уменьшение переменной.
Я смог только в методе обновления сделать входное данное с указателем, код ниже.
Код:

Global mode:Int = 2
Global list:TList = New TList
Type TType
        'Field varr:int
        Function create_v:TType()
                Local cre:TType = New TType
                        'cre.varr = varra
                        list.AddLast(cre)
        End Function
        Method update(varr Var)
                varr:+1
        End Method
End Type
TType.create_v()
For Local up:TType = EachIn list
        up.update(mode)
Next

Print mode

Но сей способ мне не нравиться, что мне теперь каждый раз писать Упдейт(нужная переменная)? :4to:
Намного имхо грамотнее если я при создании кнопки укажу какую переменную будет увеличивать или уменьшать кнопка.:)

moka 30.04.2008 18:04

Ответ: Ptr и Var : как работает ?
 
Код:


Global list:TList = New TList
Type TType
        Field varr:%
        Function create_v:TType()
                Local cre:TType = New TType
                list.AddLast(cre)
                Return cre
        End Function
End Type

Local obj:TType=TType.create_v()

obj.varr:+1



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

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