Win32 a Win64 > Obecné

TDialog.Execute versus TForm.OnActivate

(1/2) > >>

vladyk:
Vidím, že to tady moc nežije, tak přihodím jednu drobnost :-)

Mám dvě prakticky shodné aplikace. V jedné z nich se po každém spuštění TDialog.Execute (na typu dialogu nezáleží) volá OnActivate formuláře a ve druhé ne (aby to nebylo tak easy, tak nejprve to odnese MainForm a když je ošetřen, opakuje se totéž na právě aktivním formuláři). Patrně je někde nějaká totální blbost typu nenastaveného parametru, ale ať koukám jak koukám a debugguju jak debugguju do libovolné hloubky, tak na ni nemůžu přijít... takže v té první aplikaci blokuju opakovanou aktivaci postižených formulářů, zatímco  ta druhá funguje bez problémů.

S formuláři se přitom nedělají žádné kotrmelce, hlavní je přítomen od spuštění do ukončení aplikace a ostatní se volají via ShowModal, obsazení paměti nijak dramatické.

Co mám u té první aplikace blbě (nebo u obou nenastavené)? Lezl jsem step-by-step až do assembleru, ale pořád nikde nevidím rozdíl... až když se otevře příslušné dialogové okno a odklepne soubor...  >:(

pf1957:

--- Citace: vladyk  21-03-2013, 04:33:05 ---Co mám u té první aplikace blbě (nebo u obou nenastavené)? Lezl jsem step-by-step až do assembleru, ale pořád nikde nevidím rozdíl... až když se otevře příslušné dialogové okno a odklepne soubor...  >:(

--- Konce citace ---
A v aplikaci, kde se OnActivate nevyskytuje sis nehral s GWL_STYLE?

Protoze normalni je, ze pri ziskani focusu se ta udalost vyskytuje.
A kdyz se divam do zdrojovek, tak pokud to neni nejake MDI okno ev. okno se stylem WS_CHILD, tak uz zadne dalsi moznosti, jak udalost potlacit, nevidim.

A pokud to potrebujes resit, tak to IMHO znamena, ze jsi do OnActive umistil cinnost, ktera tam nepatri  :)

vladyk:
GWL_STYLE? To ani nevím, co je :-)

Nojo, nepatří, nepatří... možná je to pravda, i když jsou tam normální inicializační úkony, žádná vražda... ale proč se po ní sápe ausgerechnet akorát Execute od TDialogů? Žádný jiný okno neškodí.

Jinak se to pochopitelně dá docela snadno obejít (příznak prvního otevření), ale je to stejný, jak ondyno s tím přeukládáním data do SQL - nejde o to, že se to dá vyřešit, ale kua proč to vůbec nastává... asi už jsem na to moc starej, zlatý CP/M nebo ještě líp ASPO1 :D

pf1957:

--- Citace: vladyk  21-03-2013, 14:22:54 ---ale kua proč to vůbec nastává... asi už jsem na to moc starej, zlatý CP/M nebo ještě líp ASPO1 :D

--- Konce citace ---
Kontrolni otazka: na tom main formu v aplikaci, kde k tomu dochazi: mas tam alespon jeden focusable widget tj. potomka TWinControls? Kdyz tak tam zkus cvicne polozit treba TButton, co se stane.


--- Citace: vladyk  21-03-2013, 14:22:54 ---zlatý CP/M nebo ještě líp ASPO1 :D

--- Konce citace ---
Jenomze treba CP/M bylo v podstate jen souborove I/O a vsechno ostatni sis musel oprgat a jak sis to zprasil, taks to mel.

vladyk:

--- Citace: pf1957  21-03-2013, 15:01:35 ---Kontrolni otazka: na tom main formu v aplikaci, kde k tomu dochazi: mas tam alespon jeden focusable widget tj. potomka TWinControls? Kdyz tak tam zkus cvicne polozit treba TButton, co se stane.

--- Konce citace ---
Na main ne, na těch vnořených, co přišly na řadu pak, jo... no, beru to na sebe, musím se k OnActivate postavit trochu jinak a důsledně odlišovat inicializaci a reaktivaci. Chleba to nežere :-)


--- Citace: pf1957  21-03-2013, 15:01:35 ---[Jenomze treba CP/M bylo v podstate jen souborove I/O a vsechno ostatni sis musel oprgat a jak sis to zprasil, taks to mel.

--- Konce citace ---

To mi nevadilo, jednu úlohu jsem si dokázal ohlídat vždycky a víc jich nebylo potřeba - koneckonců když zatloukáš hřebíky, tak přitom taky obvykle nepíšeš dopis :-) A interrupty fungovaly taky ve vlastní režii... Dnešní programování a hlavně "programování", kdy si lidi stahujou jednotlivý kostky, aniž by tušili, co se vevnitř děje, mi přijde takový nedopečený, prostě lego a nedejpánbu, když se daj k sobě dvě špatný kostičky...

Co nadělám, nějak to musím doklepat, byť jsem srdcem zůstal v DOSový éře... :-) Pomalu přecházím na další problém, s jedním serverem se moje aplikace dohaduje několik desítek vteřin, že se dohodnou... taky zajímavý, něco jako registr vozidel :-D

Navigace

[0] Seznam témat

[#] Další strana

Přejít na plnou verzi