经过一个多星期努力,今天终于升星了,说明我的努力也得到大家认可,在此谢过大家
以后要学习JAVA了,大概少来这里,希望大家能记住我^_^
同时提一下意见,就是提问题时要注意问题小类,不要都往非技术区放,我扩充话题也都快到1000分了
下面我把碰到大家常问问题放上来,没怎么整理,都是一些简单的,相信大家看的懂
废话太多,希望看过都留言,拿出一半散给大家(共400,可用分长的太慢了吧,还好去年申请时有点积蓄)有一些是别人回答的,我没有测试
//Treeview加Checkbox
引用单元:uses Commctrl;
procedure SetComCtlStyle(Ctl: TWinControl; Value: Integer; UseStyle: Boolean);
var
  Style: Integer;
begin
  if Ctl.HandleAllocated then
  begin
    Style := GetWindowLong(Ctl.Handle, GWL_STYLE);
    if not UseStyle then Style := Style and not Value
    else Style := Style or Value;
    SetWindowLong(Ctl.Handle, GWL_STYLE, Style);
  end;
end;
调用:SetComCtlStyle(Treeview1, TVS_CHECKBOXES, True);安装这些包的方法很简单,只需点击菜单"component---->Install Packages...",
然后使用"ADD"选择dclsockets70.bpl(在Delphi目录的bin)的包就可以了DCOM客户端设置
在“运行”中输入“dcomcnfg”里面要选择与你有关的应用程序设置安全性的“无”和身份标识为“交互式用户”function A(b:string):string;
function A(const b:string):string;
function A(va b:string):string;
说明:
1.简单传值,运行对b进行操作赋值,函数体内改变的值对函数外没影响,退出函数后还是原来的值
2.b在函数中值不能被改变
3.传b地址,对b值改变影响所有b的调用值,退出函数后就变成新值参数设置
run/parameters里面的parameters设置参数存储过程参数设置一个方法
adostoredproc2.Close;
adostoredproc2.Parameters.Clear;
adostoredproc2.Parameters.CreateParameter('sname',ftString,pdInput,20,'ryan');
adostoredproc1.ExecProc;路径
tools\Environment Option=>Library=>library path拖动改变大小
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if (SSCtrl in Shift) and (SSLeft in Shift) then
  begin
    ReleaseCapture;
    Panel1.Perform(WM_Syscommand,SC_Size+2,0);
  end;
end;书签
var Tb:TBookMark;
begin
  with Query1 do begin
    Tb:=GetBookMark;
    Close; Open;
    Try 
      GotoBookMark(Tb);
    except
      Last;
    end;
  end;
end;××××××××××××××××××××××××××××××××××
鼠标滚轮GRID
private
    OldGridWnd: TWndMethod;
  public
    procedure NewGridWnd(var Message: TMessage);
  end;
...procedure TfrmDgBase.FormCreate(Sender: TObject);
var I: integer;
begin
  OldGridWnd := dgBase.WindowProc;
  dgBase.WindowProc := NewGridWnd;
end;procedure TfrmDgBase.NewGridWnd(var Message: TMessage);
var
  IsNeg: Boolean;
begin
  if Message.Msg = WM_MOUSEWHEEL then
  begin
    IsNeg := Short(Message.WParamHi) < 0;
    if IsNeg then
      dgBase.DataSource.DataSet.MoveBy(1)
    else
      dgBase.DataSource.DataSet.MoveBy(-1)
  end
  else
    OldGridWnd(Message);
end;
××××××××××××××××××××××××××××××××××××××××××××
olevariant转换
procedure TForm1.Button1Click(Sender: TObject);
var
  a:olevariant;
  b:_recordset;
begin
  b := IUnKnown(a) as _recordset;
end;
在网上发现一个更为简单的反色方法,用Bitblt实现,代码如下:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  BMP : TBitmap;
begin
  Bmp := TBitmap.Create;
  try
    Bmp.Width := Image1.Picture.Bitmap.Width;
    Bmp.Height := Image1.Picture.Bitmap.Height;
    Bitblt(Bmp.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, Image1.Picture.Bitmap.Canvas.Handle, 0, 0, NOTSRCCOPY);
    Image1.Picture.Bitmap.Assign(Bmp);
  finally
    Bmp.Free;
  end;
end;
把调用的外部程序的运行界面融入到自己的应用程序界面中来
思想:1、找到外部程序运行后的窗口句柄
      2、重新设置应用程序窗口的parent handle
var
  hwnd:thandle;
begin
  hwnd:=findwindow(nil,'应用程序窗口标题');
  if hwnd>0 then //找到 
 begin
    windows.setparent(hwnd,self.handle);//重新设置parent为你的当前窗口
  end;
end;替换doc内容
NewDocument := Word_ole.Documents.add(ExtractFilePath(Application.ExeName) + 'test.dot');
wApp:=newdocument.Application;
wApp.selection.find.text:='<%a1%>';
wApp.selection.find.replacement.text:='被替换的字符';
wApp.selection.find.execute(replace:=wdReplaceAll);avi转mejp
bbmpeg.dll动态调用DLL给你个例子:
type
  TInStr = function(Source: PChar; Check: Char): Integer;stdcall;
  //注意这里申明,类似你上面的testprocedure TfrmDryDll.Edit2KeyPress(Sender: TObject; var Key: Char);
var
  order: Integer;
  txt: PChar;
  PFunc: TInStr;
  Moudle: THandle;
  ch: Char;
begin
  ch := Key;
  Moudle := Loadlibrary('c:\DryDll.dll');
  if Moudle > 32 then
  begin
    Edit2.Text := '';
    @Pfunc := GetProcAddress(Moudle, 'TestInStr');
    txt := StrAlloc(80);
    txt := StrPCopy(txt, Edit1.Text);
    Order := TInstr(PFunc)(PChar(Edit1.Text), ch);
    if Order = -1 then
      Edit3.Text := '不包含这个字符!'
    else
      Edit3.Text := IntToStr(Order);
  end;
  Freelibrary(Moudle);
end;
ORACLE过程
CREATE OR REPLACE PROCEDURE GXKHDJ(GSDM VARCHAR2,
DHAO VARCHAR2)
AS
  MRJB VARCHAR2(2);
  CNT NUMBER;
BEGIN
  ERRNUM:=0;
  MSG:='开始';
  ...
  COMMIT;
  ERRNUM:=1;
  MSG:='成功结束!';  
EXCEPTION
  WHEN OTHERS THEN
    ROLLBACK;
    ERRNUM:=-1;
    MSG:='由于意外原因,失败!
'||SQLERRM;
END;
/
在鼠标按下时如下代码将实现一个窗口的拖动:
1
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);
const SC_DRAGMOVE:longint=$f012;
begin
   ReleaseCapture;
   sendmessage(form1.Handle,wm_syscommand, SC_DRAGMOVE, 0);
end;2
procedure TForm1.Button1Click(Sender: TObject);
begin
  MoveWindow(handle,10,10,height,width,true);
end;改变滚动条颜色
commctrl;procedure TForm1.Button1Click(Sender: TObject);
begin
InitializeFlatSB(memo1.handle);
end;输入控制
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not ( Key in ['0'..'9','.',#8]) then
    Key := #0;
end;打开MP3等文件
uses
  shellApi;这里是播放MP3,其他也类似
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(Handle,Pchar('OPEN'),Pchar('c:\Beyond.mp3'),nil,nil,SW_SHOWNORMAL);
end;