Hi All,

I have finally gotten my project compiling without errors. I do however
get a Debugger exception with the const filename_Trace_File_DBF =
'hex8_log.dbf'; ... which I find very odd.

>From hexboard3.pas (see procedure THxboard.open_trace_file; below)

      Trace_File_DBF.Name := filename_Trace_File_DBF;

      // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Error occurs at the
above line
      // filename_Trace_File_DBF = <error type>

Debugger hexxpawn8 raised exception class 'EComponentError' with
message:
"hex8_log.dbf" is not a valid component name

[Break] [Continue]
[ ] Ignore this exception type

I then click on [Continue] and get the following error:

Error
Project hexxpawn8 raised exception class 'External: SIGSEGV'.
[OK]

Note: "hex8_log.dbf" is NOT created. I don't know what code is raising
the External: SIGSEGV code.

The zip of hexxpawn_0.50.alpha.zip (including all backup files) is here:

http://8938743253203581429-a-1802744773732722657-s-sites.googlegroups.com/site/pewtas/hexxpawn_0.50.alpha.zip

it is 6.9 Megabytes in size (25.4 Megabytes unzipped)

All code is 100% freeware open source copyright to myself and License:
GPL/LGPL (although not stated but implied). Note that the about Window
still states the version at 0.14a for Windows -- the last stable Delphi
5 Enterprise version.

unit hexboard3;

interface

uses
  SysUtils, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls, Buttons, {Windows,}
  inifiles,
  Menus, dbf, LMessages,
  ActnList, DB, dbf_common,
  Grids, ExtCtrls, {shellapi,} TypInfo,
  LclType,

  h_decs, // hexxpawn global declarations
  general // hexxpawn general routines

  //BTOdeum, // used for sound beeping.
  ;

const
  //WM_USER_APPLICATION_MINIMIZE = WM_USER + 1;
  WM_USER_APPLICATION_MINIMIZE = LM_USER + 1;
  default_game_over_song = 'Entertainer';
  filename_Hexx_Data_DBF = 'hex8.dbf';
  filename_Trace_File_DBF = 'hex8_log.dbf';
  filename_Moves_DBF = 'moves.dbf';

  TXBaseConst = xBaseVII;

<snip>

procedure THxboard.open_trace_file;
var
  S : String;
  I : integer;
begin
  S := Application.ExeName;
  // hack for Mac
  I := Pos('.app/Contents/MacOS/', S);
  if (I > 0) then
    S := Copy(S,1, I+3);
  try
    begin
      Trace_File_DBF.TableLevel := Longint(TXBaseConst);
      Trace_File_DBF.FilePath := ExtractFilePath(S) + 'data' +
PathDelim;
      Trace_File_DBF.Name := filename_Trace_File_DBF;

      // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Error occurs at the
above line
      // filename_Trace_File_DBF = <error type>

      //if FileExists( filename_Trace_File_DBF ) then
      showmessage( 'FilePath = ' + Trace_File_DBF.FilePath + ' : Name =
' + Trace_File_DBF.Name );
      With Trace_File_DBF do
      if Exclusive then
        exit
      else
      begin
        Open;
        With Trace_File_DBF do
        begin
          Close;
          // Trace_File_DBF.FilePathFull := ????????
          Trace_File_DBF.TableLevel := Longint(TXBaseConst);
          //  Trace_File_DBF.FileName := 'hex8_log.dbf';
          Trace_File_DBF.TableName := filename_Trace_File_DBF;
          with Trace_File_DBF.FieldDefs do
          begin
            Clear;
            Add( 'game_counter', ftinteger, 0, True );
            Add( 'turn_counter', ftInteger, 0, True  );
            Add( 'player_o_move_from_row', ftInteger, 0, True  );
            Add( 'player_o_move_from_col', ftInteger, 0, True  );
            Add( 'player_o_move_to_row', ftInteger, 0, True  );
            Add( 'player_o_move_to_col', ftInteger, 0, True  );
            Add( 'player_x_move_from_row', ftInteger, 0, True  );
            Add( 'player_x_move_from_col', ftInteger, 0, True  );
            Add( 'player_x_move_to_row', ftInteger, 0, True  );
            Add( 'player_x_move_to_col', ftInteger, 0, True  );
            Add( 'record_no', ftInteger, 0, True  );
            Add( 'winner', ftString, 12, True  );
            Add( 'move_options', ftString, 25, True  );
            Add( 'pawn_move_rating', ftString, 25, True  );
            Add( 'successful_move', ftBoolean, 0, True  );
            Add( 'pawn_no', ftInteger, 0, True  );
            Add( 'direction', ftInteger, 0, True  );
            Add( 'option_was', ftString, 25, True  );
          end; // with
          Open;
          Trace_File_DBF_open := true;
          //Exclusive := True;
          //Trace_File_DBF.GotoEOF; // needs changing
          Trace_File_DBF.FindLast; // needs changing
        end; // with
      end; // else
    end; // try
  except
  //finally
  end;
end; { open_trace_file }
{---------------------------------------------------------}


-- 
Proudly developing Quality Cross Platform Open Source Games
Since 1970 with a Commodore PET 4016 with 16 KRAM
http://pews-freeware-games.org (<--- brand new)



--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to