• 11 odgovora
  • 3.937 pregleda
Čudan problem sa Borland C++ -om 27.09.2005. u 14:26 · pre 256 meseci #1
Prije par dana sam prešao sa Delphija na Borland C++. Moram priznati da mi se C++ sintaksa više svidjela utoliko što se koriste zagrade { i } umjesto Then Begin naredbi što omogućava pregledniji kod. Već na prvi pogled uvidio sam da prijelaz neće biti težak je je sve veoma slično, tako da sam počeo odmah prepisivati programe iz Delphija u C++.

No sad imam jedan problem. U programu kojeg radim par dana nikako ne mogu pozvati drugu formu (Forma o programu). Koristim sljedeći kod:

Code:

frmAbout->ShowModal();


Prethodno sam u dodao #include "About.h" i sve se lijepo kompajlira i radi sve dok ne probam pozvati frmAbout. Kada klikne ne dogodi se ništa!
Ako napravim novi projekt i uradim sve isto, program savršeno funkcionira! Nikako mi nije jasno zašto se to događa?
Re: Čudan problem sa Borland C++ -om 27.09.2005. u 15:10 · pre 256 meseci #2
Na osnovu koda koji si pokazao, ne moze se zakljuciti u cemu je problem, jer si
sve lepo uradio - tim vise sto komplajler ne prijavljuje gresku.

Mislim da ti je na neki nacin ostecen Project1.bpr ili Project1.cpp fajl! Fajl Unit1.cpp
verujem da je u redu, jer bi i sam primetio problem.
Re: Čudan problem sa Borland C++ -om 27.09.2005. u 17:51 · pre 256 meseci #3
Main.obj je bio oštećen pa nije radilo. Sada su mi proradile i neke druge opcije.

Još jedan problem:

Kako koristiti KeyPres?

Ja sam koristio:
Code:

         if(Key == VK_LEFT)
         {
                    ...
         }


ali mi ništa ne uradi iako uredno kompajlira
Re: Čudan problem sa Borland C++ -om 27.09.2005. u 19:59 · pre 256 meseci #4
Ukljuci:

KeyPreview = true

i Object Inspectoru forme za koju zelis taj dogadjaj, ili direktno u konstruktoru
dodaj taj kod.

Drugm recima, TForm (Form1) ima property KeyPreview, koga treba da postavis
na true.
Re: Čudan problem sa Borland C++ -om 27.09.2005. u 23:00 · pre 256 meseci #5
Nece pa nece! Ne radi bez obzira na keypreview.

Evo koda:
Code:

void __fastcall TfrmMain::FormKeyPress(TObject *Sender, char &Key)
{
        if(Key == 13)
        {
                Application->MessageBoxA("q", "ee", MB_OK);
        }
}


Kompajlira ali ne reagira. Čak sam stavio i !=13 ali neće...
Re: Čudan problem sa Borland C++ -om 28.09.2005. u 08:16 · pre 256 meseci #6
Ne mozes pisati
Code:
 if(Key == 13)
        {
                Application->MessageBoxA("q", "ee", MB_OK);
        }


probaj sa npr. if( Key == 0x0F ) i onda bi trebalo raditi. Barem u svim mojim programima radi (odnosno, hexadecimalna vrijednost za tipku koja ti treba sa tastature).
Potpis
:: Don't drink contaminated water - drink beer ::
Re: Čudan problem sa Borland C++ -om 28.09.2005. u 08:42 · pre 256 meseci #7
Citat:
maximus_1
Code:
 if(Key == 13)
        ....


13 je "VK_RETURN" tj. taster Enter.

VK_LEFT ti nece ni raditi na OnKeyPress ali na OnKeyDown tj. OnKeyUp hoce (OnKeyPress se izvrsava kad pritisnes i pustis taster, OnKeyDown/Up cim pritisnes/pustis).
Slobodno pisi if(Key==VK_LEFT), ali u KeyDown/Up event-ima.
Re: Čudan problem sa Borland C++ -om 28.09.2005. u 14:23 · pre 256 meseci #8
Citat:
Miloš Vukotić:...Slobodno pisi if(Key==VK_LEFT), ali u KeyDown/Up event-ima.


Da. Koristi OnKeyUp (ili OnKeyDown) dogadjaje. To provereno radi.
Potpis
Sad mu nije nista, ubio si ga k'o zeca...
Re: Čudan problem sa Borland C++ -om 28.09.2005. u 19:10 · pre 256 meseci #9
Ma znao sam ja to još iz Delphija samo što nije palilo.

KeyPreView ne treba!

Problem je bio opet u C++u vjerojatno se opet nešto poremetilo. Napravio sam novi projekt iskopirao kod i sve savršeno radi. Od sada ću češće praviti BackUp koda.

Ipak, Hvala na odgovorima.
Re: Čudan problem sa Borland C++ -om 28.09.2005. u 19:25 · pre 256 meseci #10
Code:

KeyPreView ne treba!


Kad na formi budes imao vise komponenti, koje i same mogu imati fokus, pa ti
tastaturne precice iznenada ne budu radile - seti se se KeyPreview-a ;) ...

Re: Čudan problem sa Borland C++ -om 29.09.2005. u 12:52 · pre 256 meseci #11
Citat:
X Files:
Code:

KeyPreView ne treba!


Kad na formi budes imao vise komponenti, koje i same mogu imati fokus, pa ti
tastaturne precice iznenada ne budu radile - seti se se KeyPreview-a ;) ...


Dobro, zapamtit cu to.
Re: Čudan problem sa Borland C++ -om 29.09.2005. u 14:33 · pre 256 meseci #12
Citat:

Dobro, zapamtit cu to.


Mozes i odmah da probas sam. Stavi na primer TMemo ili TRichEdit ili TEdit ili
cak TPageControl na glavnu formu.

Neka od tih kontrola ce imati fokus za pocetak (TabOrder). Tada tvoj
OnKeyDown/OnKeyPress za GLAVNU FORMU nece raditi, jer i doticne kontrole
imaju svoje OnKeyDown/OnKeyPress.

Tada je KeyPrevew OBAVEZAN!!!

Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme