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