WPCubed Product Support

AGet is not returning the right values ?

Hello,

I can't find how to read what type of borders are set for a paragraph. AGet does not return what is set for the paragraph. My code for checking it is:

var
i, t: integer;
Ref: TParagraph;
begin
Ref := WP.ActiveParagraph;
i := Ref.AGetDef(WPAT_BorderFlags, -1);
if ((i or WPBRD_DRAW_ALL4) = i) then
begin
if not (Ref.AGet(WPAT_BorderType, t) or
Ref.AGet(WPAT_BorderTypeT, t) or
Ref.AGet(WPAT_BorderTypeL, t) or
Ref.AGet(WPAT_BorderTypeB, t) or
Ref.AGet(WPAT_BorderTypeR, t)) then ...

When I try with a WPBRD_SINGLE border, all the AGet are returning False (meaning WP does not see any of this properties). Here is the rtf example:

{\rtf1\ansi\deff0\uc1\ansicpg1252\deftab720{\fonttbl{\f0\fnil\fcharset1 Times New Roman;}{\f1\fnil\fcharset1 Arial;}{\f2\fnil\fcharset2 Wingdings;}{\f3\fnil\fcharset2 Symbol;}}{\colortbl\red0\green0\blue0;\red255\green0\blue0;\red0\green128\blue0;\red0\green0\blue255;\red255\green255\blue0;\red255\green0\blue255;\red128\green0\blue128;\red128\green0\blue0;\red0\green255\blue0;\red0\green255\blue255;\red0\green128\blue128;\red0\green0\blue128;\red255\green255\blue255;\red192\green192\blue192;\red128\green128\blue128;\red0\green0\blue0;}\wpprheadfoot1\paperw12240\paperh15840\margl720\margr720\margt720\margb720\headery720\footery720\ftnbj\sftnbj\sftnrstcont\nocolbal\sftnnar\saftnnar\fet0\endnhere\sectdefaultcl{\*\generator WPTools_6.060-PRM;}{\pard\brdrl\brdrs\brdrr\brdrs\brdrt\brdrs\brdrb\brdrs\plain\f0\fs22 este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo \par
}}

Instead, when I try WPBRD_SINGLE border, it returns t=2 (but it may return WPBRD_DOUBLE which is equal to 4). Here is the rtf example:

{\rtf1\ansi\deff0\uc1\ansicpg1252\deftab720{\fonttbl{\f0\fnil\fcharset1 Times New Roman;}{\f1\fnil\fcharset2 Wingdings;}{\f2\fnil\fcharset2 Symbol;}}{\colortbl\red0\green0\blue0;\red255\green0\blue0;\red0\green128\blue0;\red0\green0\blue255;\red255\green255\blue0;\red255\green0\blue255;\red128\green0\blue128;\red128\green0\blue0;\red0\green255\blue0;\red0\green255\blue255;\red0\green128\blue128;\red0\green0\blue128;\red255\green255\blue255;\red192\green192\blue192;\red128\green128\blue128;\red0\green0\blue0;}\wpprheadfoot1\paperw12240\paperh15840\margl720\margr720\margt720\margb720\headery720\footery720\ftnbj\sftnbj\sftnrstcont\nocolbal\sftnnar\saftnnar\fet0\endnhere\sectdefaultcl{\*\generator WPTools_6.060-PRM;}{\pard\brdrl\brdrth\brdrr\brdrth\brdrt\brdrth\brdrb\brdrth\plain\fs22 este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo este es mi parrafo \par
}}

In both examples, the WP output is the needes (first one single, last one double).

Where is my fault?

Thank you.

Felipe

#1 ♥ 0
4.9k Views 2 users read 6 min
support

Hi,

Please do not use -1 in AGetDef here. -1 equals to $FFFF which measn all bits are set.

The best is to use

if par.AGet( WPAT_BorderFlags, intvalue )  then begin...end;

To check if a bit is set in intvalue use this code:

if intvalue and WPBRD_DRAW_ALL4<>0 then

WPAT_BorderType is not always be used - the default is 0.

#2 ♥ 0

Julian;

Ok, now I changed it:

if Ref.AGetDef(WPAT_BorderFlags, i) and ((i or WPBRD_DRAW_ALL4) = i) then

But the problem is when border is WPBRD_SINGLE:

Ref.AGet(WPAT_BorderType, t) returns False
Ref.AGet(WPAT_BorderTypeT, t) returns False
Ref.AGet(WPAT_BorderTypeL, t) returns False
Ref.AGet(WPAT_BorderTypeB, t) returns False
Ref.AGet(WPAT_BorderTypeR, t) returns False

Why is that?, it may return true, I guess.

Thank you.

Felipe

#3 ♥ 0
support

Hi,

if WPAT_BorderType returns false it is not used. In this case the default is used which is a "single" border. WPBRD_SINGLE = 0

This looks wrong:
if Ref.AGetDef(WPAT_BorderFlags, i) and ((i or WPBRD_DRAW_ALL4) = i) then

Please use

if Ref.AGet(WPAT_BorderFlags, i) and ((i andWPBRD_DRAW_ALL4) <>0) then

#4 ♥ 0
This category is archived. No new posts are possible.