Array i klasa

0

czesc,

mam problem. mam jakas tam klase Osoba:
type TOsoba = class
private
m_imie, m_nazwisko : string;
m_wiek : integer;
m_plec : boolean;//true - kobieta
public
zainteresowania : array [0..7] of boolean;
Property Imie : string read m_imie write m_imie;
property Nazwisko : string read m_nazwisko write m_nazwisko;
property Wiek : integer read m_wiek write m_wiek;
property Plec : boolean read m_plec write m_plec;
constructor Create(i : string; n : string; w : integer; p : boolean);

chcialbym przechowywac dane na tablicy (ARRAY). tylko nie wiem jak to zaimplementowac a potem wywolac.

pozdro
MJ

// pisz sensowne tematy - deti

0

trorzysz tablice zmiennych typu TOsoba:

tab: Array[0..10] of TOsoba;

A odwołujesz się następująco:

tab[0].imie:='aaa'

// żeby nie zaciemnić, w przykładzie podałem tablice o określonych ramach. Najlepiej używać jednak tablic dynamicznych.

0

ok, spoko jest. mam jeszcze jeden problem. jak to zapisac jako caly obiekt, zeby nie pisac dla kazdego pola (czy wlasciwosci) bo przy tworzeniu obietku: Create(EditImie.Text, EditNazwisko.Text, SpinEditWiek.Value, plec); wpisuje juz dane. jak to zrobic zeby nie powielac danych.

pozdro
MJ

0

Stworzyć rekord z tymi polami i dac go jako parametr konstruktora.

0

a jak bedzie wygladalo przypisanie obiektu do array??
moze tak??
os : TOsoba;
tab: array[0..10] of TOsoba;

//przypisanie
tab[i] := os;

czy moze inaczej??

pozdro
MJ

0

os : TOsoba;
tab: array[0..10] of TOsoba;

//przypisanie
tab[i] := os;

Imho to tylko skopiuje wskaźnik do klasy os, i później zmiana w os będzie zmieniała tą klasę w tablicy .. - Zobacz metodę Assign()

0

cos mi to nie idzie, nie ma innego latwieszego sposobu??

pozdro
MJ

0

Jak chcesz prościej, to nie baw się w tworzenie klasy, tylko zrób to za pomocą rekordu. Moim zdaniem to wystarczy, przynajmniej do prostych zastosowań. Jak napiszesz co ma ten program robić to może ktoś znajdzie prostsze rozwiązanie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1