Извиняюсь за небрежно написанный код (от рудиментов FreePascal'я и т.д.). Писал для эксперимента: лишь бы запустить и отценить перспективу работы. От этого, возможно, ошибки.

Версия для GPCP:
## Код:
```
FOREIGN MODULE Japi ["japi.dll"];
IMPORT java_lang, Console;

CONST
    (*  BOOLEAN   *)
    J_TRUE                                  *= TRUE;
    J_FALSE                                 *= FALSE;
    (*  ALIGNMENT   *)
    J_LEFT                                  *=    0;
    J_CENTER                                *=    1;
    J_RIGHT                                 *=    2;
    J_TOP                                   *=    3;
    J_BOTTOM                                *=    4;
   
   ........................................
   ........................................

TYPE 
      int = INTEGER;
      pchar = ARRAY OF CHAR;
      PChar = INTEGER;

(* Externe Funktionen *)
PROCEDURE J_start*(): BOOLEAN;
   ........................................
PROCEDURE J_frame*( arg0 : pchar ): int;
   ........................................
PROCEDURE J_button*( arg0 : int ; arg1 : pchar ): int;
   ........................................
PROCEDURE J_setborderpos*( arg0 : int ; arg1 : int );
   ........................................
PROCEDURE J_show*( arg0 : int );
   .....................................
PROCEDURE J_nextaction*(): int;
   .....................................
PROCEDURE J_quit*;
   .....................................
PROCEDURE J_filedialog*( arg0 : int ; arg1 : pchar ; arg2 : pchar ; arg3 : pchar ): PChar;
   ....................................
PROCEDURE J_fileselect*( arg0 : int ; arg1 : pchar ; arg2 : pchar ; arg3 : pchar ): PChar;
   ....................................
   ....................................
END Japi.
```

## Код:
```
MODULE Borderlayout;

IMPORT Japi, Console;

VAR 
    frame,left,right,bottom,top,center    : INTEGER;

PROCEDURE JBorderlayout*;

BEGIN
        
    IF Japi.J_start() = Japi.J_FALSE THEN
        Console.WriteString('cannot connect to JAPI Kernel'); Console.WriteLn;
        HALT(0)
    END; 
    
    frame := Japi.J_frame('Border Layout');
    
    Japi.J_setborderlayout(frame);

    right  := Japi.J_button(frame,'Right');
    left   := Japi.J_button(frame,'Left');
    bottom := Japi.J_button(frame,'Bottom');
    top    := Japi.J_button(frame,'Top');
    center := Japi.J_button(frame,'Center');

    Japi.J_setborderpos(right,Japi.J_RIGHT);
    Japi.J_setborderpos(left,Japi.J_LEFT);
    Japi.J_setborderpos(bottom,Japi.J_BOTTOM);
    Japi.J_setborderpos(top,Japi.J_TOP);
 
 
    Japi.J_show(frame);
        
    WHILE Japi.J_nextaction() # frame DO END;

Japi.J_quit;

END JBorderlayout;

END Borderlayout.
```


Верся для Blackbox
## Код:
```
MODULE JapiInterface ["japi.dll"];
IMPORT WinApi;

CONST
    (*  BOOLEAN   *)
    J_TRUE                                  *= TRUE;
    J_FALSE                                 *= FALSE;
    (*  ALIGNMENT   *)
    J_LEFT                                  *=    0;
    J_CENTER                                *=    1;
    J_RIGHT                                 *=    2;
    J_TOP                                   *=    3;
    J_BOTTOM                                *=    4;
   
   ........................................
   ........................................

TYPE 
   int = INTEGER;
   pchar = WinApi.PtrSTR;
   Pchar = WinApi.PtrSTR;

(* Externe Funktionen *)
PROCEDURE J_start*(): BOOLEAN;
   ........................................
PROCEDURE J_frame*( arg0 : pchar ): int;
   ........................................
PROCEDURE J_button*( arg0 : int ; arg1 : pchar ): int;
   ........................................
PROCEDURE J_setborderpos*( arg0 : int ; arg1 : int );
   ........................................
PROCEDURE J_show*( arg0 : int );
   .....................................
PROCEDURE J_nextaction*(): int;
   .....................................
PROCEDURE J_quit*;
   .....................................
PROCEDURE J_filedialog*( arg0 : int ; arg1 : pchar ; arg2 : pchar ; arg3 : pchar ): PChar;
   ....................................
PROCEDURE J_fileselect*( arg0 : int ; arg1 : pchar ; arg2 : pchar ; arg3 : pchar ): PChar;
   ....................................
   ....................................
END JapiInterface.
```

## Код:
```
MODULE  JapiBorderlayout;

IMPORT JapiInterface, StdLog;

VAR 
    frame,left,right,bottom,top,center    : INTEGER;

PROCEDURE Borderlayout*;

BEGIN
        
    IF JapiInterface.J_start() = JapiInterface.J_FALSE THEN
        StdLog.String('cannot connect to JAPI Kernel'); StdLog.Ln;
        HALT(0)
    END; 
    
    frame := JapiInterface.J_frame('Border Layout');
    
    JapiInterface.J_setborderlayout(frame);

    right  := JapiInterface.J_button(frame,'Right');
    left   := JapiInterface.J_button(frame,'Left');
    bottom := JapiInterface.J_button(frame,'Bottom');
    top    := JapiInterface.J_button(frame,'Top');
    center := JapiInterface.J_button(frame,'Center');

    JapiInterface.J_setborderpos(right,JapiInterface.J_RIGHT);
    JapiInterface.J_setborderpos(left,JapiInterface.J_LEFT);
    JapiInterface.J_setborderpos(bottom,JapiInterface.J_BOTTOM);
    JapiInterface.J_setborderpos(top,JapiInterface.J_TOP);
 
 
    JapiInterface.J_show(frame);
        
    WHILE JapiInterface.J_nextaction() # frame DO END;

JapiInterface.J_quit;

END Borderlayout;

END JapiBorderlayout.
```


Может быть ошибка в типах. В случае с ВВ зависимость от модуля WinApi существует.