标签: pascal

替代Turbo Pascal(3.0)

我有一个家庭成员,他非常依赖Borland的这个过时的帕斯卡实施.

他最近购买了一台带有Windows 7(64位)的新笔记本电脑,我能够通过DOSBox帮助他获得旧的Turbo Pascal环境,但这并不理想.它很慢,有点深奥.

他确实认识到这种环境已成为过去,但他对此感到满意并且不想改变.

pascal windows-7

3
推荐指数
1
解决办法
1066
查看次数

箭头键不在组件中工作

我使用Gecko SDK,这是一个允许您查看网页的组件.
我使用这个组件来创建一个html编辑器.

关闭编辑网页时会发生此问题.
问题是箭头键和选项卡不适用于我的组件.我试图找到这个问题的答案,但我找不到.我在这里找到了一个曲目,但功能不起作用.

功能Movement (dx, dy)不存在.谢谢你帮我解决这个问题.

Procedure Tform1.TraiteMessages(Var msg : TMsg; Var Handled: boolean);
var
  dx, dy : integer;
begin   dx: 0; dy := 0; 
  With msg do
  begin
    IF Message = WM_KEYDOWN then
    Case  wparam of
      VK_LEFT  : dx := -1;
      VK_RIGHT : dx :=  1;
      VK_UP    : dy := -1;
      VK_DOWN  : dy :=  1;
    end;
  end;
  IF (dy = 0) AND (Dx = 0) then Handled := false else
  begin
    handled …
Run Code Online (Sandbox Code Playgroud)

delphi pascal custom-component

3
推荐指数
1
解决办法
1553
查看次数

Pascal读函数奇怪的行为

假设我想从终端读取同一行上的三个变量,我想使用read函数.我会用示例输入编写类似下一个代码的内容:

 10 929.1 x

 var a:integer;
 var b:real;
 var c:char;

 begin

 read(a,b,c);

 writeln (a, ' ', b, ' ' ,c);

 end.
Run Code Online (Sandbox Code Playgroud)

我永远不会读取字符"c".我必须像这样解决它:

 var a:integer;
 var b:real;
 var c:char;
 var d:char;

 begin

 read(a,b,d,c);

 writeln (a, ' ', b, ' ' ,c);

 end.
Run Code Online (Sandbox Code Playgroud)

现在,char d将读取空格,char c将具有正确的值.

此外,如果我只想读取三个字符,输入必须是"zyx",否则我将不得不使用另一个读取来修复"xy z"的问题.

它与数字完美配合.它将读作"10 9 2"而无需额外读取.

有谁知道这背后的原因?(我用fpc和gpc尝试过)

谢谢

pascal freepascal

3
推荐指数
1
解决办法
1749
查看次数

FreePascal初学者问题

我需要将一些代码从FreePascal移植到C.我是一名专业的C开发人员但对Pascal一无所知.大多数代码都可以轻松移植,但是一行代表让我很头疼.究竟应该做什么:

New(newBack); 
curBackPtr^ := newBack; 
curBackPtr := @(newBack^.next);
Run Code Online (Sandbox Code Playgroud)

让我感到困惑的是,在没有被访问的情况下newBack分配给它curBackPtr并在其之后分配的事实.那么第一个任务是不是多余的,可以安全地删除?或者我在这里遗漏了什么?newBack.nextcurBackPtrcurBackPtr

pascal freepascal

3
推荐指数
1
解决办法
232
查看次数

在Delphi中访问XML文档的一部分

我已经使用delphi数据绑定向导和我的xml文件,一切都编译并运行正常.

我的表格上有3个组合框.制造商,型号和年份.

使用FormCreate上的以下代码填充制造商.

procedure TfrmMain.FormCreate(Sender: TObject);
var
  RGearing : IXMLracegearingType;
  i : Integer;
begin
  // Load XML Document into Memory
  RGearing := Getracegearing(XMLDocument1);

  // Populate Manufacturer combobox
  for i := 0 to RGearing.Car.Count-1 do
  begin
    cbManufac.Items.Add(RGearing.Car[i].Manufacturer);
  end;

  // Copy current selected Manufacturer to string variable
  varManufac := cbManufac.ListItems[(cbManufac.ItemIndex)].Text;
end;
Run Code Online (Sandbox Code Playgroud)

我的问题是如何根据所选的当前制造商填充模型组合框.

这是随附的XML文件

<?xml version="1.0" encoding="UTF-8"?>
<gearing>
  <car>
    <id>1</id>
    <manufacturer>Ford</manufacturer>
    <model>Test 1</model>
    <year></year>
  </car>
  <car>
    <id>2</id>
    <manufacturer>Ford</manufacturer>
    <model>Test 2</model>
    <year></year>
  </car>
  <car>
    <id>3</id>
    <manufacturer>Honda</manufacturer>
    <model>Test 1</model>
    <year></year>   
  </car>
  <settings>
    <form_height></form_height>
    <form_width></form_width>
  </settings> …
Run Code Online (Sandbox Code Playgroud)

xml delphi pascal

