Delphi

“Parameter xxx has no default value” error when using Order by in SQL statement

荒凉一梦 提交于 2020-01-06 01:32:31
问题 I am trying to run the following SQL statement: "SELECT *, (IIF([Field]=TRUE,'StringValue1','StringValue2') AS [NewField] FROM [Table1] ORDER BY [NewField] ASC" But this gives me an error "Parameter NewField has no default value". How can I solve it? I am using Microsoft Access (MDB) database using Jet Engine from Delphi 7. Thank you! 回答1: In the ORDER BY clause, you can reference a column by its ordinal number: SELECT IIF(T.[Field]=TRUE, 'StringValue1', 'StringValue2') AS [NewField], T.*

share data to LinkedIn User’s Profile for status update

丶灬走出姿态 提交于 2020-01-06 01:01:10
问题 I am working on a program which share data to LinkedIn User’s Profile. I am using Delphi XE2, OAuth and LinkedIn API for the same. I am able to Access token. But I am getting error on when trying to. I am using OAuth for Delphi. For SSL I am using, TIdSSLIOHandlerSOcketOpenSSL with method sslvSSLv3. I am trying to post the following: I am posting (https://api.linkedin.com/v1/people/~/shares)as Url and ('; hiSir anyone ) as Xml. And my Idhttp Custom header*** ('oauth_consumer_key='+xxxxxxxxxxx

Delphi Excel 操作大全

人走茶凉 提交于 2020-01-05 23:44:48
(一) 使用动态创建的方法 首先创建 Excel 对象,使用ComObj: var ExcelApp: Variant; ExcelApp := CreateOleObject( 'Excel.Application' ); 1) 显示当前窗口: ExcelApp.Visible := True; 2) 更改 Excel 标题栏: ExcelApp.Caption := '应用程序调用 Microsoft Excel'; 3) 添加新工作簿: ExcelApp.WorkBooks.Add; 4) 打开已存在的工作簿: ExcelApp.WorkBooks.Open( 'C:/Excel/Demo.xls' ); 5) 设置第2个工作表为活动工作表: ExcelApp.WorkSheets[2].Activate; 或 ExcelApp.WorksSheets[ 'Sheet2' ].Activate; 6) 给单元格赋值: ExcelApp.Cells[1,4].Value := '第一行第四列'; 7) 设置指定列的宽度(单位:字符个数),以第一列为例: ExcelApp.ActiveSheet.Columns[1].ColumnsWidth := 5; 8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例: ExcelApp.ActiveSheet.Rows

Delphi XE5 for Android (二)

别等时光非礼了梦想. 提交于 2020-01-05 23:44:12
按照Embarcadero的说法:Windows平台只能使用VCL,Windows、iOS和Android都可以使用FMX,并且VCL和FMX不能同时在一个程序中。FMX的用法与VCL有一定的差异,先从最简单的说起: 应用程序的关闭退出 在VCL中,关闭程序的主窗体也就意味着程序的主循环结束,主程序自然而然结束。所以在主窗体中使用窗体的关闭函数(Close)即可,如下: procedure TfrmMain.btncloseClick(Sender: TObject); begin Close; end; 在FMX中,由Activity替代了Form的概念,虽然TForm类仍然存在,但MainForm通过关闭函数无法结束程序,使用Application.Terminate均无效,调整为: uses FMX.Platform.Android; procedure TForm2.SpeedButton1Click(Sender: TObject); begin MainActivity.finish; end; 此时程序直接关闭了,如果需要在退出前询问一下,可以参考VCL中的做法,在按钮事件中仍然使用关闭函数,在OnCloseQuery事件中询问是否退出,在OnClose事件中实现程序的关闭,如下: uses FMX.Platform.Android; procedure

delphi Move操作

百般思念 提交于 2020-01-05 23:43:51
var s:string; ps:Pchar; b:pbyte; len:integer; begin s:=edit1.Text; //字符串 ps:=pchar(s); //转成pchar类型, len:=length(s);//取字符串长度,占用多少字节 getmem(b,len);//申请内存,pchar,pbyte在使用前都必须要申请内存,因为他们是指针. move(ps^,b^,len);//这里 ps^意思是pchar指向内存数据的第一个字节地址,B^是表示申请内存的第一个字节地址,这样就可以一个一个字节的移到b里去了. memo1.Text:=pchar(b);//显示. freemem(b); end; 有些人遇到的困惑是为什么 move(s,b,len)不行呢?同样我也遇到这样的困惑. 看了一样move的函数源码才明白. procedure Move( const Source; var Dest; count : Integer ); {$IFDEF PUREPASCAL} var S, D: PChar; I: Integer; begin S := PChar(@Source);//取内存地址 D := PChar(@Dest);//取内存地址 if S = D then Exit; if Cardinal(D) > Cardinal(S) then

