Re: OT: constructor Pascal a C++ VYŘEŠENO

Milan Kratochvíl krata.milan na seznam.cz
Čtvrtek Květen 26 19:09:01 CEST 2016


Zdravím a díky,
udělal jsem to tak, že jsem vyzkoušel napsat jinou prázdnou třídu a ta 
fungovala. Tak jsem začal odmazávat postupně proměnné a funkce co jsem 
již měl napsané až jsem umazal proměnnou Graphics::TBitmap Bitmapa; a 
program přestal padat při konstrukci TMereni(). Holt to budu vykreslovat 
jinde a jinak. Měl jsem to vyzkoušet rovnou a také rovnou napsat, že tam 
toho mám nadeklarováno již více.
Ještě jednou díky.
Milan

Dne 26.5.2016 v 06:48 Karel M napsal(a):
> Priklad, zkuste to napsat takto:
>
> uvnitr .h souboru:
>
> class TMereni
> {
> private:
>     bool FConnected;
> public:
>     __fastcall TMereni();
>     __fastcall ~TMereni();
> };
>
> class TForm1 : public TForm
> {
> __published:    // IDE-managed Components
>     void __fastcall FormCreate(TObject *Sender);
> public:        // User declarations
>     __fastcall TForm1(TComponent* Owner);
>     TMereni *Mereni1;
>     TMereni *Mereni99;
> };
>
>
> uvnitr .cpp souboru:
>
> __fastcall TMereni::TMereni()
> {
>     //konstruktor
> }
> __fastcall TMereni::~TMereni()
> {
>     //destruktor
> }
>
> __fastcall TForm1::TForm1(TComponent* Owner)
>     : TForm(Owner)
> {
>     //hlavni form
> }
>
> void __fastcall TForm1::FormCreate(TObject *Sender)
> {
>     Mereni1 = new TMereni();
>     Mereni99 = new TMereni();
> }
>
>
>
> Pokud by Vam to porad neslo, tak bych Vam mohl pripadne jeste udelat 
> priklad primo v C++ builderu.
> Karel M.
>
> Dne 25. května 2016 19:24 Milan Kratochvíl <krata.milan na seznam.cz 
> <mailto:krata.milan na seznam.cz>> napsal(a):
>
>     Jak to píši z domova, protože v práci nemám přístup na konferenci,
>     tak jsem udělal pár chyb.
>     Krom chybějící dvojtečky a endu místo } jsem ještě špatně napsal
>     jak mám definováno MereniA a MereniB
>     MereniA a MereniB mam definováno v části Public ve formuláři jako
>     TMereni* MereniA; a TMereni* MereniB;
>
>     Popravdě řečeno zkoušel jsem všechny následující tvary a pokud to
>     kompilátor přeložil tak to skončilo s popsanou chybou.
>     MereniA = new TMereni;
>     MereniA = new TMereni();
>     MereniA = new (TMereni());
>
>     A dokonce jsem někde našel i zápis, který mi to sice přeložilo ale
>     stále chyba při běhu programu.
>     MereniA = &TMereni::TMereni();
>
>     Díky
>     Milan
>
>     Dne 25.5.2016 v 19:05 Karel M napsal(a):
>>     Zběžně Vám mohu napsat toto: nevím co máte v OnCreate v C++, ale
>>     přidal bych závorky tedy:
>>
>>     MereniA = new TMereni();
>>
>>     do .h souboru bych přidal deklaraci_
>>
>>     TMereni MereniA;
>>
>>     v třídě máte dvakrát public, jeden bez dvojtečky, udělal bych to
>>     takto:
>>
>>     class TMereni
>>     {
>>       private:
>>          int FMereni1;
>>          ........
>>     public:
>>        TMereni (void);
>>       ~TMereni (void);
>>       __property int Mereni1 = { read=FMereni1};
>>       .......
>>
>>     Dne 25. května 2016 18:36 Milan Kratochvíl <krata.milan na seznam.cz
>>     <mailto:krata.milan na seznam.cz>> napsal(a):
>>
>>         Zdravím všechny,
>>         musím přepsat program z pascalu do c++ protože novější
>>         knihovny má dodavatel pouze pro c++. Dělám v c pro jednočipy
>>         a tak jsem si myslel že to nebude tak strašný ale narazil
>>         jsem docela na začátku.
>>         V pascalu mám třídu TMereni, kterou vytvořím v události
>>         OnCreate od hlavního formuláře a vše je funkční.
>>
>>         ... OnCreate...
>>         ...
>>         MereniA:= TMereni.Create();
>>         MereniB:= TMereni.Create();
>>         .....
>>
>>         V C++ mám také vytvoření v OnCreate a překlad je bez chyb,
>>         ale běh programu skončí s hláškou access violation právě při
>>         volání constructoru.
>>         Jen dodám že Mereni mam definováno v části Public ve
>>         formuláři jako TMereni* Mereni; a vnitřky funkcí jsou zatím
>>         prázdné, protože jsem se dál nedostal.
>>
>>
>>         Nevíte někdo náhodou co by mohlo být blbě? zkoušel jsem
>>         hledat ale asi se ggla špatně ptám. Používám Delphi 2007 a
>>         C++Builder 2007
>>
>>         ... OnCreate...
>>         ...
>>         MereniA = new TMereni;
>>         MereniB = new TMereni;
>>         .....
>>
>>
>>
>>         TMereni = class
>>             constructor create();
>>             destructor destroy();
>>           private
>>              FMereni1 : integer;
>>              FMereni2 : integer;
>>              FMereni3 : integer;
>>              FPrepocet1 : real;
>>              FPrepocet2 : real;
>>              FPrepocet3 : real;
>>           public
>>              property Mereni1 : integer read FMereni1;
>>              property Mereni2 : integer read FMereni2;
>>              property Mereni3 : integer read FMereni3;
>>              property Prepocet1 : real read FPrepocet1;
>>              property Prepocet2 : real read FPrepocet2;
>>              property Prepocet3 : real read FPrepocet3;
>>              procedure Merime1();
>>              procedure Merime2();
>>              procedure Merime3();
>>              procedure Prepocet();
>>         end;
>>
>>
>>
>>         class TMereni
>>         {
>>           public:
>>             TMereni (void);
>>             ~TMereni (void);
>>           private:
>>              int FMereni1;
>>              int FMereni2;
>>              int FMereni3;
>>              float FPrepocet1;
>>              float FPrepocet2;
>>              float FPrepocet3;
>>           public
>>              __property int Mereni1 = { read=FMereni1};
>>              __property int Mereni2 = { read=FMereni2};
>>              __property int Mereni3 = { read=FMereni3};
>>              __property float Prepocet1 = { read=FPrepocet1};
>>              __property float Prepocet2 = { read=FPrepocet2};
>>              __property float Prepocet3 = { read=FPrepocet3};
>>              void __fastcall Merime1(void);
>>              void __fastcall Merime2(void);
>>              void __fastcall Merime3(void);
>>              void __fastcall Prepocet(void);
>>         end;
>>
>>
>>         Díky za nakopnutí.
>>         Milan
>>         _______________________________________________
>>         HW-list mailing list  -  sponsored by www.HW.cz
>>         <http://www.HW.cz>
>>         Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>>         http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>>
>>
>>     _______________________________________________
>>     HW-list mailing list  -  sponsored bywww.HW.cz <http://www.HW.cz>
>>     Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>>     http://list.hw.cz/mailman/listinfo/hw-list
>
>
>     _______________________________________________
>     HW-list mailing list  -  sponsored by www.HW.cz <http://www.HW.cz>
>     Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>     http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20160526/a673a653/attachment.html>


Další informace o konferenci Hw-list