Автор |
Съобщение |
slav4o.com
Ранг: Форумен бог
Регистриран на: Нед Яну 01, 2012 7:04 pm Мнения: 2581 Местоположение: Велико Търново / София
|
C++ builder споделяне на променливи
Имам една програма със 2 форми Form1 и Form2. Имам и променлива unsigned char variable1 декларирана във Unit1.cpp (където се пишат кодовете на Form1) . Когато я променям от Unit1.cpp си се променя, но когато реша да я променям от Unit2.cpp не ще да я променя. Но пък я открива, не ми дава грешка, че няма такава.
|
Вто Май 09, 2017 12:43 pm |
|
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 8:22 am Мнения: 15501 Местоположение: София
|
Re: C++ builder споделяне на променливи
Ми така е, като се учи език за програмиране посредство уизърди. На обектите им викат форми, не знаят що е то област на видимост на променлива... Най - просто ( и най-грозно ) е да декларираш някъде една глобална променлива и да я мажеш от където ти падне. Ще питаш как - ами с уизърд не знам как става
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
Вто Май 09, 2017 2:39 pm |
|
|
slav4o.com
Ранг: Форумен бог
Регистриран на: Нед Яну 01, 2012 7:04 pm Мнения: 2581 Местоположение: Велико Търново / София
|
Re: C++ builder споделяне на променливи
Ами декларирах една глобална променлива variable1 в хедъра Unit1.h . Излиза ми като Form1->variable1 . Когато напиша Form1->Variable1 = 1; // във Unit1.cpp всичко работи. Когато го напиша във Unit2cpp се компилира пак. Но когато пусна програмата ми и натисна бутона във Form2 който прави Form1->Variable1 = 1; ми дава грешка "Access violation at address 00403785 in module "Programa.exe". Write of address 00000320"
|
Вто Май 09, 2017 4:17 pm |
|
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 8:21 pm Мнения: 27949 Местоположение: София
|
Re: C++ builder споделяне на променливи
как ще ти е глобална в unit1.h .... и как всъщност я декларира ?
|
Вто Май 09, 2017 4:31 pm |
|
|
slav4o.com
Ранг: Форумен бог
Регистриран на: Нед Яну 01, 2012 7:04 pm Мнения: 2581 Местоположение: Велико Търново / София
|
Re: C++ builder споделяне на променливи
Ето частта от Unit1.h ами така го направих, като рових в нета намерих описано по такъв начин. Във programa.cpp няма publicИначе си го направих по бабешкия начин, бутона вика функция която е във Unit1.cpp и от там си я сетва локално вариаблата. Но въпроса е принципен, а и не е културно направено някак, но пък като не са ми ясни нещата...
|
Вто Май 09, 2017 7:50 pm |
|
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 8:21 pm Мнения: 27949 Местоположение: София
|
Re: C++ builder споделяне на променливи
я покажи целия .h файл, това ли ти е основната да я наречем форма ? Това не съм го пипал от 10 години, то вече не беше ли нещо друго, да не е борланд ?
|
Вто Май 09, 2017 8:07 pm |
|
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 3:11 pm Мнения: 3742 Местоположение: София
|
Re: C++ builder споделяне на променливи
Form1 създадена ли е преди да си викнал Form1->п му м... ? Хедър файлът с описанието на класа Form1 видим ли е от Form2 ?
|
Вто Май 09, 2017 8:13 pm |
|
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 8:21 pm Мнения: 27949 Местоположение: София
|
Re: C++ builder споделяне на променливи
Абе аз затова исках да видя целия хедър на 1 ... в крайна сметка в форм 2 инцлудва ли някъде този на форм 1 или няой друг който да му казва че има такава променлива ?
|
Вто Май 09, 2017 8:17 pm |
|
|
slav4o.com
Ранг: Форумен бог
Регистриран на: Нед Яну 01, 2012 7:04 pm Мнения: 2581 Местоположение: Велико Търново / София
|
Re: C++ builder споделяне на променливи
Borland C++ builder 4 (Да старичко е доста, но едва ли това е проблема) Form1 е основната, Form2 се прави видима с бутон намиращ се във Form1. във Unit1.cpp има във Unit2.cpp има Unit1.h
|
Вто Май 09, 2017 8:22 pm |
|
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 3:11 pm Мнения: 3742 Местоположение: София
|
Re: C++ builder споделяне на променливи
това инклудване на .cpp файл къде си го учил? Да отидеш и да направиш рекламация на даскалите! Искай си обратно парите!
|
Вто Май 09, 2017 8:30 pm |
|
|
slav4o.com
Ранг: Форумен бог
Регистриран на: Нед Яну 01, 2012 7:04 pm Мнения: 2581 Местоположение: Велико Търново / София
|
Re: C++ builder споделяне на променливи
Ами като го махна не ми разпознава фукциите дето съм ги описал в Unit1.cpp
|
Вто Май 09, 2017 8:33 pm |
|
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 3:11 pm Мнения: 3742 Местоположение: София
|
Re: C++ builder споделяне на променливи
А ти във функциите писал ли си Form1::Kekava_funktsia() ... ? Обърни внимание на Form1::
|
Вто Май 09, 2017 8:35 pm |
|
|
slav4o.com
Ранг: Форумен бог
Регистриран на: Нед Яну 01, 2012 7:04 pm Мнения: 2581 Местоположение: Велико Търново / София
|
Re: C++ builder споделяне на променливи
Във Unit1.cpp имам Така са описани моите функции и си се извикват успешно от Unit2.cpp
|
Вто Май 09, 2017 8:37 pm |
|
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 3:11 pm Мнения: 3742 Местоположение: София
|
Re: C++ builder споделяне на променливи
Като бира без картофки .... Във хедър файла си описал фъкциите като мембъри на класа, в С файла си ги описал като свободно летящи. Не става. И с подкуп не става.
|
Вто Май 09, 2017 8:39 pm |
|
|
slav4o.com
Ранг: Форумен бог
Регистриран на: Нед Яну 01, 2012 7:04 pm Мнения: 2581 Местоположение: Велико Търново / София
|
Re: C++ builder споделяне на променливи
Голяма какаманга стана. Обърках се тотално. Махнах #include Unit1.cpp и си заработи това с променливата. Обаче сега с функциите не мога да се оправя. Ползват се и от двете форми. От Unit2.cpp не се виждат. Къде и как да ги опиша ?
Последна промяна slav4o.com на Вто Май 09, 2017 9:43 pm, променена общо 1 път
|
Вто Май 09, 2017 9:38 pm |
|
|