Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2012.03.18;
Скачать: [xml.tar.bz2];

Вниз

Как добратся до переменноый в другом класе?   Найти похожие ветки 

 
norecoi1   (2011-12-06 06:12) [0]

Tx = class
my_var : string;
end;

Ty = class
procedure hello;
end;

procedure y.hello;
var z : Tx;
begin
// Как ? Пробовал так, но получаю "Access violation.."
z := nil;
z := Tx(z);
ShowMessage(z.my_var);
end;


Как добратся до переменноый/или функции в другом класе с другова класа?

d2010, Indy10, win7


 
MBo ©   (2011-12-06 08:10) [1]

Объект сначала нужно создать с помощью вызова конструктора (обычно Create).

А добраться необходимо в первую очередь до книжек по основам языка.


 
Palladin ©   (2011-12-06 10:00) [2]

русского


 
Dimka Maslov ©   (2011-12-06 10:05) [3]

Почему орешник больше не пополняется?


 
Плохиш ©   (2011-12-06 12:38) [4]


> Почему орешник больше не пополняется?

Видно потому, что нет ничего нового и смешного. Такие как аФФтар сюда каждый месяц перед сессией приползают.


 
norecoi1   (2011-12-06 20:43) [5]

ну забыл я в примере класс create() но суть не меняется

Tx = class
my_var : string;
procedure test;
end;

Ty = class
procedure hello;
end;

Ta = class
procedure me;
end;

procedure me;
var t : Tx; // неиспользуя global var.
begin
 t := t.create;
 t.my_var := "Hello World";
end;

procedure Ty.hello;
var t : Tx;
begin
// Как ? Пробовал так, но получаю "Access violation.."
t := nil;
ShowMessage(Tx(t).my_var);
end;


сори за русский, учился в Латышских учагах.


 
Dimka Maslov ©   (2011-12-06 21:27) [6]

Да, суть не меняется, как была написана полная ерунда, так и осталась.
Зачем сначала обнулять указатель на объект, а потом обращаться к его полю?


 
Dennis I. Komarov ©   (2011-12-06 21:44) [7]


> Dimka Maslov ©   (06.12.11 21:27) [6]

Есть такой метод - научный и эксперементальный...
А чего там и как потом посмотрим, а может и нет, главное чтоб работало...


> norecoi1   (06.12.11 20:43) [5]

Команты, плз, на каждую строчку кода: что, зачем и почему...


 
Dimka Maslov ©   (2011-12-06 21:54) [8]


>  Dennis I. Komarov ©   (06.12.11 21:44) [7]


Рецентно переехавшее уютненькое /lm/ прекрасно поясняет суть метода научного тыка. Здесь у нас совершенно другой случай.


 
Dennis I. Komarov ©   (2011-12-06 22:08) [9]


> Здесь у нас совершенно другой случай.

Ага, тоже такой научный...
// Как ? Пробовал так, но получаю "Access violation.."


 
DiamondShark ©   (2011-12-06 22:45) [10]


> // Как ? Пробовал так, но получаю "Access violation.."
t := nil;


попробуй так:

t := Pointer(Random(MaxInt));

"Access violation.." будет значительно реже.


 
Dennis I. Komarov ©   (2011-12-06 22:50) [11]

А вообще окажется что там так:
TMyClass = classs(...)
private
 FAnyVar: TAnyType
...
end;


 
norecoi1   (2011-12-07 01:28) [12]

Я непонемаю,

создаю переменную в процедуре одного класа, и хочу достать её из другова класа.

КАК ?


 
norecoi1   (2011-12-07 01:36) [13]

x = class
protected
Fl: TList;
end;

y = class
end;

procedure y.test;
begin
// Access violation at address 004D0D12 in module test.exe
x(TList).Fl.Clear;
end;

function x.my;
begin
Fl := TList.Create;
end;


Помогите, уже третий день парюсь(

my base language PHP.


 
norecoi1   (2011-12-07 01:36) [14]

Sorry не тот баттн нажал, в места Код, болд.


 
Германн ©   (2011-12-07 01:39) [15]


> norecoi1   (07.12.11 01:28) [12]
>
> Я непонемаю,
>

Купи учебник! И прочитай его.
Тогда может поймешь свой бред.
P.S. Учебник по русскому языку тоже будет не лишним. :)


 
norecoi1   (2011-12-07 01:39) [16]

x = class
protected
Fl: TList;
end;

y = class
end;

procedure y.test;
begin
// Access violation at address 004D0D12 in module test.exe
x(TList).Fl.Clear;
end;

function x.my;
begin
Fl := TList.Create;
end;


 
norecoi1   (2011-12-07 01:40) [17]

я нехочу не чего покупать, проста покожите как и я отстану


 
norecoi1   (2011-12-07 02:01) [18]

x = class(TIdBaseComponent)
Fl: TList;
end;

y = class(TThread)
end;

procedure y.test;
begin
// Access violation at address 004D0D12 in module test.exe
x(TList).Fl.Clear;
end;

function x.my;
begin
Fl := TList.Create;
end;


для ясности внесу изменения в примере, добавлю что класы разные.


 
norecoi1   (2011-12-07 02:32) [19]

я уже весь гугл перерыл, везде есть примеры по работе Parent -> child , но у меня же 2 родителя.

HEEEELP !((((((


 
norecoi1   (2011-12-07 03:22) [20]

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, IdTCPClient;

type
 TForm1 = class(TForm)
 procedure FormCreate(Sender: TObject);
 private
   Flist : TList;
 public
   property list : TList read Flist write Flist;
 end;

 Tmy_class = class(TThread)
   public
   procedure test;
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure Tmy_class.test;
var x:TForm1;
begin
 // crash - // Access violation at address 004D0D12 in module test.exe
 Form1.list.clear;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Flist := FList.Create;
end;

end.


 
norecoi1   (2011-12-07 03:24) [21]

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, IdTCPClient;

type
 TForm1 = class(TForm)
 procedure FormCreate(Sender: TObject);
 private
   Flist : TList;
 public
   property list : TList read Flist write Flist;
 end;

 Tmy_class = class(TThread)
   public
   procedure test;
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure Tmy_class.test;
begin
 // Error here, can"t access the Flist var or list propertie, help !! How to access?
 TForm1(TList).list.Clear;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Flist := FList.Create;
end;

end.


 
KilkennyCat ©   (2011-12-07 07:16) [22]

http://rsdn.ru/?article/Delphi/Delphi_7_03.xml



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2012.03.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.004 c
2-1322683472
Никита1990
2011-12-01 00:04
2012.03.18
Как определить дату БИОС?


2-1322823148
CheCoder
2011-12-02 14:52
2012.03.18
Как отправить содержимое Image1 на печать?


15-1322239708
Димка На
2011-11-25 20:48
2012.03.18
Сложные судоки


15-1322045600
aka
2011-11-23 14:53
2012.03.18
Пишу программу.


15-1322401925
Vyacheslav
2011-11-27 17:52
2012.03.18
Delphi XE2 не работают Break Point





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский