кой идеот е измислил ...
5 отговора
248 прегледа
кой идеот е измислил ...
при използване на ReDim да ми се инициализира масивчето от обекти
... или аз не правя нещо както трябва?
Бас държа, че чичо Били има пръст в тая работа
... или аз не правя нещо както трябва?
Бас държа, че чичо Били има пръст в тая работа
10x
начи това било то :)
щом са решили че по дефоут трябва да се анулира тяхна си работа...
сега ако обадиш и
1) как става и създаване на копие на инстанция на обект и спирам да питам /за сега/ :)) чрез създаването на нов и използване на проклетията Set го приема като указател към първия обект, а аз искам да е нов независим, но първоначално да е зареден с данните на първия без да си играя едно по едно да извличам свойствата и да пиша функция за това :) (мда посмейте се сега :)
2) може ли да се премахва Set т.е. да се образуват 2 независими обекта и какво става с данните до момента (да не се ресетват и те :)
то верно и това си е за книга, но книгата е доста дебела, а гледам какви ли не сложни примери, а тва елементарно нещо трябва да го търся :))
има ли някъде уроци за обектно програмиране, но на БГ език :)
щом са решили че по дефоут трябва да се анулира тяхна си работа...
сега ако обадиш и
1) как става и създаване на копие на инстанция на обект и спирам да питам /за сега/ :)) чрез създаването на нов и използване на проклетията Set го приема като указател към първия обект, а аз искам да е нов независим, но първоначално да е зареден с данните на първия без да си играя едно по едно да извличам свойствата и да пиша функция за това :) (мда посмейте се сега :)
2) може ли да се премахва Set т.е. да се образуват 2 независими обекта и какво става с данните до момента (да не се ресетват и те :)
то верно и това си е за книга, но книгата е доста дебела, а гледам какви ли не сложни примери, а тва елементарно нещо трябва да го търся :))
има ли някъде уроци за обектно програмиране, но на БГ език :)
Re: кой идеот е измислил ...
Private Sub Command1_Click()
Dim o() As New TestS
ReDim o(10)
Dim i As Long
For i = LBound(o) To UBound(o)
o(i).GetS = "TestS " & CStr(i)
o(i).ShowS
Next i
End Sub
Ако пък решиш да запазиш стойности от предишно инициализиране на масива
послушай разузнавача, той не те лъже
Редактирано от nevil на
Re: 10x
1) Kys otgovor - Ne stava.
1) Dylyg otgovor
Problema e ednakyv vyv vsichki ezici. Set go ima specialno da ti pokaze che kopirash pointeri, bez pametta kadeto sochat. Vsystnot Set pravi malko poveche nesta, ako iskash da chetesh - google - QueryInterface. Vyv VB6 taka narechenite obecti i klasove vsystnost sa COM CoClasses i se pipat samo prez COM interfaces.
I az biah razochoravan kato razbrah che ne sa i ne moze da bydat C++/Java classes in inheritance canonical form. Ako klasa e tvoi moze da si napishesh metod Initialize( ByVal pOther as MyClass ) ili pyk member Function Copy (bDeep as boolean) as MyClass
Dryg variant e da si napravish finkcii XMLRead(xFrom as XMLNode) , XMLWrite() as XMLNode da ti izsipvat obekta i cialata hierarhia pod nego v XML i obratno.
2) kratyk otgovor - Ne moze.
.... Dylyg me myrzi da pisha, viz po-gore..
Nestata izobsto ne sa elementarni i ako ste se zanimavash seriozno po-dobre da gi razberesh.
Eto ti i malko code za bazikane.
1) Dylyg otgovor
Problema e ednakyv vyv vsichki ezici. Set go ima specialno da ti pokaze che kopirash pointeri, bez pametta kadeto sochat. Vsystnot Set pravi malko poveche nesta, ako iskash da chetesh - google - QueryInterface. Vyv VB6 taka narechenite obecti i klasove vsystnost sa COM CoClasses i se pipat samo prez COM interfaces.
I az biah razochoravan kato razbrah che ne sa i ne moze da bydat C++/Java classes in inheritance canonical form. Ako klasa e tvoi moze da si napishesh metod Initialize( ByVal pOther as MyClass ) ili pyk member Function Copy (bDeep as boolean) as MyClass
Dryg variant e da si napravish finkcii XMLRead(xFrom as XMLNode) , XMLWrite() as XMLNode da ti izsipvat obekta i cialata hierarhia pod nego v XML i obratno.
2) kratyk otgovor - Ne moze.
.... Dylyg me myrzi da pisha, viz po-gore..
Nestata izobsto ne sa elementarni i ako ste se zanimavash seriozno po-dobre da gi razberesh.
Eto ti i malko code za bazikane.
Private Sub Form_Load()
Dim v, v1
v = Array(10, 12, 13, 4, 23)
v1 = v
Debug.Print "Before :" & vbCrLf & "v(0)=" & v(0) & vbCrLf & "v1(0)=" & v1(0)
v(0) = 1
ReDim Preserve v(UBound(v) + 3)
Debug.Print vbCrLf & "After :" & vbCrLf & "v(0)=" & v(0) & vbCrLf & "v1(0)=" & v1(0)
End Sub
hmmm lo6o :(
под Initialize(ByVal pOther as MyClass ) имаш предвид, че мога да го направя още със създаването да копира инстанцията pOther от същия клас предполагам. Обаче какъв синтаксис да използвам за да създам новия обект, така че да знае кой е конкретният pOther ;)
нещо от рода на
Dim nObject(pOther) as New MyClass ли как? То така ще стане масив :)
ще взема в крайна сметка да си спретна един метод (чийто аргумент е обекта за копиране), който буквално да копира стойностите на всички свойства в новия обект и ще си реша проблема:)
То малко рекурсивно ще се получи ако е чрез метод на класа, а не функция на формата... това позволено ли е? Метод в клас да използва като аргумент обект от същия клас? Абе... ше се оправя някак :))
Мерси за помощта

нещо от рода на
Dim nObject(pOther) as New MyClass ли как? То така ще стане масив :)
ще взема в крайна сметка да си спретна един метод (чийто аргумент е обекта за копиране), който буквално да копира стойностите на всички свойства в новия обект и ще си реша проблема:)
То малко рекурсивно ще се получи ако е чрез метод на класа, а не функция на формата... това позволено ли е? Метод в клас да използва като аргумент обект от същия клас? Абе... ше се оправя някак :))
Мерси за помощта