我已经开始使用Lazarus在Ubuntu 9.10上为我自己使用一些简单的工具.我知道很多人喜欢模块化的Delphi 7布局,但我讨厌它.我发现它很烦人且具有破坏性.出于同样的原因,我不喜欢使用Gimp.
我也更喜欢Delphi 2007调色板菜单.这是否可以在最新版本的Lazarus(v0.9.28.x)中使用?
如何配置Lazarus看起来像Delphi 2007/9/10?
我无法找到几个Delphi内存管理问题的答案.我可以测试不同的场景(我做了什么来找出破坏FreeAndNil方法的东西),但它需要太长时间而且很难!但说真的,我还想知道你们(Delphi开发人员)如何处理这些内存管理问题.
我的问题(随意提出自己的问题,我确信他们的答案对我也有帮助):
FreeAndNil是否适用于COM对象?我的想法是我不需要它,但是如果我需要做的就是将它设置为nil,而不是为什么不在我的finally块中保持一致并使用FreeAndNil来做所有事情?
什么是清理静态数组的正确方法(myArr:TObject的数组[0..5]).我不能FreeAndNil它,所以将它设置为nil是否足够好(在FreeAnNil'd每个对象之后我需要这样做吗?)?
多谢你们!
在C中有一个while循环和pascal(几乎)等价是重复直到循环,但两者之间有一个小的差异,而两个结构将至少迭代一次并检查它们是否只需要再次循环最后,在pascal中你编写了需要满足的条件来终止循环(REPEAT UNTIL something)在C中你写入需要满足的条件来继续循环(DO WHILE something).有没有理由存在这种差异,还是只是一个武断的决定?
我有一个使用字符串(Pascal)的程序.如果第一个字符不是字母,那么在读取字符串后,我需要删除所有第一个字符,直到第一个字符为一个字母.我曾尝试多次写它,但总是删除所有字符串或没有.
如果程序读取"123%^&abc",则结果应为"abc".在ASCII表格中,字母为65..90和97..122
这是我有多远:
variables a: set of 65..90;
b: set of 97..122;
-------------------
bool:=false;
While (bool=false) do
begin
Writeln(s[1]);
If (Ord(s[1]) in a) or (Ord(s[1]) in b) then
begin
bool:=true;
end else
delete(s,1,1);
end;
Run Code Online (Sandbox Code Playgroud)
我不明白为什么它不起作用?你能用这个小程序帮我吗?谢谢.
我正在寻找这个pascal代码的C++编码
var
jumlah,bil : integer;
begin
jumlah := 0;
while not eof(input) do
begin
readln(bil);
jumlah := jumlah + bil;
end;
writeln(jumlah);
end.
Run Code Online (Sandbox Code Playgroud)
我不明白在C++上使用eof
它的目的是计算从第1行到文件末尾的数据
编辑:我试过这个,但没有运气
#include<iostream>
using namespace std;
int main()
{
int k,sum;
char l;
cin >> k;
while (k != NULL)
{
cin >> k;
sum = sum + k;
}
cout << sum<<endl;
}
Run Code Online (Sandbox Code Playgroud)
对不起,我是C++的新手
这是我的问题,我正在整理一些我多年来修改过的旧代码并删除了redundent函数,
我可以用缓慢的方式来做它并将其注释掉,看看编译器是否会抛出错误.但我只是想知道是否有任何工具可以扫描代码并给出调用给定函数的函数列表.
我曾经看过ge-experts和icarus,但他们只在单位和类别的水平上执行此操作而不是功能.
欢迎任何建议,非常感谢,Brian
我马上就承认,至少可以说,我是帕斯卡尔缺乏经验的.所以,我能得到的任何帮助将不胜感激.:)
作为更大程序的一部分,我需要将一个字符串变量写入剪贴板.我在Lazarus(版本1.0.12)中创建了一个新项目,所以我可以尝试弄清楚如何在没有由额外的,不必要的代码引起的复杂性的情况下这样做,我在下面包含了这些:
program varToClipboard;
uses Clipbrd;
var
textToCopy:string;
begin
textToCopy := 'Test text from Pascal';
Clipboard.AsText := textToCopy;
end.
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,以及所需的LCLBase依赖项,我在运行编译的EXE时在CMD中收到以下错误:
An unhandled exception occurred at $000000000043D45E :
EAccessViolation : Access violation
$000000000043D45E CLIPBOARDREGISTERFORMAT, line 98 of ./include/lclintf.inc
$000000000043C35B PREDEFINEDCLIPBOARDFORMAT, line 185 of lclintf.pas
$0000000000415B0C TCLIPBOARD__SETASTEXT, line 452 of ./include/clipbrd.inc
$0000000000401802 main, line 12 of varToClipboard.lpr
Run Code Online (Sandbox Code Playgroud)
根据文档,我似乎做得很对.尽管如此,我发现文档缺乏时间.
另外,我必须做什么才能运行已编译的EXE(只生成并将字符串写入剪贴板)而不会弹出控制台窗口?
所以我尝试使用下一个修改过的代码发出没有互联网连接的帖子请求:
WinHttpReq := CreateOleObject('WinHttp.WinHttpRequest.5.1');
WinHttpReq.Open('POST', '<your_web_server>', false);
WinHttpReq.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
try
WinHttpReq.Send('data');
except
bla:= 'e';
finally
bla := 'f';
end;
Run Code Online (Sandbox Code Playgroud)
然而异常并没有被抓住,我对下一张图片的设置应用程序感到迷恋:

如何在Inno Setup中处理OleObject异常?
是否可以在Delphi中将枚举值转换/转换为Integer?
如果是,那怎么样?
pascal ×10
delphi ×6
lazarus ×2
c ×1
c++ ×1
clipboard ×1
delphi-2007 ×1
enumeration ×1
eof ×1
exception ×1
freepascal ×1
inno-setup ×1
input ×1
integer ×1
loops ×1
ole ×1
string ×1
syntax ×1
winapi ×1