View previous topic :: View next topic |
Author |
Message |
DanRRight
Joined: 10 Mar 2008 Posts: 2923 Location: South Pole, Antarctica
|
Posted: Thu Sep 27, 2012 1:10 am Post subject: %ob does not like wide multi-monitors |
|
|
%ob[status,thin_panelled] crashes the code when i open window 2900 pixels wide (stretched over two monitors). Tells the window is too wide. Can this be fixed in future releases?
Code: |
i=winio@('%nl%ob[status,thin_panelled]&')
i=winio@('%20st %20st&', MouseClReason_Mouse_Pos, MouseClReason_Mouse_Pos5)
i=winio@('%cb&') |
|
|
Back to top |
|
 |
LitusSaxonicum
Joined: 23 Aug 2005 Posts: 2402 Location: Yateley, Hants, UK
|
Posted: Thu Sep 27, 2012 12:06 pm Post subject: |
|
|
Hi Dan,
Is this something that can be fixed with SUBROUTINE SET_MAXIMUM_DIALOG_SIZE@( WIDTH, HEIGHT )?
Regards
Eddie |
|
Back to top |
|
 |
DanRRight
Joined: 10 Mar 2008 Posts: 2923 Location: South Pole, Antarctica
|
Posted: Thu Sep 27, 2012 6:12 pm Post subject: |
|
|
Yes, i think this is a solution, thanks, Eddie. But, strange.... i think i compiled it ones successfully and it worked. Then abruptly whatever i do i get the "Error 29 Call to missing routine SET_MAXIMUM_DIALOG_SIZE# ..."
Devilry  |
|
Back to top |
|
 |
LitusSaxonicum
Joined: 23 Aug 2005 Posts: 2402 Location: Yateley, Hants, UK
|
Posted: Thu Sep 27, 2012 7:36 pm Post subject: |
|
|
Dan, I'm a bit confused ... you finished the routine name with @ or # ?
I never had any problem maximising a main window across dual monitors, but a dialog - that's a new trick
Eddie |
|
Back to top |
|
 |
IanLambley
Joined: 17 Dec 2006 Posts: 506 Location: Sunderland
|
Posted: Fri Sep 28, 2012 12:51 pm Post subject: |
|
|
Yeah,
I've noticed that, it seems to replace @ with # in the diagnostic.
The missing routine is usually caused by omitting the
" include <windows.ins>" or the "Use" equivalent from the calling routine.
Ian |
|
Back to top |
|
 |
DanRRight
Joined: 10 Mar 2008 Posts: 2923 Location: South Pole, Antarctica
|
Posted: Fri Sep 28, 2012 3:12 pm Post subject: |
|
|
I "use mswin". Adding "use clearwin' is redundant, and even if i add, it does not change anything -- i get same error that subroutine SET_MAXIMUM_DIALOG_SIZE@ is missing. Actually, i do not see this subroutine anywhere in the package (only in chm and enh files), and i have latest version. Where is it? Did i already say "devilry"? that 's the word you will pronounce zillion times learning and using Clearwin+. It moved there from FTN90 and early FTN95... LOL
And that error is own compiler diagnostics message which replaces @ with #, and adds underscore. That just confuses programmer, i think this should be fixed. |
|
Back to top |
|
 |
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 8210 Location: Salford, UK
|
Posted: Fri Sep 28, 2012 3:51 pm Post subject: |
|
|
The interface is
Code: | C_EXTERNAL SET_MAX_DIALOG_SIZE@ '__set_max_dialog_size' (VAL, VAL)
|
and can be found in clearwin.ins for example. |
|
Back to top |
|
 |
DanRRight
Joined: 10 Mar 2008 Posts: 2923 Location: South Pole, Antarctica
|
Posted: Fri Sep 28, 2012 4:28 pm Post subject: |
|
|
True devilry....now my search engine finds what before did not...i see it is there in clearwin MOD and ins files. Still when run i get the same error complaining about missing routine....Some older MOD file in the path which does not have this subroutine? Impossible |
|
Back to top |
|
 |
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 8210 Location: Salford, UK
|
Posted: Fri Sep 28, 2012 4:58 pm Post subject: |
|
|
Just put the interface line into your code with the other declarations - in the subprogram where the routine is called. |
|
Back to top |
|
 |
DanRRight
Joined: 10 Mar 2008 Posts: 2923 Location: South Pole, Antarctica
|
Posted: Fri Sep 28, 2012 7:21 pm Post subject: |
|
|
hahaha....i found the error. Machine finds it in no time, but humans are too complex for that. Easy to make such error and hard to find. Guess where it is ? Will not post the answer for a while, just for fun, may be someone will find it.
hint: you have all needed information to find the reason. Devilry ! |
|
Back to top |
|
 |
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 8210 Location: Salford, UK
|
Posted: Sat Sep 29, 2012 9:14 am Post subject: |
|
|
OK. Do we tell when we see it? |
|
Back to top |
|
 |
IanLambley
Joined: 17 Dec 2006 Posts: 506 Location: Sunderland
|
Posted: Sat Sep 29, 2012 12:15 pm Post subject: |
|
|
Sorry chaps, I'm a little confused. It appears that the well known quotation "Britain and America, two countries divided by a common language" is being displayed to the extreme in this forum. To steal a phrase from Monty Python - "Sorry, don't understand your banter old chap, cabbage crates coming over the briny" etc. |
|
Back to top |
|
 |
LitusSaxonicum
Joined: 23 Aug 2005 Posts: 2402 Location: Yateley, Hants, UK
|
Posted: Sat Sep 29, 2012 1:32 pm Post subject: |
|
|
What I find more interesting is that I have successfully opened windows with a menu bar, toolbar and a %gr graphics area spanning 2 screens without the slightest problem, so I thought that the size limit for dialog boxes was fixed/increased - until I saw Dan's post, and the lightbulb came on.
Once again, the documentation is correct, but not sufficient for a user to pre-empt problems, no matter how much reading he does.
C'mon Dan, I 'tipped you the wink' (Brit) so 'give us a clue' (Brit).
Eddie |
|
Back to top |
|
 |
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 8210 Location: Salford, UK
|
Posted: Sun Sep 30, 2012 9:20 am Post subject: |
|
|
The name of the routine is SET_MAX_DIALOG_SIZE@ and not SET_MAXIMUM_DIALOG_SIZE@. This is not revealed by IMPLICIT NONE but should by shown up by using /DCLVAR on the command line. |
|
Back to top |
|
 |
DanRRight
Joined: 10 Mar 2008 Posts: 2923 Location: South Pole, Antarctica
|
Posted: Sun Sep 30, 2012 3:35 pm Post subject: |
|
|
Yep. Humans tent to think that MAX and MAXIMUM are short and long form of same thing. LOL
Thanks all again.
Paul, I think /DCLVAR would be great thing to add to switches in all my codes. The more diagnostics the better. But when I've tried /DCLVAR it gives diagnostics on subroutines like that
1051) call ColorBarInitPar
*** COLORBARINITPAR must have the EXTERNAL attribute when /DCLVAR is used
Last edited by DanRRight on Mon Oct 01, 2012 12:32 am; edited 1 time in total |
|
Back to top |
|
 |
|