برنامه نویس

به وبلاگ خودتان خوش آمدید.

برنامه نویس

به وبلاگ خودتان خوش آمدید.

مشاهده ip های درون شبکه

کافی است این دستور را در run و یا cmd تایپ کنید :      arp -a


برای مشاهده منابع Share شده (فولدرها، پرینترها، و...) در شبکه  این دستور را تایپ کنید : Net View


در برخی موارد قبل از استفاده از فرمان Net View باید از فرمان های دیگر مثل Net Use استفاده کنید.

استفاده از combobox با دو ستون در دلفی (بخش ابجکت combobox)


به عنوان مثال برای نگهداری یک رشته و یک ایدی از کد زیر استفاده میکنیم :
 ComboBox1.Items.AddObject(sItem, TObject(i));

برای نمایش بر اساس ایدی مورد نظر هم از کد زیر استفاده میکنیم :
 Value :=Integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex])

دستور update در زمان شرطی بودن عملکرد (if-else)

update <sometable>
set field = case when <condition> then <newvalue> else field end
where <condition>

کد دلفی حذف گروهی متون در edit ها

procedure ClearEditBoxes;
var
i : integer;
begin
for i := 0 to Form1.ComponentCount - 1 do begin
if (Form1.Components[i].InheritsFrom(TEdit)) then begin
(Form1.Components[i] as TEdit).Clear;
end;
end; // for i
end;

دستور Update با join در Sql Server

update item_master
set mf_item_number = (some value)
from 
   group_master as gm
   join Manufacturar_Master as mm ON ........
where
 .... (your conditions here)

-----------------------------------
UPDATE A SET foo = B.bar FROM TableA A JOIN TableB B ON A.col1 = B.colx WHERE ...

استفاده ازstored procedure با پارامتر خروجی در sql server

ALTER PROCEDURE testme @input  VARCHAR(10),
                       @output VARCHAR(20) output
AS
  BEGIN
      IF @input >= '1'
        BEGIN
            SET @output = 'i am back';

            RETURN;
        END
  END

DECLARE @get VARCHAR(20);

EXEC testme
  '1',
  @get output

SELECT @get 

جدا کردن بخشی از متن از اخرین "\" در sql server

DECLARE @FilePath VARCHAR(50)
DECLARE @FindChar VARCHAR(1)
set @FilePath= 'My\Super\Long\String\With\Long\Words'
set @FindChar= '\'
-- Shows text before last slash
SELECT LEFT(@FilePath, LEN(@FilePath) - CHARINDEX(@FindChar,REVERSE(@FilePath))) AS Before
-- Shows text after last slash
SELECT RIGHT(@FilePath, CHARINDEX(@FindChar,REVERSE(@FilePath))-1) AS After
-- Shows the position of the last slash
SELECT LEN(@FilePath) - CHARINDEX(@FindChar,REVERSE(@FilePath)) AS LastOccuredAt

تغییر نام دیتابیس در sql server 2000

EXEC sp_renamedb 'oldName', 'newName'
Go
ALTER DATABASE oldName MODIFY FILE (NAME=N'oldName_Data', NEWNAME=N'newName_Data')
GO
ALTER DATABASE oldName MODIFY FILE (NAME=N'oldName_Log', NEWNAME=N'newName_Log')
GO

تشخیص مسیر دیتابیس در sql server


DECLARE @DBAddress nvarchar(4000),@Address nvarchar(4000),
                @Index int
SELECT @DBAddress=[filename]
FROM master.dbo.sysdatabases where name = (select db_name())