Delphi技巧集二 (文本文件读写)

会有一股神秘感。 提交于 2020-01-05 23:43:26
文本文件读写 ******(转载自万一的 Delphi 博客)***** 前言: Delphi 支持三种文件类型: 文本文件、记录文件、无类型文件。 文本文件是以行为单位进行读、写的。由于每一行的长度不一定相同,不能计算出给定行在文件中的确切位置,因而只能顺序地读写。 文本文件只能单独为读或写而打开,在一个打开的文本文件上同时进行读、写操作是不允许的。 文本文件的打开需要两个步骤:1.文件变量与文件名关联;2.初始化读写。 1.文件变量与文件名关联: AssignFile(VarTxt, FileName); FileName 如果省略路径将默认当前目录。 2.初始化读写有三种方式: (1) Reset: 只读打开, 指针移到文件头; (2) Rewrite: 创建新文件并打开, 只写; (3) Append: 从尾部追加, 指针当然在文件尾。 文件不存在时使用 Reset 或 Append 会引发一个I/O异常。 最后用 CloseFile 关闭文件。 为保持兼容,Delphi 也允许用户用 Assign 建立关联, 用 Close 关闭文件。 -------------------------------------------------------------------------------- //读写示例: unit Unit1; interface uses

delphi读写文本文件 assignfile reset append

戏子无情 提交于 2020-01-05 23:43:11
procedure TForm1.Button1Click(Sender: TObject); var fi:TextFile; //system单元中有textfile数据类型的定义 a1:string; i:integer; strsql:string; begin i:=1; strsql:=''; AssignFile(fi,'e:\22.txt'); Reset(fi); while not Eof(fi) do begin Readln(fi,a1); strsql:=strsql+a1; if (i mod 2=0) then begin //showmessage(strsql); strsql:=''; end; i:=i+1; end; CloseFile(fi); end; 这里的关键是:while not eof(fi) do ,在这个循环里可以逐条取得数据。 Delphi 支持三种文件类型: 文本文件、记录文件、无类型文件。 文本文件是以行为单位进行读、写的。由于每一行的长度不一定相同,不能计算出给定行在文件中的确切位置,因而只能顺序地读写。 文本文件只能单独为读或写而打开,在一个打开的文本文件上同时进行读、写操作是不允许的。 文本文件的打开需要两个步骤:1.文件变量与文件名关联;2.初始化读写。 1.文件变量与文件名关联: AssignFile

Delphi中var和out

本小妞迷上赌 提交于 2020-01-05 22:04:57
var:    传递的是参数的地址 out:    以返回值的形式返回结果,类似函数的效果;可以实现一个函数返回多个值 来源: https://www.cnblogs.com/Coder-MIFir/p/10898121.html

Retrieve default internet timeout values?

て烟熏妆下的殇ゞ 提交于 2020-01-05 16:49:02
问题 I'm trying to retrieve the default values for the INTERNET_OPTION_SEND_TIMEOUT , INTERNET_OPTION_SEND_TIMEOUT , and INTERNET_OPTION_RECEIVE_TIMEOUT options flags. From what I read, they are in WinInit. The below code fails to compile with Types of actual and formal var parameters must be identical , but which parameter is incorrect here? procedure TFrmWininetTimeOuts.FormShow(Sender: TObject); var hSession : HINTERNET; dwTimeOut : DWORD; begin hSession := InternetOpen('usersession', INTERNET

Delphi Graphics32 how to draw a line with the mouse on a layer

半世苍凉 提交于 2020-01-05 15:26:22
问题 Can anybody help me convert this great method of dynamically drawing a line (Photoshop style drawing line with delphi) to Graphics32? I mean, I want to have a ImgView, add a new layer to it, then perform these methods on the layer instead of the form's canvas. So I assume, my code should look like this: private FStartPoint, FEndPoint: TPoint; FDrawingLine: boolean; bm32: TBitmap32; ... procedure TForm1.FormCreate(Sender: TObject); begin bm32 := TBitmap32.Create; FDrawingLine := false; end;