3
推荐指数
1
解决办法
1168
查看次数

用FPC编写Scheme解释器:递归数据结构

本质上,这是关于Pascal(FPC)中的递归数据结构的问题.正如我想在SICP第4章中所示实现一个Scheme解释器,这个问题也可能与Schemers有关.:)

S表达式应表示为标记数据.到目前为止,我已经构建了一个变体记录,它代表了数字和对.希望代码是可读的和不言自明的:

program scheme;

type
   TTag = (ScmFixnum, ScmPair);
   PScmObject = ^TScmObject;
   TScmObject = record
      case ScmObjectTag: TTag of
         ScmFixnum: (ScmObjectFixnum: integer);
         ScmPair: (ScmObjectCar, ScmObjectCdr: PScmObject);
      end;

var
   Test1: TScmObject;
   Test2: TScmObject;
   Test3: TScmObject;

function MakeFixnum(x: integer): TScmObject;
var
   fixnum: TScmObject;
begin
   fixnum.ScmObjectTag := ScmFixnum;
   fixnum.ScmObjectFixnum := x;
   MakeFixnum := fixnum;
end;

function MakePair(car, cdr: PScmObject): TScmObject;
var
   pair: TScmObject;
begin
   pair.ScmObjectTag := ScmPair;
   pair.ScmObjectCar := car;
   pair.ScmObjectCdr := cdr;
   MakePair := pair;
end;

begin
   Test1 := MakeFixnum(7);
   writeln('Test1, Tag: …
Run Code Online (Sandbox Code Playgroud)

delphi scheme pascal freepascal sicp

3
推荐指数
1
解决办法
372
查看次数

Inno setup compiler:针对不同语言的不同类型描述

我正在尝试使用"Inno Setup Compiler 5.5.3(a)"编译安装程序.我已经包含了2种不同的语言(使用默认的.isl作为特定语言),但不是我无法弄清楚如何更改我所拥有的每种类型的"描述"字段(即"完整","紧凑"和"自定义")对于每种语言,但保留任何其他功能,即类型的"名称"应保持不变.我的代码现在看起来像这样:

[Languages]
Name: "en"; MessagesFile: "compiler:Default.isl"
Name: "sl"; MessagesFile: "compiler:Slovenian.isl"

[Types]
Name: "full"; Description: "Full installation"; Languages: en 
Name: "compact"; Description: "Compact installation"; Languages: en
Name: "custom"; Description: "Custom installation"; Languages: en; Flags: iscustom
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

pascal inno-setup

3
推荐指数
1
解决办法
1035
查看次数

如何在Pascal/Delphi中调用以下C函数?

我得到以下情况:

我想从我的Pascal程序中调用一个C函数.C函数应该用值填充传递的指针.

这是C函数:

DLLEXPORT int dpstate_callPluginFunction(const char* plugin, const char* function, bool synchronous, const char* p0, const char* p1, const char* p2, const char* p3, const char* p4, const char* p5, const char* p6, char** o0, char** o1, char** o2, char** o3, char** o4, char** o5, char** o6)
Run Code Online (Sandbox Code Playgroud)

"p"参数是输入参数,"o"参数是输出参数.我试图在我的Pascal程序中调用该函数,如下所示:

C Functioncall声明:

var dpstate_callPluginFunction: function(plugin, method: PAnsiChar; synchronous: boolean; p0, p1, p2, p3, p4, p5, p6: PAnsiChar; o0, o1, o2, o3, o4, o5, o7: PPAnsiChar): integer; cdecl;
Run Code Online (Sandbox Code Playgroud)

C功能调用加载:

@dpstate_callPluginFunction:= GetProcAddress(mConnectorLibrary, 'dpstate_callPluginFunction'); …
Run Code Online (Sandbox Code Playgroud)

c delphi pascal pointers

3
推荐指数
1
解决办法
1582
查看次数

Delphi if else else if语句不工作"表达式必须是BOOLEAN"

我想在Delphi中制作货币转换器,自从我上次使用Delphi以来已经有一段时间了,所以我有点生疏了.当我试图创建一个if,else if,else语句时,它给出了错误:"表达式必须是BOOLEAN".

这是我的代码:

if Edit1.Text = '' And Edit2.Text <> ''
    then Edit2.Text := '1'
else
if Edit1.Text <> '' And Edit2.Text = ''
    then ShowMessage('Blah')
else
if Edit1.Text ='' And Edit2.Text = ''
    then ShowMessage('Please Enter A Value')
else
    ShowMessage('Mathing Suff...');
Run Code Online (Sandbox Code Playgroud)

如果有人能看到我的愚蠢错误或出了什么问题会对你有所帮助.:)

编辑:错误在第一个if语句的行上弹出,而另外两个if在它之后.

delphi conditional pascal if-statement delphi-xe2

3
推荐指数
1
解决办法
1万
查看次数

InnoSetup中的文件选择

我希望用户在安装过程中选择许可文件,如何创建这种对话框?有谁能展示一些示例代码?

installer pascal inno-setup

3
推荐指数
1
解决办法
1007
查看次数