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

    • Offizieller Beitrag

    Hi,

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

    The best is to use

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

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

    Code
    if intvalue and WPBRD_DRAW_ALL4<>0 then

    WPAT_BorderType is not always be used - the default is 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