通过百度网盘分享的文件:connectnion学习V43.rar
链接:https://pan.baidu.com/s/1yyhx5RlhUesPJRewXMKD0A
提取码:48cu
listbox2.Items.Add(FDMetaInfoQuery1.FieldByName('COLUMN_NAME').AsString +':' + FDMetaInfoQuery1.FieldByName('COLUMN_TYPENAME').AsString ); Memo1.SelText := '.' + leftStr( listBox2.Items[listBox2.ItemIndex], pos(':',listBox2.Items[listBox2.ItemIndex])-1 ); // Memo1.SelText := '.'+listBox2.Items[listBox2.ItemIndex] ; //将 文本插入到Memo1
原则,不使用第三方控件
提升自身编程能力
===================更新日志.log=====================
23 --显示WideMemo内容--列名后添加||‘’
24设计视图窗口功能
25右键编辑菜单
26导出为CSV
27只提取前200 limit 200
28更改 默认背景色
29aaa.csv导入到cccc.db的ddd表.bat
30增加clean.bat清理单元
31解决database table is locked,LockingMode设为Normal
32PageUp上翻历史SQL语句,PageDown下翻历史SQL语句
33支持REGEXP正则函数
34点运行,保存历史SQL语句,隐藏 下拉列表
35解决表名有空格,表名为关键字table
36彻底显示列类型为TEXT里的WideMemo内容,Memo类型里Memo内容
37上面编辑栏,查找第一个,一定要 点两次
38{行开头就是表名} ,再输入点号,带出列名列表
39]表名点号后,加入*号 代表所有列
40] String1Refresh; 注释掉 是回为 会产生 循环引用
41]ListBox_keyWordsKeyDown 左右 键 不能响应,否则会 返回到Memo1
42]memo1.HideSelection设为false,使自带的FindDialog1查找时,能显示第几个查找值,ReplaceDialog1也类似
====================================================
参考资料:关键部份
Listbox1拖动到右边Memo1指定位置https://prog.hu/tudastar/90383/drag-and-drop-tmemo
TMemo 关键字代码 着色 https://www.swissdelphicenter.ch/en/showcode.php?id=2150
https://www.experts-exchange.com/questions/21137398/Position-a-listbox-inside-a-memo-component.html
uniGUI类似 C:\Program Files (x86)\FMSoft\Framework\uniGUI\Demos\Desktop\SQLDemo
procedure TForm8.ListBox2KeyPress(Sender: TObject; var Key: Char); begin if (key =#13) and ( listBox2.ItemIndex>-1) then begin Memo1.SelText := '.'+listBox2.Items[listBox2.ItemIndex] ; //将 文本插入到Memo1 listbox2.Visible:=false; ListBox_keyWords.Visible:=false; memo1.SetFocus; end; end;
procedure TForm8.Memo1KeyPress(Sender: TObject; var Key: Char);
var pt: TPOint; // Memo1 弹出listbox2的位置 //============= 弹出 ListBox2m 并获得 焦点=========== ================= GetCaretPos(pt); ListBox2.Top := Memo1.Top + pt.y +17; ListBox2.left := Memo1.Left+ pt.x +17; ListBox2.BringTofront; ListBox2.Visible:=True; if ListBox2.CanFocus then ListBox2.SetFocus; //=====================================================================
FDConnection1.GetTableNames('', '', '', ListBox1.Items); //所有 表 名
StringGrid1.RowCount := FDMetaInfoQuery1.RecordCount + 1; //所有 字段名 i := 0; listbox2.Items.Clear;//下拉 字段名 FDMetaInfoQuery1.First; while not FDMetaInfoQuery1.Eof do begin StringGrid1.Cells[1, i + 1] := FDMetaInfoQuery1.FieldByName('COLUMN_NAME').AsString; // '名'; StringGrid1.Cells[2, i + 1] := FDMetaInfoQuery1.FieldByName('COLUMN_TYPENAME').AsString; // '值'; listbox2.Items.Add(FDMetaInfoQuery1.FieldByName('COLUMN_NAME').AsString); FDMetaInfoQuery1.Next; i := i + 1; end;
表列 自动带出 。
关键字 自动补全