Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[C++] Widoczność obiektów oraz tworzenie ich nazw w aplikacj

DeeJaySqter 12 Maj 2010 10:03 1350 5
  • #1 12 Maj 2010 10:03
    DeeJaySqter
    Poziom 19  

    Witam moja nauka programowania napotkała na kolejny mur a mianowicie:

    Posiadam program w którym chcę tworzyć pewne obiekty. Z tym że chciałbym je tworzyc "za naciśnięciem przycisku" tak bym mógł w Edicie wpisać nazwę powstającego obiektu danej klasy i aby obiekt był widoczny globalnie abym później mógł go odczytac w dowolnym momencie aż do jego zniszczenia lub końca aplikacji.
    Programuję w BCB 6 Personal,kod jest prościutki bo chcę najpierw zrozumieć zasadę działania funkcji o których mówię. Wiem że pewnie temat był już wałkowany ale ciężko jest mi sprecyzować odpowiednie zapytanie i do tej pory nie znalazłem satysfakcjonującej odpowiedzi.

    Pozdrawiam

    Code:
     //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    #include <iostream.h>
    #include <dstring.h>
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {}
    //---------------------------------------------------------------------------
    class testowa
    {
    public:
    AnsiString tekst;
    int wartosc;
    void zapisz(void);
    void open(void);
    } ;
    //----- funkcja skladowa 1---------------------
    void testowa::zapisz(void)
    {
    wartosc=StrToInt(Form1->Edit1->Text);
    tekst=Form1->Edit2->Text;
    }
    //----funkcja skladowa 2 ----------------------
    void testowa::open(void)
    {
    Form1->Edit3->Text=IntToStr(wartosc);
    Form1->Edit4->Text=tekst;
    }
    //---- deklaracja zmiennej globalnej--------------
    testowa nowy;
    //--------tu chcialbym tworzyc obiekty o ktorych mowilem na poczatku
    //------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    try
            {
            nowy.zapisz();
            }
    catch  (...)
            {
            }
    }
    //-----Tu następuje odczyt --------------------------------------
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    nowy.open();
    }
    //---------------------------------------------------------------------------

    0 5
  • #2 12 Maj 2010 11:27
    utak3r
    Poziom 25  

    DeeJaySqter napisał:
    tak bym mógł w Edicie wpisać nazwę powstającego obiektu danej klasy


    Czy powyższe stwierdzenie oznacza u Ciebie nazwę zmiennej, będącej nowym obiektem? Jeśli tak, to nie jest to wcale takie trywialne, jak sądzisz. Poczytaj sobie o RTL.
    A jeśli chodzi Ci o coś innego, to przybliż to bardziej ;)

    0
  • #3 12 Maj 2010 16:28
    DeeJaySqter
    Poziom 19  

    Dokładnie o to mi chodzi. Tak było by najwygodniej dla użytkownika.

    0
  • #4 12 Maj 2010 19:44
    Sam Sung
    Poziom 30  

    Tak naprawdę, to nie wiadomo, o co chodzi. Jednak domyślam się nieśmiało, że wystarczy najzwyklejsza dynamiczna słownikowa struktura danych, choćby na początek lista :) Bez żadnego... RTLa? - nie chodziło może o RTTI?

    0
  • #6 13 Maj 2010 16:10
    DeeJaySqter
    Poziom 19  

    thx za zaiteresowanie tematem. Zrobiłem pare RadioButton do wybierania wczesniej zdefiniowanych obiektów wiec poszedłem po łatwiźnie ale otrzymałem pożądany efekt z pewnymi ograniczeniami ;] pzdr

    0