Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » FAQ по Borland C++ Builder

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

Открыть новую тему     Написать ответ в эту тему

vudik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

 
Добавлено:
я извиняюсь, я новачок в builderi#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
        void __fastcall FormPaint(TObject *Sender);
        void __fastcall FormResize(TObject *Sender);
        void __fastcall Button1Click(TObject *Sender);
        void __fastcall FormCreate(TObject *Sender);
private:Grafik();    // User declarations
public:        // User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
 
это оно??

Всего записей: 14 | Зарегистр. 11-03-2009 | Отправлено: 18:20 09-05-2009
Meister Floh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
float f( float x)  - а вот это какому объекту принадлежит? хотя это и не причина ошибки, а причина скорее всего в том, что функция - TForm1::Grafik() - не описана в файле заголовков...

Всего записей: 393 | Зарегистр. 04-08-2003 | Отправлено: 18:26 09-05-2009
vudik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а как описать непосоветуеш... ???я некак ...
спасиба большое Meister Floh
 
Добавлено:
я сколько таких примеров не находил, везде такое самое

Всего записей: 14 | Зарегистр. 11-03-2009 | Отправлено: 18:29 09-05-2009
Meister Floh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
попробуй из private перенести в public  в таком виде:

Код:
 
void __fastcall Grafik(void);
 

а в cpp файле объяви функцию вот так:

Код:
 
void __fastcall TForm1::Grafik(void)
 

Кроме того в файл заголовков в public добавь:

Код:
 
float __fastcall f( float x);
 

и в cpp:

Код:
 
float __fastcall TForm1::f( float x)
 

 
Откомпиль и еси будет ошибка отпиши что там..

Всего записей: 393 | Зарегистр. 04-08-2003 | Отправлено: 18:34 09-05-2009
vudik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
СПАСИБО ОЧЕНЬ БОЛЬШОЕ
вроде тепер все нор.  строит, но я float  f( float x); нетрогал, просто мне нужно это реализовать для нескольких функцый, по выбору пользователя... а это просто я вхяну за основу..
 
спасибо большое
 
Добавлено:

Цитата:
вхяну

взял
 

Всего записей: 14 | Зарегистр. 11-03-2009 | Отправлено: 18:46 09-05-2009
Meister Floh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vudik
Не стоит благодарности. Кроме того если функция нужна для нескольких проектов она пишется в отдельном модуле и отдельном файле хедере - создается из всего этого библиотека, которая подключается в другом проекте.. А в том виде в котором у тебя все это представлено, из другого проекта доступно не будет до тех пор, пока ты в последний не добавишь существующий - чем значительно увеличишь и замусоришь второй.. а если ты добавишь еще одну форму в этот проект, то, тогда эта функция все равно будет доступна, т. к. она описана в public и доступ будет выглядеть следующим образом:

Код:
 
float fTest = Form1->f(x);
 

Всего записей: 393 | Зарегистр. 04-08-2003 | Отправлено: 18:58 09-05-2009 | Исправлено: Meister Floh, 18:59 09-05-2009
vudik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
спасибо..  
а может ты подскажэш и почему в меня график выводится прерывчасто, я и формулу поменял поставил просто х*х но оно при промтроении выводится прерывчасто, отрезками

Всего записей: 14 | Зарегистр. 11-03-2009 | Отправлено: 19:07 09-05-2009
Meister Floh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vudik
какая студия у тебя стоит? и еще в пм кинь свое мыло я тебе кину проект, который я собрал, посмотришь как он работать будет, у меня вроде нормально -  

Всего записей: 393 | Зарегистр. 04-08-2003 | Отправлено: 19:55 09-05-2009
vudik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в меня builder 6.0..
 
мыло- vudu91@meta.ua

Всего записей: 14 | Зарегистр. 11-03-2009 | Отправлено: 20:08 09-05-2009
Meister Floh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vudik
отправил.. Правда есть одно но... Откроешь ли.. Но если проблема не решится попробуй уменьшить шаг при построении функции.. И прочитай чего-нить про сглаживание графиков при выводе на канву..

Всего записей: 393 | Зарегистр. 04-08-2003 | Отправлено: 20:27 09-05-2009
vudik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
спс.. єто у меня чтото.. я на другом компе протєстил.. все норм

Всего записей: 14 | Зарегистр. 11-03-2009 | Отправлено: 20:52 09-05-2009
vudik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
я знаю что наглостю так и прет ну всетаки помогите пожалуйста... я над этой прогой ни одни сутки уже сижу а толку 0.0%... усилиями Meister Floh, я розобрался с построением графика одной функции а как сделать чтобы можна пользователю выбирать  
из нескольких и просто менять коэффициент, и выставлять границы не знаю, уже кучу всего перепробовал... одни ошибки вот то что работает
Код:
 
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
 
 
 void __fastcall TForm1::Grafik(void)
{
    float x1, x2;
    float y1, y2;
    float x;
    float y;
    float dx;
    int l,b;
    int w, h;
    float mx, my;
    int x0, y0;
 
    l = 10;
    b = Form1->ClientHeight-20;
    h = Form1->ClientHeight-40;
    w = Form1->Width - 20;
 
    x1 = 0;
    x2 = 2;
    dx = 0.00001;
 
    x = x1;
    y1 = f(x);
    y2 = f(x);
 
    do {
        y =  f(x);
        if ( y < y1 ) y1 = y;
        if ( y > y2 ) y2 = y;
        x += dx;
    } while (x <= x2);
 
    my = (float)h/abs(y2-y1);
    mx = w/abs(x2-x1);
 
    x0 = l+abs(x1*mx);
     y0 = b-abs(y1*my);
    Canvas->MoveTo(x0,b);Canvas->LineTo(x0,b-h);
    Canvas->MoveTo(l,y0);Canvas->LineTo(l+w,y0);
    Canvas->TextOutA(x0+5,b-h,FloatToStrF(y2,ffGeneral,6,3));
    Canvas->TextOutA(x0+5,b,FloatToStrF(y1,ffGeneral,6,3));
 
    x = x1;
    do {
        y = f(x);
        Canvas->Pixels[x0+x*mx][y0-y*my] = clRed;
        x += dx;
    } while (x <= x2);
}
 float __fastcall TForm1::f( float x)
{  float a;
int v=1;
if(v==1)a=x*x;
if(v==2)a=sin(x);
 return a;
}
 
