Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
BUG: Old bug - releasing the form from toolbar
Message
De
04/10/2005 13:53:04
 
 
À
04/10/2005 08:05:06
Information générale
Forum:
Visual FoxPro
Catégorie:
Visual FoxPro Beta
Divers
Thread ID:
01054353
Message ID:
01055969
Vues:
32
>>>Hi,
>>>
>>>Still can't release form using button on toolbar. Try to create a form with toolbar with a button. In the button's click event release the form.
>>>After click the form is still on screen and no way to close it.
>>>
>>>Here is the sample code:
>>>
>>>
>>>local f1
>>>f1 = createobject('frm')
>>>f1.show
>>>read events
>>>
>>>* ----------
>>>define class frm as Form
>>>
>>>	AutoCenter = .t.
>>>	ShowWindow = 2
>>>	Toolbar = ''
>>>
>>>	procedure Init
>>>		ThisForm.Visible = .t.
>>>		ThisForm.Toolbar = createobject('tbr')
>>>		ThisForm.Toolbar.Dock(0)
>>>		ThisForm.Toolbar.Show
>>>	endproc
>>>
>>>	procedure Release
>>>		ThisForm.Toolbar = .NULL.
>>>	endproc
>>>
>>>	procedure Unload
>>>		clear events
>>>	endproc
>>>
>>>enddefine
>>>
>>>* ----------
>>>define class tbr as Toolbar
>>>
>>>	ShowWindow = 1
>>>
>>>	add object btn as CommandButton;
>>>		with Width=100, Height=25, Caption="Close window"
>>>
>>>	procedure btn.Click
>>>		_SCREEN.ActiveForm.Release()
>>>	endproc
>>>
>>>enddefine
>>>
>>>
>>>This bug force me to include a timer on the form and release the form from timer event. Toolbar's button only starts the timer.
>>>
>>>Best,
>>>
>>>Janusz Czudek
>>>WORD Software
>>>http://www.wordsoft.com.pl
>>
>>This is a deadlock bug.
>>The btn.Click it lock the toolbar live semaphore.
>>Workaround:
>>
>>local f1
>>f1 = createobject('frm')
>>f1.show
>>read events
>>
>>* ----------
>>define class frm as Form
>>
>>	AutoCenter = .t.
>>	ShowWindow = 2
>>	Toolbar = ''
>>
>>	procedure Init
>>		ThisForm.Visible = .t.
>>		ThisForm.Toolbar = createobject('tbr')
>>		ThisForm.Toolbar.Dock(0)
>>		ThisForm.Toolbar.Show
>>	endproc
>>
>>	procedure Unload
>>		clear events
>>	endproc
>>
>>enddefine
>>
>>* ----------
>>define class tbr as Toolbar
>>
>>	ShowWindow = 1
>>
>>	add object btn as CommandButton;
>>		with Width=100, Height=25, Caption="Close window"
>>
>>	procedure btn.Click
>>		DECLARE SHORT PostMessage IN WIN32API INTEGER,INTEGER,INTEGER,INTEGER
>>		=PostMessage(_SCREEN.ActiveForm.HWnd,16,0,0)
>>		CLEAR DLLS PostMessage
>>	endproc
>>
>>enddefine
>>
>
>Yea... Just another workaround. But you do confirm this is a bug, don't you?

Confirm. Release must to release all the references of the Form,
and when click finishes the semaphore of the form goes to zero
and the form it begins the destroy ...
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform