No automatic adjustment is full possible here. You'll need to modify your layouts (Or duplicate them and maintain separate copies for PCs and Macs), to fit the smaller screen.
You can also try setting "anchors" on your layout objects, but I don't think that will give you enough flexibility to get what you need here.
Some other things to check before modifying any layouts.
In preferences on the Windows version of FileMaker, you have an option titled "enlarge window contents to improve readibility". If this option is enabled, clear it and see if the windows system now displays the layout at the right size or more nearly so. This changes a setting for all FileMaker files on the computer so this won't work if you have other FileMaker files that require it.
Check the monitor resolution on both systems. You may be able to change the monitor settings on the PC to more closely match what you had on you Mac when you designed the layout.
Thanks Philmodjunk, i checked the pc's FM preferences and unfortunately the "englarge window content" was not checked. It seems the problem is that my mac uses a "landscape" display (1440X900) resolution. The monitor that is being used is not a landscape monitor, (1024X768) resolution. I agree that anchors will not give the layout enough flexibility to switch between the mac and pc, so that pretty much leaves me with maintaining two separate copies! Obviously the problem associated with maintaining two separate databases is keeping both up to date, does anyone have good ideas for making sure both copies stay current? I'm just wondering because i will not be the final user, so if changes are made on the PC version i won't always know. Is there some sort of "export new data" script/setting so i can import onto my mac version??
Don't maintain separate copies of your database. Put two sets of layouts into the same database, but add scripting that selects the set of layouts appropriate for the current platform.
Abs ( get ( SystemPlatform ) )
will return 1 for macs, 2 for windows and 3 for FileMaker Go.
You can use this expression in an If step in a script that you set to run when the file opens. (See File Options for the dialog to set this up.)
The script can then select the layout appropriate to your platform. Similar scripts can control which layouts appear when you click a Navigation button on the layout. (You can even set a global variable to a value such as "win", and "Mac", then use got to layout name by calculation with an expression such as "LayoutName - " & $$Platform so that the same script step selects different layouts depending on which value is stored in the global variable.
I have had the same problem and set up Mac and PC layouts. Then set a script trigger on each of the layouts that kicks the PC users (since I am on a Mac) over to thier layout. That way I don't have to modify every button in the database, just add a script to each of the layouts that have the problem. I have been just making a copy of the script for each layout, renaming it and changing the target, but I think you could probably set it up with a variable (if you keep your layout names consistent like layout1 for macs and layout1PC for pcs) and have one script work for all of the layouts.
I like that suggestion!
Set Variable $layout [If ( Abs ( Get ( SystemPlatform ) )=1 ; Get ( LayoutName ) ; Get ( LayoutName ) & "PC" )]
go to Layout by calculation [$layout]
should work if set as a script trigger on each of the mac specific layouts to send PC users to PC versions of the layout, shouldn't it?
Could be converted to work the other way or add FMgo as a third option if you used Case instead of If.
Case ( ( Abs ( Get ( SystemPlatform ) )=3) ; Get ( LayoutName ) & "Go" ; ( Abs ( Get ( SystemPlatform ) )=2) ; Get ( LayoutName ) & "PC" ; Get ( LayoutName ) )
Looks like a great way to go here, provided you are careful to name the PC layouts correctly.
Should be easy, if you go the the PC, Edit Layout, go to Layout/duplicate layout, then Layout/Layout setup - change where it says copy to PC, Go or Mac.
Then go through and adjust that layout for that platform.
I agree that it's easy. Easy, and absolutely necessary in order for this method to work. Not intended as criticism, just a cautionary note.
Hadn't thought of doing it like that before. Like I said earlier I always wrote separate scripts for each layout. That's another thing I like about this forum, gets me thinking and sometimes gives me ideas to add things to my solutions or make them better too. We are thinking of adding some iPads for data entry here and I have been working on setting up forms for data entry, now I have a good idea for how to make the different layouts look best on all 3 platforms.
Do you think that Case argument will work, Phil?
Thanks PhilMod and Mark Gores. Great options for me to try out!
No reason why case shouldn't work.
Your suggestion made a lot of sense to me as I later realized that I've implemented such a "selective layout" script in one of my solutions. It doesn't check for platforms as we are 100% windows here, but it's a phone message taking system where the person taking the message can either fill in a form with a lot of radio buttons and check boxes or record a free-form "memo" type message. An OnRecordLoad script trigger on both layouts checks a "message type" field and changes layout if needed to show the message with the correct layout.