Citat:
Recimo da u aplikaciji imam neko stanje gde se na svako pomeranje misa...
Kako ulaziš u to stanje (rekao si da izlaziš sa LEVIM klikom)?
Citat:
Problem je sledeci:u ovom stanju potrebno je da mi se registruje mouse move
samo na paintBoxu(znaci i ako izadjem kursorom misa van paintBox-a treba mi
poziv mog PaintBox::onMouseMove eventa
U svakom slučaju savetujem da se koristi istovremeno i TForm OnMouseMove,
jer tada možeš da izračunaš da li je kursor miša unutar TPaintBox::OnMouseMove()
Citat:
(treba mi pozicija kursora misa relativna u odnosu na PaintBox),a ne mouseMove eventa glavne forme).
Trebalo bi da okvir TPaintBox-a možeš da izračunaš /pseudo/
Left + ActiveChild()->PaintBox->Left
Left + ActiveChild()->PaintBox->Left+Width
Top + ActiveChild()->PaintBox->Top
Top + ActiveChild()->PaintBox->Top+Height
... pa ako je kursor u okviru onda mozeš bez problema da ručno pozoveš
odgovarajući TPaintBox OnMouseMove event, pri čemu ćeš argumente morati
sam da izračunaš na osnovu ovih gore parametara.
Mada lično smatram da ti uopšte nije potreban TPainBox OnMouseMove event,
već radi samo sa OnMouseMove glavne forme a kod za iscrtavanje uradi u
običnoj funkciji.
Citat:
Hocu da eliminisem mogucnost biranja kontrola glavne forme(toolbar,meni...) kad se nalazim u tom stanju
To se obično radi sa disablovanjem svih (ili samo kritičnih) stavki menija, a slično je
i za ToolBar koji mislim da može ceo Enabled = false
Code:
// netestirano za MainMenu, probaj i jedan i drugi i vidi da li rade i koji je bolji
void __fastcall TMainForm::SwitchCtrlsMainMenu(bool onoff)
{
// PRVI NACIN:
if ( onoff )
Menu=MainMenu;
else Menu=NULL;
}
void __fastcall TMainForm::SwitchCtrlsMainMenu(bool onoff)
{
// DRUGI NACIN:
for ( i=0;i<MainMenu->Items->Count; ++i )
MainMenu->Items[i]->Enabled=onoff;
}
Citat:
i automatsku promeni izgleda kursora koju vrsi borland.
I kursore možeš da podesiš da se ponašaju prema tvojoj želji.
Citat:
while (!leftButtonDown){ //kako to proveriti(koja api funkcije)?
Ne. To se tako ne radi (ne kažem da ne može, jednostavno - tako se ne radi).
Treba:
Code:
while ( SessionInProgress )
{
// gde je SessionInProgress 'bool' koji će se menjati...
// ...uklaskom/izlaskom iz tog stanja
// Zašto, zato što (pored ostalog) sutra možeš da izmisliš kako će se sutra
// tastaturom menjati stanje a algoritam ostaje isti - menja se samo
// implementacija
}
Citat:
p=mouseCursor; //apsolutna pozicija kursora na ekranu(mislim da se u
Da li ti treba pomeranje kursora miša dok si u:
1) oblasti galvne forme
2) dok se šetaš mišem po ostatku ekrana dok si van glavne forme (ovo je mnogo
složenije)
Citat:
if (p.x!=prosli.x || p.y!=prosli.y){
//..radi vec nesto--nije bitno
prosli=p;
Ovo bi teoretski trebalo da bude sitnica, a u praksi možeš da iskusiš puno
problema sa iscrtavanjem kada se prebzo budeš "šetao" po formi ;)
Mislim da bi ipak trebao da nam daš više detalja ŠTA tačno želiš da uradiš,
jer se mi ovde možemo ubiti rešavajući nešto što se u konkretnom slučaju
rešava drugačije.