以下是一个简单的基于Delphi的家庭财务管理系统代码示例。这个系统可以记录收入和支出,并生成基本的财务报告。为了简化,我们将使用Delphi自带的组件(如TForm、TListBox、TEdit等)来实现界面和功能。
—
1. 创建项目
- 打开Delphi IDE。
- 创建一个新的VCL Forms Application。
- 在窗体上添加以下控件:
- TLabel:用于显示提示信息。
- TEdit:用于输入金额和备注。
- TComboBox:用于选择收入或支出。
- TButton:用于添加记录。
- TListBox:用于显示记录。
- TButton:用于生成报告。
2. 界面设计
将控件拖放到窗体上,并设置它们的属性如下:
控件名称 | 属性 | 值 |
---|---|---|
Label1 | Caption | 类型: |
ComboBox1 | Items | [‘收入’, ‘支出’] |
Label2 | Caption | 金额: |
Edit1 | Text | (空) |
Label3 | Caption | 备注: |
Edit2 | Text | (空) |
Button1 | Caption | 添加记录 |
ListBox1 | ||
Button2 | Caption | 生成报告 |
3. 实现代码
以下是完整的代码实现:
unit FinancialManagement;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
ComboBox1: TComboBox;
Label2: TLabel;
Edit1: TEdit;
Label3: TLabel;
Edit2: TEdit;
Button1: TButton;
ListBox1: TListBox;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
TotalIncome, TotalExpense: Double;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Amount: Double;
RecordType, Note: String;
begin
// 获取用户输入
RecordType := ComboBox1.Text;
if TryStrToFloat(Edit1.Text, Amount) then
begin
Note := Edit2.Text;
// 添加到列表框
ListBox1.Items.Add(Format('%s: %.2f - %s', [RecordType, Amount, Note]));
// 更新总收入和总支出
if RecordType = '收入' then
TotalIncome := TotalIncome + Amount
else if RecordType = '支出' then
TotalExpense := TotalExpense + Amount;
// 清空输入框
Edit1.Clear;
Edit2.Clear;
end
else
ShowMessage('请输入有效的金额!');
end;
procedure TForm1.Button2Click(Sender: TObject);
var
NetBalance: Double;
begin
// 计算净余额
NetBalance := TotalIncome - TotalExpense;
// 显示报告
ShowMessage(Format('总收入: %.2f' + sLineBreak +
'总支出: %.2f' + sLineBreak +
'净余额: %.2f',
[TotalIncome, TotalExpense, NetBalance]));
end;
end.
4. 功能说明
添加记录
- 用户可以选择“收入”或“支出”,输入金额和备注。
- 点击“添加记录”按钮后,记录会被添加到
ListBox1
中。 - 同时更新总收入和总支出。
生成报告
- 点击“生成报告”按钮后,会弹出一个对话框,显示总收入、总支出和净余额。
5. 数据持久化(可选)
如果需要保存数据到文件,可以使用以下代码:
保存数据
procedure TForm1.SaveData;
var
FileName: String;
FileHandle: TextFile;
i: Integer;
begin
FileName := 'FinancialRecords.txt';
AssignFile(FileHandle, FileName);
Rewrite(FileHandle);
for i := 0 to ListBox1.Items.Count - 1 do
Writeln(FileHandle, ListBox1.Items[i]);
CloseFile(FileHandle);
end;
加载数据
procedure TForm1.LoadData;
var
FileName: String;
FileHandle: TextFile;
Line: String;
begin
FileName := 'FinancialRecords.txt';
if FileExists(FileName) then
begin
AssignFile(FileHandle, FileName);
Reset(FileHandle);
while not Eof(FileHandle) do
begin
Readln(FileHandle, Line);
ListBox1.Items.Add(Line);
end;
CloseFile(FileHandle);
end;
end;
在窗体的OnCreate
事件中调用LoadData
,在窗体关闭前调用SaveData
。
6. 总结
这是一个简单的家庭财务管理系统的实现。你可以根据需求扩展功能,例如:
- 添加日期选择器以记录日期。
- 使用数据库(如SQLite)存储数据。
- 提供图表展示收支情况。