SET @Index=CHARINDEX('\DB\',@DBAddress)
SET @Address=SUBSTRING(@DBAddress,1,@Index)

دستور CURSOR در Sql Server

DECLARE cursor1 CURSOR
    FOR select field1,field2,... from table1
OPEN cursor1
FETCH NEXT from cursor1 into  @field1,@field2,...
WHILE @@FETCH_STATUS = 0
BEGIN
دستورات مورد نظر
FETCH NEXT FROM cursor1 INTO  @field1,@field2,...
end
CLOSE cursor1
DEALLOCATE cursor1

تبدیل تاریخ به فرمت کاراکتر در sql server

دستور ان به صورت زیر نوشته میشود :

CONVERT(data_type(length),expression,style)

اسکریپت زیر حالت ها مختلف تبدیل تاریخ به رشته را نمایش میدهد

CONVERT(VARCHAR(19),GETDATE())
CONVERT(VARCHAR(10),GETDATE(),10)
CONVERT(VARCHAR(10),GETDATE(),110)
CONVERT(VARCHAR(11),GETDATE(),6)
CONVERT(VARCHAR(11),GETDATE(),106)
CONVERT(VARCHAR(24),GETDATE(),113)

CONVERT(VARCHAR(10),GETDATE(),11)

خروجی به صورت زیر نمایش داده میشود

Nov 04 2011 11:45 PM
11-04-11
11-04-2011
04 Nov 11
04 Nov 2011
04 Nov 2011 11:45:34:243 

14/12/06

این هم جدولی که نوع نمایش میتونید مشخص کنید


Value
(century yy)
Value
(century yyyy)
input/output
-0 or 100mon dd yyyy hh:miAM (or PM)
1101mm/dd/yy
2102yy.mm.dd
3103dd/mm/yy
4104dd.mm.yy
5105dd-mm-yy
6106dd mon yy
7107Mon dd, yy
8108hh:mm:ss
-9 or 109mon dd yyyy hh:mi:ss:mmmAM (or PM)
10110mm-dd-yy
11111yy/mm/dd
12112yymmdd
-13 or 113dd mon yyyy hh:mi:ss:mmm (24h)
14114hh:mi:ss:mmm (24h)
-20 or 120yyyy-mm-dd hh:mi:ss (24h)
-21 or 121yyyy-mm-dd hh:mi:ss.mmm (24h)
-126yyyy-mm-ddThh:mi:ss.mmm (no spaces)
-130dd mon yyyy hh:mi:ss:mmmAM
-131dd/mm/yy hh:mi:ss:mmmAM





پروسیژر ایجاد فایل پشتیبان و بازیابی اطلاعات بر روی دیتابیس جدید در sql


CREATE Procedure NewDoreh
@Path_DB    varchar(500)
As
Declare         @CountDattabase   int   
Declare     @Name_DB    nvarchar(50)
Declare     @Path_Data_File    nvarchar(500)
Declare     @Path_Log_File    nvarchar(500)
Declare     @SysName    varchar(10)
Declare     @DFName        varchar(14)
Declare     @LFName        varchar(14)

SET @SysName='databasename'
select @CountDattabase=count(name) from master.dbo.sysdatabases where name like '%databasename%'

SET @DFName=@SysName+'_Data'
SET @LFName=@SysName+'_Log'

SET @Name_DB=@SysName+ltrim(rtrim(Str(@CountDattabase+1)))
SET @Path_Data_File=rtrim(@Path_DB)+@Name_DB+'.mdf'
SET @Path_Log_File=rtrim(@Path_DB)+@Name_DB+'.ldf'

Declare @SQL_ Nvarchar(4000)

SET @SQL_= N'
Backup DataBase '+@SysName+ltrim(Str(@CountDattabase))+' To Disk='''+@Path_DB+'Bdatabasename.Bak'''
exec sp_executesql @SQL_

SET @SQL_= N'RESTORE DATABASE '+@Name_DB+' FROM  DISK ='''+ @Path_DB+'Bdatabasename.bak'' WITH  FILE = 1,  NOUNLOAD ,  STATS = 10,  RECOVERY ,  MOVE '''+@DFName +''' TO '''+@Path_Data_File+''',  MOVE '''+@LFName+''' TO '''+ @Path_Log_File+''''
exec sp_executesql @SQL_

select 1

GO

skin در دلفی xe2

از قابلیتهای  Delphi XE2 پوسته میباشد یعنی شما بدون نصب کامپوننتهای skin مثل vcl skin , alpha control , busines skin و ... به راحتی میتونین به برنامتون skin بدین برای این امر به ادرس در منو بروید Project/oprion و در پنجره جدید Application/Appearance را انتخاب کنید. حالا لیستی از skin پیش فرض که به همراه دلفی نصب میشود داریم برای اعمال skin مورد نظر کافی است تیک skin مورد نظر را زده تا در کمبوباکس پایین Default Style  اسکین مورد نظر شما اضافه شود سپس کمبو باکس را روی skin مورد نظر خود قرار دهید و روی دکمه ok کلیک کنید حالا با اجرا برنامه skin شما اعمال خواهد شد . به همین راحتی .

شما میتوانید استایلهای دیگری را نیز از اینترنت دانلود و استفاده کنید برای این کار بعد از دانلود فایلهای .vsf را در ادرس پوشه Style به ادرس زیر کپی کنید
C:\Users\Public\Documents\RAD Studio\9.0\Styles
تا به لیست استایلها اضافه شود
شما میتوانید استایلها را به سلیقه خود تغییر و مورد استفاده قرار دهید به همراه مجموعه دلفی یک Vcl Style Designer نصب میشود که از منو
Tools/Vcl Style Designer میتوانید از ان استفاده نموده و استایل مورد نظر خود را تغییر دهید

برای تغییر skin در زمان اجرا هم اول یونیهای Vcl.Themes,Vcl.Styles رو uses میکنید و از کد زیر استفاده کنید



procedure TForm1.btn1Click(Sender: TObject);
begin
  if TStyleManager.IsValidStyle(getCurrentdir + '\Auric.vsf') then
    TStyleManager.SetStyle(TStyleManager.LoadFromFile(getCurrentdir + '\Auric.vsf'));
end;



یا از کدهای زیر برای پر کردن یک کامبوباکس و ست کردن استایل با انتخاب هر کدام از انها استفاده کنید 


procedure TForm1.ComboBox1Change(Sender: TObject);

begin

 TStyleManager.TrySetStyle(ComboBox1.Items[ComboBox1.ItemIndex]);

end;


procedure TForm1.FormShow(Sender: TObject);

var

  s: String;

begin

  ComboBox1.Items.BeginUpdate;

  try

    ComboBox1.Items.Clear;

    for s in TStyleManager.StyleNames do

    begin

      memo1.Lines.Add(s);

      ComboBox1.Items.Add(s);

    end;

    ComboBox1.Sorted := True;

    // Select the style that's currently in use in the combobox

    ComboBox1.ItemIndex := ComboBox1.Items.IndexOf(TStyleManager.ActiveStyle.Name);

  finally

    ComboBox1.Items.EndUpdate;

  end;


end;

استفاده از trayicon در دلفی

میخواهم برنامه ای بنویسم که با هر رویداد جدید قرار است ما را با خبر کند یکی از روش ها استفاده از trayicon است.

1- برای این کار یک tray icon  بر روی فرم میگذاریم و تایمر ان را تنظیم میکنیم 

2- در رویداد onanimate  دستوراتی را مینویسیم که قرار است چک کند رویداد جدید وجود دارد یا خیر و در انتها کد زیر برای باز شدن بالون استفاده میشود .

TrayIcon1.ShowBalloonHint ;

3- در کد پروژه که از قسمت project-> view source باز میشود در خط اول کد  زیر را قرار میدهیم 

Application.MainFormOnTaskbar := False; 

4- از application event استفاده میکنیم و کد زیر را اضافه میکنیم


procedure TForm1.ApplicationEvents1Minimize(Sender: TObject);
begin
  Hide;

end;

5- و در اخر کد زیر را در trayicon اضافه میکنیم 



procedure TForm1.TrayIcon1Click(Sender: TObject);
begin
  if not Visible then
    begin
      Show;
      Application.Restore;
      Application.BringToFront;
    end;
end;

فارسی شدن کیبرد برای تایپ فارسی در برنامه

کد زیر را در فرم اصلی قرار دهید


procedure TMain.FormCreate(Sender: TObject);
begin
LoadKeyboardLayout('00000429', KLF_ACTIVATE);
end;