插入动作后,清空所有edit的内容。

本文介绍了一个使用Delphi进行数据库操作的例子,演示了如何通过界面输入数据并将其插入到数据库中,包括文件上传和参数化的SQL语句的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, DB, ADODB;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    Edit3: TEdit;
    Label4: TLabel;
    Edit4: TEdit;
    Label5: TLabel;
    Edit5: TEdit;
    SpeedButton1: TSpeedButton;
    OpenDialog1: TOpenDialog;
    Button1: TButton;
    Button2: TButton;
    ADOQuery1: TADOQuery;
    procedure SpeedButton1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
    Edit5.Text := OpenDialog1.FileName;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  With ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('Insert Into 歌曲 Values (:a,:b,:c,:d,:e)');
    Parameters.ParamByName('a').Value := Edit1.Text;
    Parameters.ParamByName('b').LoadFromFile(Edit5.Text,ftBlob );
    Parameters.ParamByName('c').Value := Edit2.Text;
    Parameters.ParamByName('d').Value := Edit3.Text;
    Parameters.ParamByName('e').Value := Edit4.Text;
    ExecSQL;
  end;
  Button2.Click;
end;

procedure TForm1.Button2Click(Sender: TObject);     //这里
var
  i: Integer;
begin
  For i := 0 to GroupBox1.ControlCount-1 do
    if GroupBox1.Controls[i]is TEdit then
      TEdit(GroupBox1.Controls[i]).Clear;
end;

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = vk_Return then
    FindNextControl(ActiveControl,true,false,false).SetFocus;
end;

end.

### PyQt5 文本框使用教程 #### 创建和配置单行文本框 (QLineEdit) `QLineEdit` 是 PyQt5 提供的一个用于输入或编辑单行文本的控件。以下是 `QLineEdit` 的一些常见操作: - **设置默认文本**: 可以通过 `setText()` 方法来初始化文本框中的内容[^3]。 - **获取当前文本**: 使用 `text()` 方法可以读取用户输入的内容。 下面是一个简单的示例代码展示如何创建并配置一个 `QLineEdit` 控件: ```python from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout class LineEditTextExample(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): layout = QVBoxLayout() line_edit = QLineEdit(self) line_edit.setText("初始文本") # 设置默认文本 line_edit.textChanged.connect(lambda text: print(f"文本已更改:{text}")) # 连接信号 layout.addWidget(line_edit) self.setLayout(layout) if __name__ == "__main__": app = QApplication([]) window = LineEditTextExample() window.show() app.exec_() ``` --- #### 创建和配置多行文本框 (QTextEdit) `QTextEdit` 支持多行文本输入,并允许嵌入 HTML 内容。其主要功能如下: - **设置纯文本**: 使用 `setPlainText()` 方法可向多行文本框中写入普通字符串[^2]。 - **获取纯文本**: 调用 `toPlainText()` 返回当前文本框内的所有文本。 - **清空内容**: 借助 `clear()` 方法删除文本框中的全部数据。 下面是关于 `QTextEdit` 的一段示范程序: ```python from PyQt5.QtWidgets import QApplication, QTextEdit, QWidget, QVBoxLayout class TextEditExample(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): layout = QVBoxLayout() text_edit = QTextEdit(self) text_edit.setPlainText("这是多行文本框的初始内容.") # 设置纯文本 html_content = "<h1>标题</h1><p>这是一个段落.</p>" text_edit.setHtml(html_content) # 插入HTML格式的数据 layout.addWidget(text_edit) self.setLayout(layout) if __name__ == "__main__": application = QApplication([]) widget = TextEditExample() widget.show() application.exec_() ``` --- #### 光标的控制 对于更复杂的交互需求,比如调整光标的位置或者插入特定位置上的新内容,则需要用到光标管理的相关函数。例如: - **移动光标到指定索引处**: 利用 `setCursorPosition(int)` 实现定位[^1]。 - **在当前位置插入字符串片段**: 执行 `insert(str)` 完成追加动作。 以下是一则针对上述特性的实例脚本: ```python from PyQt5.QtWidgets import QApplication, QLineEdit, QPushButton, QVBoxLayout, QWidget class CursorControlExample(QWidget): def __init__(self): super().__init__() self.line_edit = None self.setup_ui() def setup_ui(self): layout = QVBoxLayout() self.line_edit = QLineEdit(self) button_insert_text = QPushButton('Insert at cursor', clicked=self.insert_at_cursor_position) layout.addWidget(self.line_edit) layout.addWidget(button_insert_text) self.setLayout(layout) def insert_at_cursor_position(self): current_pos = self.line_edit.cursorPosition() # 获取当前光标位置 existing_text = self.line_edit.text() new_string = f"{existing_text[:current_pos]}InsertedText{existing_text[current_pos:]}" self.line_edit.setText(new_string) # 更新整个字段值 self.line_edit.setCursorPosition(current_pos + len("InsertedText")) # 移动光标至新增部分之后 if __name__ == '__main__': app_instance = QApplication([]) main_window = CursorControlExample() main_window.resize(400, 100) main_window.show() exit_code = app_instance.exec_() ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值