Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

borland builder- "CloseQuery"

[es] :: C/C++ programiranje :: borland builder- "CloseQuery"

[ Pregleda: 2038 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

IDE

Član broj: 53403
Poruke: 586
*.crnagora.net.



Profil

icon borland builder- "CloseQuery"06.05.2005. u 22:16 - pre 228 meseci
moze li iko objasniti kako se koristi "CloseQuery"
znaci da se pri zatvaranju programa prikaze ono klasicno "hocete li sacuvati promjene" itd.
kako bi izgledao kod za tako nesto...?i gdje se tcno u sors-u stavlja?
treba li koji #include???
there's something out there
waiting for us,
and it ain't no man...
 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.plus.com.



+4 Profil

icon Re: borland builder- "CloseQuery"06.05.2005. u 22:39 - pre 228 meseci
Code:
void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)


Jednostavno, ovaj event okida pre nego se zatvori forma. Postavljanjem CanClose = false, event OnClose() ne okida i forma se ne zatvara.
Kako cesh odluchiti da li forma sme da se zatvori je na tebi... Da li treba neshto "snimiti" ili ne, nije nichim vezano za VCL terminologiju.
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4901
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: borland builder- "CloseQuery"06.05.2005. u 22:45 - pre 228 meseci
U Borland C++ Builder-u uslovno zatvaranje možeš da realizuješ i sa
OnClose() i sa OnCloseQuery(). Trebalo bi da imaš primere u BCB Help-u
za sve ovo što si pitao.

Code:

//
// Tebe zanima 'Action = caNone'
// enum TCloseAction { caNone, caHide, caFree, caMinimize };
//
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
   if ( MessageDlg( "Zatvori program (prvi način) ?", mtConfirmation,
        TMsgDlgButtons() << mbYes << mbNo, 0 ) == mrNo )
   {
      // vrati se nazad...     
      Action = caNone;
   }
}



Code:

//
// Tebe zanima 'CanClose = false'
//
void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
   if ( MessageDlg( "Zatvori program (drugi način) ?", mtConfirmation,
        TMsgDlgButtons() << mbYes << mbNo, 0 ) == mrNo )
   {
      // vrati se nazad...     
      CanClose = false;
   }
}

 
Odgovor na temu

IDE

Član broj: 53403
Poruke: 586
*.crnagora.net.



Profil

icon Re: borland builder- "CloseQuery"08.05.2005. u 20:14 - pre 228 meseci
pa...i jsano mi je, i nije mi jasno...
uglavnom, pokusavao sam na nekom primjeru da to shvatim, ali se, na zalost, ne mogu pohvaliti nekim uspjehom...
kad god sam stavio i nesto slicno onome sto ste mi rekli, stizalo mi je obavjestenje....moguce da grijesim, ali kao..."CloseQuery nije dio Form-a1" ,ili tome slicno, ne prepoznaje "CanClose"...
ne mogu da povezem kako bi kod za takvo nesto izgledao...
mozda je malo(?) glupo pitanje, ali moram li,na primjer, sam praviti novu formu koja ce sadrzati "yes" , "no" i "cancel" i tu staviti staticki tekst "do you want to save changes to this file", ili je to automatski kreirano u borlandu,kao npr. "replace" ili neka druga forma...
aaa...moze li malo konkretnije? hvala na bilo kakvoj pomoci...
there's something out there
waiting for us,
and it ain't no man...
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4901
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: borland builder- "CloseQuery"08.05.2005. u 20:35 - pre 228 meseci
BCB6 / Main Menu / File / New / Application

U "Object Inspectory" predji na karticu "Events" i pronadji "OnCloseQuery".

Duplim klikom miša klikni na polje desno od njega.

Pojaviće ti se:

Code:

void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{

}
//---------------------------------------------------------------------------\


Zatim unutar funkcije koju to je već generisao IDE, ubaci kod:
Code:

   if ( MessageDlg( "Zatvori program?", mtConfirmation,
        TMsgDlgButtons() << mbYes << mbNo, 0 ) != mrYes )
   {
      // vrati se nazad...     
      CanClose = false;
   }


... dakle sve zajedno (IDE kod + tvoj kod) treba da izgleda ovako:

Code:

void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
   if ( MessageDlg( "Zatvori program?", mtConfirmation,
        TMsgDlgButtons() << mbYes << mbNo, 0 ) != mrYes )
   {
      // vrati se nazad...     
      CanClose = false;
   }
}
//---------------------------------------------------------------------------


Sve što treba dalje da uradiš je da startuješ program (najbolje ga prethodno snimi
u neki folder). Kada ga pokreneš, probaj da ga zatvoriš... i sam pogledaj šta se
dešava.

Zaključak:

1) CanClose je *nemoguće* da ne postoji kad je to argument funkcije
FormCloseQuery() koju je generisao sam IDE!

2) Očigledno je da ne moraš *sam* da praviš dijalog za "Zatvori program", jer
funkcija MessageDlg() poziva sistemski Windows dijalog koji je već uradio ko zna
ko u Majkrosoftu.

Za složenije dijaloge tipa "Replace" postoje gotove komponente (pogledaj) karticu
Dialogs u tvom BCB-u.
 
Odgovor na temu

IDE

Član broj: 53403
Poruke: 586
*.crnagora.net.



Profil

icon Re: borland builder- "CloseQuery"09.05.2005. u 10:31 - pre 228 meseci
da,da, znam da ima gotova komponenta za "replace", ja sam i rekao "moram li praviti ili ima gotova kao npr. "replace""(parafraziram)
Hvala ti na pomoci, pogledacu ono sto si mi rekao...
moram ti pohvaliti znanje, x files, bilo bi fino kad bi nam svima rekao iz koje si ti knjige ucio C++ || Borland Builder :-)
kad smo vec kod toga, cisto da pomenem: pg je takav grad gdje bukvalno nema nigdje da se kupi knjiga iz borland builder-a!!zato uvijek i postavljam pitanja ovakvog tipa,jer sve moram sam da "provaljujem" u borland-u,ali nekad ne pomaze ni dobra volja, ni koliki god kliker da imas...
there's something out there
waiting for us,
and it ain't no man...
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4901
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: borland builder- "CloseQuery"09.05.2005. u 18:12 - pre 228 meseci
Citat:

bilo bi fino kad bi nam svima rekao iz koje si ti knjige ucio C++ || Borland Builder :-)

Uglavnom imam sve knjige za C++Builder, nesto u originalu a nesto elektronso,
ali u principu nisam ucio iz knjiga vec iz Help datoteka, FAQ koje se mogu pronaci
na netu i sa (stranih) foruma. Danas se programiranje ne uci iz njiga jer je oblast toliko siroka da je nemoguce sve smestiti na papir.
Citat:

kad smo vec kod toga, cisto da pomenem: pg je takav grad gdje bukvalno nema nigdje da se kupi knjiga iz borland builder-a!!

Skoro da ih nema ni u Beogradu. Svojevremeno sam knjige za BCB nalazio u CET
biblioteci (naravno na engleskom). A najvise sam ih narucivao iz Kanade, a
"narucivao" sam ih i kreditnim karticama.

Inace ja sam odrastao u tvom komsiluku - u Baru. Odavno nisam tamo, dolazim
samo preko leta na more.

I da dokrajcimo pricu o OnClose() i OnCloseQuery():

OnCloseQuery() ce *biti* pozvana cak i kada sistem krene u Restart dok OnClose()
*nece*!
 
Odgovor na temu

IDE

Član broj: 53403
Poruke: 586
*.crnagora.net.



Profil

icon Re: borland builder- "CloseQuery"10.05.2005. u 08:18 - pre 228 meseci
sad mi je sve u vezi CloseQuery-a u redu! ma napisao sam bio dobar kod, koji sada radi, ali je problem sto ne znam sve pojedinosti u vezi borlanda,gdje sve to staviti, ali kazem sada je sve u redu...Vidim ima u events i nesto kao OnResize, mozda je to u vezi jedne stvari koja mi je pomalo "cudna":
uzmimo npr. obicni memo, stavimo na formu, kompajlirajmo sve to i onda pritisnimo "maximize", aplikacija ce se zaista povecati, ali Memo ostaje iste velicine!!!!
malo je "glupo" sto to ljudi koji su pravili borland nisu rijesili automatskim povecavanjem i prilagodjenjem memo-a...
dakle, da li se zaista to rijesava u events-u?kakav bi otprilike kod bio?
kazes "nema ni u beogradu", pa to bi onda otprilike znacilo da je nema nigdje u SCG!!pa jesi li onda ikada razmisljao da ti napises neku,ako ne veliku knjigu, a onda bar skriptu ipa borland c++ builder za neupucene ili tako nesto...knjiga koja bi ljude uvela malo u borland, pa ne bi morali kao ti i ja samo citati help i engleske sajtove i tako uciti borland...na taj nacin bi uradio nesto sto, ispada, niko u ovoj zemlji uradio nije...ja npr. imam neku sa faksa sto je moj profesor pisao, ali je jako ,jako slaba...
samo ideja...ali jako interesantna...
there's something out there
waiting for us,
and it ain't no man...
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4901
*.ptt.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: borland builder- "CloseQuery"10.05.2005. u 09:38 - pre 228 meseci
Citat:

uzmimo npr. obicni memo, stavimo na formu, kompajlirajmo sve to i onda pritisnimo "maximize", aplikacija ce se zaista povecati, ali Memo ostaje iste velicine!!!!


To tako i treba. Ako hoces da tvoja kontrola prati velicinu svog roditelja (koji je
u tvom slucaju Form1), onda treba da podesis u Object Inspector-u Align=alClient
umesto alNone, sto je podeseno po default-u.

Takodje , ako tvom TMemo stavis unutar TPanela, onda mu je taj TPanel roditelj,
i prethodno opisani postupak ce vaziti u odnosu na taj TPanel.

Citat:

malo je "glupo" sto to ljudi koji su pravili borland nisu rijesili automatskim povecavanjem i prilagodjenjem memo-a...

Nije glupo, tako je svuda. Ne mogu oni da znaju sta programer hoce!

Citat:

pa jesi li onda ikada razmisljao da ti napises neku,ako ne veliku knjigu, a onda bar skriptu ipa borland c++ builder za neupucene ili tako nesto...knjiga koja bi ljude uvela malo u borland, pa ne bi morali kao ti i ja samo citati help i engleske sajtove i tako uciti borland...na taj nacin bi uradio nesto sto, ispada, niko u ovoj zemlji uradio nije...ja npr. imam neku sa faksa sto je moj profesor pisao, ali je jako ,jako slaba...

Kjiga zahteva puno angazovanja, a ja sam trenutno prezauzet programiranjem,
pa nemam vremena ni da disem. A tehnologija LETI! Dok napises par poglavlja,
vec je sve zastarelo...

 
Odgovor na temu

IDE

Član broj: 53403
Poruke: 586
*.crnagora.net.



Profil

icon Re: borland builder- "CloseQuery"10.05.2005. u 23:24 - pre 228 meseci
probao sam alClient, ali mi onda memo pokrije citavu formu (osim padajucih menija), onda ne mogu pristupiti dugmadima koja su mi bila mozda ispod padajucih menija, ili na nekom drugom polozaju na formi???
mozda se treba podesiti neko ogranicenje...mozda neku komponentu...ili ogranicenje u vidu koda??
there's something out there
waiting for us,
and it ain't no man...
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4901
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: borland builder- "CloseQuery"11.05.2005. u 14:37 - pre 228 meseci
Onda moras da stavis te dugmice na TPanel...
 
Odgovor na temu

IDE

Član broj: 53403
Poruke: 586
*.crnagora.net.



Profil

icon Re: borland builder- "CloseQuery"11.05.2005. u 23:00 - pre 228 meseci
pokusao sam,stavio sam Panel ispod padajucih menija,na njega dugmice, postavio sam memo komponenti "Align=alClient", ali onda se ona povecala i njen pocetak (nisam mjenjao inicijalni sadrzaj na njoj, nego je ostao "Memo1" na njoj), znaci ono "Memo1" bilo ISPOD panel-a, i cak kad se klikce misem da pocnem pisati tu gdje se vidi, ono ne moze, vec VJEROVATNO (nisam pokusavao) se mora par puta enter lupiti da kursor dodje ispod, da ga vidimo...
ste je potrebno uraditi?
da li u String list editor-u da podesim da mi tekst pocinje od linije x (one koja se vidi),ili kako drukcije?
ali ako bi tako uradio, onda kad snimim fajl, uvijek ce postojati praznina iznad teksta, a s druge strane, kad otvorim u memo neki tekst, nikad se nece vidjeti pocetak za tih par linija...tako da to onda nije dobar nacin??
imate li kakvo rjesenje??
there's something out there
waiting for us,
and it ain't no man...
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4901
*.ptt.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: borland builder- "CloseQuery"12.05.2005. u 09:34 - pre 228 meseci
Nesto si zabrljao.

1) Stavi TPanel pri vrhu i njega postavi Align = alTop
2) Stavi dugmice na TPanel
3) Stavi TMemo na sredinu i postavi Align = alClient

Mislim da si bio zaboravio da proglasis TPanel da bude AlTop
 
Odgovor na temu

IDE

Član broj: 53403
Poruke: 586
*.crnagora.net.



Profil

icon Re: borland builder- "CloseQuery"12.05.2005. u 10:33 - pre 228 meseci
da, u prvu si, tu sam zabrljao....
sada je sve u redu!!!!
hvala puno!!!
there's something out there
waiting for us,
and it ain't no man...
 
Odgovor na temu

[es] :: C/C++ programiranje :: borland builder- "CloseQuery"

[ Pregleda: 2038 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.