//---------------------------------------------------------------------------
void __fastcall TForm1::FormPaint(TObject *Sender)
{
 Grafik();
}
//---------------------------------------------------------------------------
   void __fastcall TForm1::FormResize(TObject *Sender)
   {
     TRect rct = Rect(0,0,ClientWidth,ClientHeight);
 
    Canvas->FillRect(rct);
    Grafik();
   }
 
 
#ifndef Unit1222H
#define Unit1222H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
        TEdit *Edit1;
        TButton *Button1;
        void __fastcall FormResize(TObject *Sender);
        void __fastcall FormPaint(TObject *Sender);
        void __fastcall Button1Click(TObject *Sender);
 
private:    // User declarations
public:        // User declarations
        __fastcall TForm1(TComponent* Owner);
             void __fastcall Grafik(void);
               float __fastcall f(float x);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

пожалуйста очень нужно
может у есть какие-нибудь полезные ссылки или название книг по этой теме  
помогите бедному студенту... зарание спасибо  

Всего записей: 14 | Зарегистр. 11-03-2009 | Отправлено: 14:55 10-05-2009
Meister Floh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vudik
Ну если заранее известен набор функций - то никаких проблем - в форме делаешь радиобуттон и передаешь твоей функции f(x) вторым элементом что из радиобуттон выбрано, в функции анализируешь второй параметр и исходя из этого возвращаешь, результат..  
 
А вот если набор функций заранее не известен, тогда лучше воспользоваться маткадом (шутка) ну тогда все не так тривиально и нужно думать..

Всего записей: 393 | Зарегистр. 04-08-2003 | Отправлено: 19:02 10-05-2009
vudik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Meister Floh
а как зделать чтоб из радиобуттон возвращало значение... бо функция f(x) не видит мое а
 
 
Добавлено:

поехали дали, с этим разобрались...
 

Всего записей: 14 | Зарегистр. 11-03-2009 | Отправлено: 20:10 10-05-2009 | Исправлено: vudik, 18:56 13-05-2009
Meister Floh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Коллеги, а кто пробовал Ribbon в 2009 студии? Чтот я не нашел как можно русифицировать меню в QAT может кто подскажет.. Хотелось бы использовать его, он менее замученый чем в девочках, да и размер исполняемого файла раза в 2 меньше получается..

Всего записей: 393 | Зарегистр. 04-08-2003 | Отправлено: 13:43 11-05-2009 | Исправлено: Meister Floh, 13:45 11-05-2009
vudik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
помогите кто может, может кто знает как устранить проблему... буду рад любой инфе
дело в том что я сохраняю Image, файл создается все нормально но при загрузки этой картинки выскакует ошибка
вот коды  

Код:
if(SavePictureDialog1->Execute()){Image1->Picture->SaveToFile(SavePictureDialog1->FileName);

и
Код:
if(OpenPictureDialog1->Execute()){Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName );

что я не верно делаю

Всего записей: 14 | Зарегистр. 11-03-2009 | Отправлено: 18:53 13-05-2009
clear2121



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Hi!
Создал свой класс. Использование в главной форме нормально, а во второй вызывает ошибку при линковке

Код:
[ILINK32 Error] Error: Unresolved external '_WBase' referenced from D:\DEVELOP\S09_LAN\REDAKTOR_11\DEBUG\FREDSPRAV.OBJ

Почему появляется черточка у _WBase? Какее убрать?
СПАСИБО!

Всего записей: 311 | Зарегистр. 07-04-2005 | Отправлено: 11:14 14-05-2009
Tantos



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
clear2121
А если к проекту подцепить файл (Project->Add)?

----------
Чем больше узнаю людей, тем больше люблю компьютеры.

Всего записей: 1038 | Зарегистр. 31-05-2005 | Отправлено: 03:31 15-05-2009 | Исправлено: Tantos, 03:32 15-05-2009
clear2121



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Tantos,
В том то и дело, что призываетцеплен. Класс у меня называется WBase, создаю в Form1  

Код:
WBase    = new TWBase( Form1 );

И в Form1 все методы работают. А в Form2 уже нет. Получаю выше описанную ошибку. И h файл подцеплен.

Всего записей: 311 | Зарегистр. 07-04-2005 | Отправлено: 18:24 15-05-2009
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
clear2121
ттут можно долго гадать и советы давать, код надо смотреть...

Всего записей: 24270 | Зарегистр. 06-12-2002 | Отправлено: 20:12 15-05-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » FAQ по Borland C++ Builder


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru