• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[C++ Borland Builder] - wlasne funkcje odnoszace sie do obiektow.

Object Storage Arubacloud
0 głosów
685 wizyt
pytanie zadane 14 sierpnia 2017 w C i C++ przez R0P Nowicjusz (120 p.)

*** Brak polskich znakow po jestem w NL i laptop mam ustawiony na EN ***

Hej. Otoz sprawa wyglada tak. Chce wykorzystac np. on-clicka podpiete do obiektu stworzonego w Borlandzie - np. buttona - ktory ma cos tam robic. Zeby bylo czytelniej szybciej i wygodniej chce podac w tym on-clicku nie kod jakiegos dzialania lecz funkcje zrobiona wlasnorecznie. Niestety owa nie czyta np. pobrania z czy wczytania do obiektu gdyz tego obiektu nie widzi.

Domyslam sie ze to kwestia przekazania funkcji klasy i obiektu jako parametrow i uzycie ich w jej ciele. Niestety probojac ratowac sie wczoraj google i artykulami tam znalezionymi - nie dalo rady - nie moge za nic zrozumiec, wszystko wydaje mi sie metne i pogmatwane. 

Dlatego wrzucam tutaj kod super prostego programu - jeden przycisk i jedno pole. On-click przycisku wywoluje moja wlasna funkcje ktora ma wstawic wartosc do pola.

Licze nie tylko na pomoc w rozwiazaniu ,ale na merytoryczne wytlumaczenie co, jak i czemu. 

PLIK .CPP

//---------------------------------------------------------------------------
#include <iostream>
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"


using namespace std;

TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void wstaw_liczbe()
{
int a=5;  //deklaruje zmienna do wstawienia
pole->Text = a;   //wstawiam do edita "pole"
cout<<a;
}
void __fastcall TForm1::przyciskClick(TObject *Sender)
{
wstaw_liczbe();  //uruchamiam funkcje "wstaw_liczbe()"
}
//---------------------------------------------------------------------------

PLIK .H
 

//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// IDE-managed Components
        TButton *przycisk;
        TEdit *pole;
        void __fastcall przyciskClick(TObject *Sender);
private:	// User declarations
public:		// User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

Z gory dzieki sliczne.

1 odpowiedź

0 głosów
odpowiedź 14 sierpnia 2017 przez j23 Mędrzec (194,920 p.)

Dlaczego nie zrobisz funkcji wstaw_liczbe metodą klasy TForm1?

 

Zeby bylo czytelniej szybciej i wygodniej chce podac w tym on-clicku nie kod jakiegos dzialania lecz funkcje zrobiona wlasnorecznie.

Czy czytelniej, szybciej i wygodniej to nie byłbym taki pewny...

komentarz 14 sierpnia 2017 przez R0P Nowicjusz (120 p.)

Teraz mam tak:

.CPP

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
wstaw_liczbe();
}
//---------------------------------------------------------------------------
void TForm1::wstaw_liczbe()
{
    int a = 5; //deklaruje zmienna do wstawienia
    Edit1->Text = a; //wstawiam do edita "pole"
}

.H

//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#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 Button1Click(TObject *Sender);
private:	// User declarations
        void wstaw_liczbe();
public:		// User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

Ale pojawia sie blad:

[Linker Fatal Error] Fatal: Expected a file name: 

 

P.S. Zmienione nazwy pol bo proj. od nowa.

komentarz 14 sierpnia 2017 przez j23 Mędrzec (194,920 p.)
edycja 14 sierpnia 2017 przez j23
Kod wygląda OK, błąd konsolidatora nie ma z nim związku...
komentarz 14 sierpnia 2017 przez R0P Nowicjusz (120 p.)
Rozumiem, dziekuje. A co to ogolnie konsolidator?

Edit: Juz wiem, ale co konkretnie w takim wypadku powinnam zrobic?
komentarz 14 sierpnia 2017 przez j23 Mędrzec (194,920 p.)
Nie wiem, poszukaj w internetach, co ten błąd oznacza. Może w nazwach katalogów/plików są jakieś znaki, których kompilator/konsolidator nie lubi.

Podobne pytania

0 głosów
1 odpowiedź 1,147 wizyt
pytanie zadane 23 lutego 2017 w C i C++ przez FurryWindly Nowicjusz (120 p.)
0 głosów
1 odpowiedź 262 wizyt
pytanie zadane 1 czerwca 2016 w C i C++ przez MamNaImieTomek Nowicjusz (220 p.)
0 głosów
1 odpowiedź 694 wizyt
pytanie zadane 4 lipca 2016 w C i C++ przez Raffallo Początkujący (290 p.)

92,556 zapytań

141,403 odpowiedzi

319,559 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...