home *** CD-ROM | disk | FTP | other *** search
- QNA-4/8/91
- Turbo Pascal for Windows
- 1.0
- Local Heap and Global Heap
- TPW's New, GetMem, Dispose and Freemem all use Window's global heap.
-
- [[[]]]
-
- The Local Heap is very small, and not used by TPW, and is occasionally used
- by Windows functions (like edit controls).
-
- The Global Heap is generally very big, and is where your pascal program's
- "heap" is stored. The GetMem, FreeMem, New, and Dispose procedures all
- operate on the Global Heap.
-
- <<<>>>
- QNA-4/8/91
- Turbo Pascal for Windows
- 1.0
- Exec from within a TPW program.
- Use WinExec in the WinDOS to launch DOS and WinApp programs.
-
- [[[]]]
- Question:
- I want to be able to EXEC a DOS or Windows program in Windows. How do I
- do that?
- Answer:
- Take a look at the WinExec procedure in your Windows Reference Guide.
- You can use Exec on both WinApps and DOSApps.
-
-
- <<<>>>
- QNA-4/8/91
- Turbo Pascal for Windows
- 1.0
- TPW New and GetMem procedures
- New, GetMem, HeapBlock, HeapLimit in TPW
-
- [[[]]]
- The way memory allocation works for new and getmem is as follows:
-
- There are two system variables: HeapBlock and HeapLimit.
-
- When memory is allocated for a size less than HeapBlock (Default is 1k)
- then the memory will be suballocated in a block of size HeapBlock
- (default is 8k).
- Allocation of blocks larger than HeapLimit will have there own block. All
- allocations will be in global memory.
-
- You will not be able to change the way this works.
-
-
- <<<>>>
- QNA-4/8/91
- Turbo Pascal Windows
- 1.0
- WinCrt and Windows 3.0
- WinCrt cannot be used with OWL.
-
- [[[]]]
-
- WinCrt is an emulation of the Dos and Crt units. Basically, it provides a
- quick and dirty means of output to a Windows window. It's not intended
- to be a Dos to Windows porting service - WinCrt apps are not full Windows
- apps - just a Windows window with some text, key scanning loops, and
- scrollbars.
-
- Note that writelns to the 'screen' will cause a runtime error in TPW
- unless the WinCrt unit is used. (WinCrt opens the standard Input and
- Output files, which are closed by default in TPW). The Readln, Keypressed,
- procedures, etc., are also only valid under the WinCrt umbrella. The text
- colors and text inverse are not supported. And since WinCrt takes control of
- the message loop and dispatch services of your windows app, WinCrt cannot be
- used in conjunction with OWL. You can call Windows API functions directly,
- however.
-
-
- <<<>>>
- QNA-4/8/91
- Turbo Pascal Windows
- 1.0
- PChars in TPW.
- What is a PChar type?
-
- [[[]]]
-
- PChar is a special pointer type that has been added to the Pascal
- Windows language definition. A PChar is a pointer to an array of
- characters with a maximum size of 64K and terminated by a null character
- (#0). This is a C string, and comes with all the memory management hassles
- and pointer arithmetic advantages of C. The PChars and arrays of char are
- type compatible, and a Strings unit is devoted to C-string manipulation
- functions (all start with "STR"). When passing a string literal to a
- procedure, the compiler will figure out whether the string literal
- should be stored in c-string format or in pascal string format, or both.
-
-
- <<<>>>
- QNA-4/8/91
- Turbo Pascal for Windows
- 1.0
- TDW popping in dual mode in TPW.
- How to make TDW come up in dual mode from within TPW.
-
- [[[]]]
- Question:
- I want to make TDW come up in dual mode from within the TPW.
- Answer:
- Add the following lines to the tpw.ini file:
-
- [Debugger]
- Exepath=<pathname>
- Switches=<command-line options>
-
- where <pathname> is the path to the TDW.EXE and <command-line options>
- are the options you normally want to use with TDW, this will do it. The
- command-line option for the dual display is -do.
-
-
- <<<>>>
- QNA-4/8/91
- Turbo Pascal for Windows
- 1.0
- Changing Button Text
- Use SetCaption method in OWL or SendMessage API to change button text.
-
- [[[]]]
- Question:
- How do you change the text on a button?
-
- Answer:
- To change the text on a button, send a WM_SETTEXT message with the string for
- the lParam. For example:
-
- SendMessage(btnWindow, WM_SETTEXT, 0, 'New Button Title');
-
- Or if you are using OWL, call the SetCaption method of TButton.
-
-
- <<<>>>
- QNA-4/8/91
- Turbo Pascal for Windows
- 1.0
- Status line in a MDI Application.
- How can I have a status line in an MDI Application?
-
- [[[]]]
-
- To have a status line in an MDI application, override the windows MDI
- WMSize method like this:
-
- TGDIDemoWindow.WMSize(var Message: TMessage);
- begin
- TMDIWindow.WMSize(Message);
- {Calculate the new size of the client area}
- MoveWindow(ClientWnd^.HWindow, size of the new client area)
- end;
-
- This will keep the client window from obscuring your status line or other
- controls you might like to have in your window.
-
-
- <<<>>>
- QNA-4/8/91
- Turbo Pascal for Windows
- 1.0
- TPW 1.0 Hot Sheet.
- Feature set of TPW 1.0.
-
- [[[]]]
- Turbo Pascal for Windows 1.0 Hot Sheet.
-
- Feature Highlights
- ----------------------
- NEW! state-of-the-art Windows integrated development environment
- (IDE).
-
- Runs under Windows
- Multiple editor windows
- Full Mouse Support
- Supports TP6 type hot keys
- Multi-file editor that can edit files up to 1MB
- complete save and restore of desktop
-
- NEW! ObjectWindow library - Built in support for Windows, Menus,
- Dialogs, Buttons, List boxes, Edit fields, Icons and more. All
- for use in your applications.
-
- NEW! Full access to all Windows API functions and messages.
-
- NEW! Fully Supports creation of DLLs.
-
- NEW! Turbo Debugger for Windows
-
- Supports Windows messages
- Advanced breakpoints
- Reverse execution
- Automatic DLL debugging
- Object browser and inspectors
- Single and dual monitor support
-
- INCLUDED! Whitewater Resource Toolkit - Visually create Dialogs,
- Menus, Icons, Bitmaps and String resources.
-
- INCLUDED! Resource Compiler
-
- INCLUDED! Windows Help Compiler
-
- Full featured inline assembler (BASM)
-
- Private fields and methods in object declarations
-
- Extended syntax directive ($X) that lets you treat functions like
- procedures (and ignore function results)
-
- 286 code generation
-
- Address references in typed constants
-
- Far and near procedures directives ($F)
-
- Link in initialized data ($L) from object (OBJ) files
-
- Smart linker removes unused objects and code
-
- complete math coprocessor emulation and support -
- 8087/80287/80387
-
- NEW! Turbo Help hypertext on-line help facilities, including
- references to all Windows API finctions and messages.
-
- Turbo Pascal for Windows includes everything you need to create
- Windows applications. It does not require the Microsoft Windows
- SDK.
-
- System Requirements
- ---------------------
- IBM PC or PS/2 and all 100% compatibles
- Microsoft Windows 3.0 or later
- 2Mb of memory
- EGA, Hercules or VGA graphics
- Mouse or other pointing device
- Hard Disk (Requires 6.5 Meg for full product)
-
- Benchmarks
- -----------
- Machine Lines/Min
- Compaq DeskPro 386/33 84,000
-
- Documentation
- ----------------
- 1. User's Guide
- 2. Programmer's Guide
- 3. Windows Reference Guide
- 4. Windows Programming Guide
- 5. Whitwater Resource Toolkit Users Guide
- 6. Turbo Debugger for Windows Users Guide
- 7. Help Compiler Reference Guide
-
- Pricing Information
- -------------------------
- Turbo Pascal for Windows $249.95
-
-
- Special Offer Information
- ---------------------------
- Registered user of ANY BORLAND LANGUAGE PRODUCT $99.95 ***
-
-
- ***Turbo Pascal for Windows is exclusively for Windows
- Development and does not replace Turbo Pascal version 6.0. TP6
- is the current product for standard DOS development. The offer
- is not an upgrade it is a limited special offer to our current
- Turbo Pascal Customers.
-
- <<<>>>
- QNA-4/8/91
- Turbo Pascal for Windows
- 1.0
- The $G+ directive, 286 code generation, and Real Mode.
- How can I detect if Windows is in Real mode?
-
- [[[]]]
- Question:
-
- If I use the $G+ 286 code generation directive, how can I be sure that
- Windows is running in Real mode?
-
- Answer:
- The 286 code generation option allows the compiler to substitute more
- efficient 286 instructions in place of normal 8088 instructions for things
- like loops, jumps and memory operations. If you compile your program with
- $G+, then you should call GetWinFlags early in the startup of your
- application - such as in your Application.Init. Check for the wf_PtMode
- flag set. If it's not set, then you're not running in protected mode, and
- you should display a message box and exit your program. Setting the
- Application's status variable to a non-zero value should also work, although
- that would cause more code to be executed, implying greater risk of hitting a
- 286 instruction.
-
- All the precompiled units in TPW will run in real mode and are not
- affected by the $G+ directive. The $G+ directive only affects code that you
- compile yourself.
-
- <<<>>>
- QNA-4/8/91
- Turbo Pascal for Windows
- 1.0
- Using the 80X87 emulator in TPW.
- Do I need a coprocessor to run TPW?
-
- [[[]]]
- Question:
- Must TPW a the math coprocessor?
-
- Answer:
- Windows implements its own 80x87 instruction emulator as a DLL that is
- loaded when an 80x87 instruction is detected. The reason that the '87 code
- generation is an option is speed: emulators are always slower than the
- real hardware, and slower than using the 6 byte reals. If you need double,
- or extended reals, or Comp integers, then you must turn on '87
- code generation, and Windows will adjust itself to compensate if there
- is no '87 hardware when the program is running. You do not need a
- coprocessor to compile or run the program.
-
- <<<>>>
-
- TN-4/8/91
- Turbo Pascal for Windows
- 1.0
- TPW "Can't find Debugger" error message
- "Can't find Debugger" error message can be caused by not enough memory
- available.
- [[[]]]
- With Turbo Pascal for Windows you can get the Can't Find Debugger error
- message when there is not enough memory to load the debugger. There
- must be at lease 250K free in order to load the debugger.
-
- If you have checked that TDW is in the path etc., and this error is still
- displayed, check the memory free...
-
-
- <<<>>>
- TN-4/8/91
- Turbo Pascal for Windows
- 1.0
- TPW Strings literals in the Data Segment
- TPW String literals are stored in the Data Segment.
-
- [[[]]]
- Unlike the DOS version of Pascal, String Literals are stored in the data
- segment along with all global variables etc. If customer is running out
- of data segment space, suggest using pointers to strings instead of
- string literals.
-
-
- <<<>>>