Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Jak pod "okienko" podpiąć kod.

Ostatnio zmodyfikowano 2008-11-18 19:36
Autor Wiadomość
GoldWolf
Temat założony przez niniejszego użytkownika
» 2008-10-16 20:33:09
Wiesz dla żółtodzioba pewne aspekty są trudne do zrozumienia. Jak miałem na studiach programowanie to bardzo lubiłem język C, miałem ciekawą książkę i się go uczyłem. Potem przyszedł czas na C++(co za tym idzie konstruktor/destruktor) i ni w ząb rozumiałem o co w tym biega i wtedy pomyślałem sobie, że to za trudne. Ale potem ze względu na to, że nie było czasu na naukę języka C, bo zbliżała się tworzenie pracy. A że ostatni rok uczyliśmy się Flesha to pomyślałem napisze coś w ActionScript(oparty o C/C++) więc bez problemu było mi się w nim poruszać. Teraz nie chodzą do szkoły i pomyślałem, że czas się w czymś rozwijać, lubię programować. Pozostało tylko wybrać odpowiedni język. A ponieważ często słyszałem stwierdzenie, że podejście obiektowe ma zalety, to pomyślałem po co się bawić w C jak można spróbować C++(Java odpadła ze względu na toporność, chociaż słyszałem, że na zachodzie jest bardzo popularna i jakoby ma przyszłość). Nie chcę się tu spierać czy programowanie obiektowe jest lepsze czy gorsze, szczególnie, że moje doświadczenie jest znikome. Więc gdy zacząłem czytać o winapi to zły byłem, nie pozostaje mi nic innego jak stworzyć własne api ;-).
P-2100
lynx
» 2008-10-16 21:02:11
Z tego co ty powiedziałeś chcesz połączyć program okienkowy z graficznym. Tak jak Pan Piotr mówi może być to trudne do zrobienia. Łatwiej by było aby najpierw był program okienkowy, a później graficzny. ;P Choć możesz spróbować w Devie napisać prostą aplikację graficzną, a później napisać kod aplikacji okienkowej. Mój projekt z początku jest okienkowy, a później dołącza do tego program graficzny. Bo z tego co pamiętam to konsola wtedy nie kasuje się, a jedynie minimalizuje, więc warto spróbować.

Może Ci się przydać funkcja system("sciezka");, ale to bardziej jeżeli byś tworzył dwie aplikacje. Poniewać ona uruchamia dany program. Przykładowo: system("c://lottek.exe");
P-2101
GoldWolf
Temat założony przez niniejszego użytkownika
» 2008-10-16 21:18:41
Wydaje mi się, że idzie to obejść, jak wcześniej wspomniałem w Bulderze pod batona możesz cały kod podpiąć. Sprawdziłem nie ma z tym żadnych problemów. Jedynie trzeba się zastanowić jak to zrobić i wiadomo komunikaty z konsoli zamienić na odpowiednie w okienku.
P-2104
DejaVu
» 2008-10-17 20:27:46
Jak wpadniesz na coś prostego to napisz - ja nie widzę prostej drogi na zrobienie tego.
P-2162
GoldWolf
Temat założony przez niniejszego użytkownika
» 2008-10-19 19:22:44
Teraz właśnie jestem w trakcie pracy nad nowym projektem, prostą gra tekstową pod moich znajomych, to postaram się zastosować właśnie to o co mi chodziło. Projekt trochę potrwa, ale wrzucę jakiś kawałek działającego kodu jak wszystko dobrze się ułoży to może i przed końcem miesiąca.
P-2197
GoldWolf
Temat założony przez niniejszego użytkownika
» 2008-10-21 21:14:38
Faktycznie nie ma prostego prze konwertowania aplikacji konsolowych na bildera, ale jak
mówiłem prosto jest używać kod C++ w Bilderze. Wprawdzie projekt jest w fazie budowy.

C/C++
//---------Test.cpp-----------------------------------------------------------
#include <string>
#include <fstream>
#include <iomanip>
#include <cstdlib>
#include <iostream>  //prawdopodobnie niepotrzebna
#include <vcl>
#include "Unit1.h"
#pragma hdrstop
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 * Form1;
using namespace std;
const char * plik = "Konfig.gra";
//metoda Klasy------------------------------------------------------------
void osoba::zapamietaj( char * napis, int lata ) {
    strcpy( nazwisko, napis );
    wiek = lata;
}
//------------------------------------------------------------------------
struct pups { // testowa sktruktura dla graczy
    char nazwa[ 9 ];
    //  int licznik_gracza;
};
int rek; // dla modyfikacji rekordów powiązana z licz
int licz = 0; // liczy liczbę wpisanych graczy
pups Gracze; // struktóra dla graczy przechowująca ich parametry

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1( TComponent * Owner )
    : TForm( Owner )
{
   
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate( TObject * Sender )
{
    Label1->Caption = "Wprowadź imię gracza ? Twórco ;-)";
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ZapiszClick( TObject * Sender )
{
   
    ofstream f( plik, ios::binary | ios::app );
    if( !f.is_open() ) {
        Memo1->Text = "Błąd przy tworzeniu plku ";
    }
    if(( Edit1->Text ) != "\0" ) {
        strcat( Gracze.nazwa,( Edit1->Text ).c_str() );
        Edit1->Clear();
        f.write(( char * ) & Gracze, sizeof Gracze );
    }
    Memo1->Text = sizeof Gracze;
    f.close();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::OdczytajClick( TObject * Sender )
{
   
    fstream p;
    p.open( plik, ios::in | ios::out | ios::binary );
   
    if( p.is_open() ) {
        p.seekg( 0 );
       
        Memo1->Text = "Plik konfiguracyjny: ";
        Memo1->Lines->Add( AnsiString( plik ) );
        Memo1->Lines->Add( "--------------" );
        while( p.read(( char * ) & Gracze, sizeof Gracze ) ) {
            Memo1->Lines->Add( AnsiString( Gracze.nazwa ) );
            //strcat((Memo1->Text).c_str(), Gracze.nazwa);
            //    cout << licz++ << ":  " << Gracze.nazwa << endl;
        }
    } else { Label1->Caption += "Dupa !"; }
    if( p.eof() ) {
        p.clear();
    }
    p.close();
}
//---------------------------------------------------------------------------
P-2232
GoldWolf
Temat założony przez niniejszego użytkownika
» 2008-10-21 21:19:01
C/C++
//---------Test.h------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <string>
#include <fstream>
#include <iomanip>
#include <cstdlib>
// --------------- KLASA --------------------------
class osoba {
    char nazwisko[ 80 ];
    int wiek;
public:
    void zapamietaj( char * napis, int lata );
    void wypisz() {
        cout << nazwisko << ", lat: " << wiek << endl;
    }
};
// --------------- END KLASA --------------------------
//-------------KLASA FORMY-----------------------------------------------
class TForm1
    : public TForm
{
    __published: // IDE-managed Components
    TButton * Zapisz;
    TEdit * Edit1;
    TLabel * Label1;
    TMemo * Memo1;
    TButton * Odczytaj;
    void __fastcall FormCreate( TObject * Sender );
    void __fastcall ZapiszClick( TObject * Sender );
    void __fastcall OdczytajClick( TObject * Sender );
private: // User declarations
public: // User declarations
    __fastcall TForm1( TComponent * Owner );
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 * Form1;
//---------------------------------------------------------------------------
#endif


Oczywiście, w bilderze jest dużo rozwiązań, które pewnie nie pozwoliłby mi się tak katować, ale dopóki ich nie znam to mogę spokojnie programować po staremu.
P-2233
GoldWolf
Temat założony przez niniejszego użytkownika
» 2008-11-17 21:34:54
Trochę to wszystko trwało ale tu jest poprawiony kod chociaż nadal w fazie beta bym powiedział

C/C++
//-----------------Unit.cpp------------------------------------------------------
#include <string>
#include <fstream>
#include <iomanip>
#include <cstdlib>
#include <iostream>
#include <vcl>
#include "Unit1.h"
#pragma hdrstop
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 * Form1;
using namespace std;
const char * plik = "Konfig.ra";
streampos miejsce; //posłuży do przeprowadzenia edycji wprowadzonych danych
char naz[ 9 ]; //akumulator na imię
int rec = - 1; //przechwouje nr rekord
//metoda Klasy--------------------------------------------------------
void Gracze::zapamietaj( char * napis, int lata ) {
    strcpy( imie, napis );
    licznik_gracza = lata;
}
void Gracze::show() {
    strcpy( naz, imie );
    //   TLabel *Label1;
    // Label1->Caption = imie;
}
//--------------------------------------------------------------------
__fastcall TForm1::TForm1( TComponent * Owner )
    : TForm( Owner )
{
    Label1->Caption = "Wprowadź imię gracza ? Twórco ;-)";
    licz = 0;
}
//--------------------------------------------------------------------
void __fastcall TForm1::ZapiszClick( TObject * Sender )
{
    ofstream f( plik, ios::binary | ios::app );
    if( !f.is_open() ) {
        Memo1->Text = "Błąd przy tworzeniu plku ";
    }
    if(( licz > 1 ) ||( licz < 0 ) ) {
        Edit1->Text = "KONIEC!!!";
    } else {
        if(( Edit1->Text ) != "\0" ) {
            licz++;
            strcpy( naz,( Edit1->Text ).c_str() );
            G.zapamietaj( naz, licz );
            f.write(( char * ) & G, sizeof G );
            Edit1->Clear();
        }
    }
    f.close();
    Label3->Caption = licz;
}
//--------------------------------------------------------------------
void __fastcall TForm1::OdczytajClick( TObject * Sender ) {
    p.close();
    p.clear();
   
    int pi = 0;
    p.open( plik, ios::in | ios::out | ios::binary );
    if( p.is_open() ) {
        p.seekg( 0 );
       
        Memo1->Text = "Plik konfiguracyjny: ";
        Memo1->Lines->Add( AnsiString( plik ) );
        Memo1->Lines->Add( "------------------------" );
        while( p.read(( char * ) & G, sizeof G ) ) {
            pi++;
            G.show();
            Memo1->Lines->Add( AnsiString( naz ) );
            Memo1->Lines->Add( AnsiString( licz = G.wypisz() ) );
            //  licz = G.wypisz();
        }
        //        Label2->Caption= "Wprowadz nr rekordu: ";
    } else { Label1->Caption = "Dupa !"; }
    if( p.eof() ) {
        p.clear();
        Label2->Caption = "Wprowadź nr rekordu: ";
    }
    //   p.close();
   
}
//---------------------------------------------------------------------------
void __fastcall TForm1::zatwierdzClick( TObject * Sender )
{
    bool tester;
   
    if(( Edit2->Text ) != "\0" ) {
        tester = isdigit( *(( Edit2->Text ).c_str() ) ) == 0 ? false
            : true;
        if( tester == true ) {
            rec = atoi((( Edit2->Text ).c_str() ) );
            rec--;
            Label3->Caption =( AnsiString( rec ) );
        }
        if( rec == 0 || rec == 1 ) {
            miejsce = rec * sizeof G;
            p.seekg( miejsce );
            if( p.fail() ) {
                Label3->Caption = "Jakiś problem z rekordem(pozycją)";
            }
        } else { Label3->Caption = "Błąd rekordu"; }
        p.read(( char * ) & G, sizeof G );
        G.show();
        Label1->Caption =( AnsiString( naz ) );
        //   Memo1->Lines->Add(AnsiString(licz = G.wypisz()));
        //  licz = G.wypisz();
    } else { Label1->Caption = "Dupa !"; }
    if( p.eof() )
         p.clear();
   
    Label2->Caption = "Wprowadź nową nazwę panie: ";
   
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click( TObject * Sender )
{
    if(( Edit1->Text ) != "\0" ) {
        strcpy( naz,( Edit1->Text ).c_str() );
        G.zapamietaj( naz, rec + 1 );
        p.seekg( miejsce );
        p.write(( char * ) & G, sizeof G ) << flush;
        Edit1->Clear();
    }
    if( p.fail() )
         Label3->Caption = "Jakiś problem z zapisem!";
   
    p.clear();
    p.close();
   
}
//---------------------------------------------------------------------------
P-2567
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona