تبليغاتX
آموزش دلفی
ترفندهای دلفی

     

ShellExecute (HWND(nil), 'open', 'calc','', '', SW_SHOWNORMAL);

+ نوشته شده در  سه شنبه 1386/06/06ساعت 23:4  توسط هوشنگ شیشه لو | 

 خاموش کردن مونیتور

 SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 0);

 روشن کردن مونیتور

 SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, -1);

 

+ نوشته شده در  سه شنبه 1386/06/06ساعت 16:28  توسط هوشنگ شیشه لو | 

 با این تابع می توانید برنامه های دیگر را از درون برنامه خودتان ببندید :

function KillApp(const sCapt: PChar) : boolean;
  var AppHandle:THandle;
begin
  AppHandle:=FindWindow(Nil, sCapt) ;
  Result:=PostMessage(AppHandle, WM_QUIT, 0, 0) ;
end;

if KillApp('ليبيل برنامه مقصد') then ShowMessage('بسته شد') ; 
 

 

+ نوشته شده در  سه شنبه 1386/06/06ساعت 16:21  توسط هوشنگ شیشه لو | 

به زودی ترفندهای جدید در این وبلاگ گنجانده خواهد شد ...

+ نوشته شده در  جمعه 1386/05/12ساعت 22:32  توسط هوشنگ شیشه لو | 
   چطور می توان Desktop از  عکس گرفت ؟

روی فرمتون یک Button ، یک SaveDialog (از پالت Dialog) ، و یک Image بگذارید .

روی رویداد OnClick کلید خطوط زیر را بنویسید :

 

Image1.Width:=DesktopCanvas.ClipRect.Right;

Image1.Height:=DesktopCanvas.ClipRect.Bottom;

Image1.Canvas.CopyRect(Rect(0,0,1024,768),

DesktopCanvas,Rect(0,0,1024,768));

 If SaveDialog1.Execute then

   Image1.Picture.Bitmap.SaveToFile(SaveDialog1.FileName);

 

+ نوشته شده در  یکشنبه 1386/05/07ساعت 0:57  توسط هوشنگ شیشه لو | 

  چگونه می توان از طریق برنامه نویسی CD-Romرا باز و  بسته کرد ؟

 

ابتدا روی فرمتون دو کلید بذارید ، کپشن آنها رو به Open و Close تغییر بدهید :

برای انجام این کار نیاز داریم که یونیت MMSystem را قابل استفاده کنیم برای این کار در زیر implementation می نویسیم :

Uses MMSystem;

برای کلید Open خط زیر را بنویسید:

mciSendString('Set cdaudio door open wait',nil,0,handle);

و برای کلید Close هم خط زیر را بنویسید:

mciSendString('Set cdaudio door Closed wait',nil,0,handle);

 

+ نوشته شده در  یکشنبه 1386/05/07ساعت 0:56  توسط هوشنگ شیشه لو | 

   آیا می توان فرمی داشت که در آن سوراخی وجود داشته باشد؟

     بله ، این کار به راحتی انجام می شه ، اسکریپت زیر رو در رویداد OnPaint فرمتون کپی کنید:

 

Procedure TForm1.FormPaint(Sender: TObject);

Var

 Wnd:HWnd;

 R1,R2:HRGN;

 R:TRect;

Begin

  Wnd:=Application.MainForm.Handle;

  GetWindowRect(Wnd,R);

  R1:=CreateRectRgn(0,0,R.Right-R.Left,R.Bottom-R.Top);                             

  R2:=CreateEllipticRgn(10,30,150,120);

  CombineRgn(R1,R1,R2,RGN_DIFF);

  SetWindowRgn(Wnd,R1,true);

End;

+ نوشته شده در  یکشنبه 1386/05/07ساعت 0:54  توسط هوشنگ شیشه لو | 
چطور می توان Hint  (ToolTip) ی با فونتی متفاوت از فونت استاندارد که ویندوز برای Hin داره ، داشت ؟

 قبل از Type  اصلی برنامه خطوط زیر رو وارد کنید                                                             

   TMyHint=Class (ThinTWindow(

   Constructor Create (Aowner:TComponent);override;

   End;

با این کار ما یک کلاس جدیدی از Hint رو برای دلفی تعریف کردیم .

 

و حالا خطوط زیر را در زیر  Implementation بنویسید :

 

Constructor TMyhint.Create(Aowner:TComponent);

Begin

  inherited Create (Aowner);

  Canvas.Font.Name:=’Arial’;

  Canvas.Brush.Color:=ClBlue;

End;

و با این کار ساختار TMyHint را بوجود آوردیم ، یعنی خواستیم که فونت آن Arial  و رنگ آن آبی باشد.

سپس در انتها برای اینکه این ساختار در برنامه اعمال شود خطوط زیر در قسمت OnCreate فرم

 

اصلی برنامه کپی کنید :

Application.ShowHint:=False;

 HintWindowClass:=TMyhint;

Application.ShowHint:=True;

+ نوشته شده در  یکشنبه 1386/05/07ساعت 0:53  توسط هوشنگ شیشه لو | 

   هیچ می دونستید در دلفی می توان بدون داشتن هیچ کامپوننت یا ocx خاصی فرم ها را با افکت های مختلف نشون داد؟

برای انجام این کار در رویداد OnCreate  فرمی که می خواهید با افکت باز بشه خط زیر را اضافه کنید :

  AnimateWindow(Form1.Handle, 300, AW_Center);

البته بهتره بدونید که فقط همین یه دونه افکت نیست ، پارامتر سوم پردازه بالا نوع افکت رو مشخص می کنه ، اگه رو اون کلید Ctrl+Space رو بزنید از لیستی که باز می شه می تونید افکت های دیگه رو انتخاب کنید . همچنین پارامتر دوم زمان طول کشیدن افکت رو بر حسب میلی ثانیه مشخص می کنه . پارامتر اول هم هندل (شماره منحصر به فردی که ویندوز به هر پنجره اختصاص می ده) فرمیه که می خواهید با افکت نشون داده بشه

+ نوشته شده در  یکشنبه 1386/05/07ساعت 0:51  توسط هوشنگ شیشه لو | 
 تا الان شده که کسی پشت سیستم شما بشینه و برنامه هاتونو نگاه کنه و بعدانکار کنه بگه اون ساعت کار نکردم.
با این برنامه می تونید زمان و تاریخ دقیق آخرین دسترسی به یک فایل  روببینید.

خوب شروع می کنیم یک Button , یک Memo روی فرم بذارید وبرای Button دستورات زیر را بنویسید. 

 

procedure TForm1.Button1Click(Sender: TObject);
var
SearchRec : TSearchRec;
Success : integer;
DT : TFileTime;
ST : TSystemTime;
begin
Memo1.Font.Name:='Tahoma';
Success := SysUtils.FindFirst('c:\Yahoo!\YPager.exe'{ اسم و آدرس فایل با پسوند },faAnyFile,SearchRec);
if (Success = 0) and
((SearchRec.FindData.ftLastAccessTime.dwLowDateTime <> 0 ) or
(SearchRec.FindData.ftLastAccessTime.dwHighDateTime <> 0 )) then
begin
FileTimeToLocalFileTime(SearchRec.FindData.ftLastAccessTime,DT);
FileTimeToSystemTime(DT,ST);
Memo1.Lines.Clear;
Memo1.Lines.Add('آخرین زمان و تاریخ دسترسی به فایل ');
Memo1.Lines.Add('سال = ' + IntToStr(ST.wYear));
Memo1.Lines.Add('ماه = ' + IntToStr(ST.wMonth));
Memo1.Lines.Add('روز از هفته= ' + IntToStr(ST.wDayOfWeek));
Memo1.Lines.Add('روز = ' + IntToStr(ST.wDay));
Memo1.Lines.Add('ساعت = ' + IntToStr(ST.wHour));
Memo1.Lines.Add('دقیقه = ' + IntToStr(ST.wMinute));
Memo1.Lines.Add('ثانیه= ' + IntToStr(ST.wSecond));
Memo1.Lines.Add('میلی ثانیه = ' +IntToStr(ST.wMilliseconds));
end;
SysUtils.FindClose(SearchRec);

end;

+ نوشته شده در  یکشنبه 1386/05/07ساعت 0:47  توسط هوشنگ شیشه لو | 

محیط دلفی برای برنامه نویسی یکی از بهترین محیطهای برنامه نویسی است گذشته از کارکرد داخلی و کمژایلر آن که بسیار قوی و سریع است ُ محیط آن یعنی IDE آنهم قدرت بسیار زیادی دارد که باعث شده یکی از بهترین ادیتورها باشد. در این مقاله من سعی بر این داشته ام تا با ارائه یک سری از نکات و کلیدهای میانبر که می توانند برای کار در دلفی بسیار مفید و کارا باشند، کمک کنم تا شما بتوانید با قدرت بیشتر به برنامه نویسی و کار در این محیط قدرتمند ادامه دهید.

در این مقاله که در اختیار شماست من یک سری از کلیدهای میانبر و ترکیبی مورد استفاده در
IDE دلفی را بصورت لیست وار و همراه یک توضیح کوچک آورده ام. دوستان عزیز برنامه نویس ممکنه که شما مدتها با دلفی مشغول برنامه نویسی بوده باشید اما من یقین دارم که در این لیست نکات و روشهای جدیدی را خواهید آموخت.

جستجو در متن بصورت مستقیم:
برای اینکار کلیدهای
Ctrl+E را بفشارید و بدنبال آن شروع به تایپ کلمه مورد نظر کنید نتیجه آن را خود ببینید. برای اینکه به کلمه بعدی بروید کافیست کلید F3 را بزنید.

ایجاد فرورفتگی در کد:
بعضی اوقات - که خیلی هم پیش می‌آید - لازم است که یک مقداری از متن را بصورت بلوک شده به جلو و یا عقب ببریم. منظور دندانه دار کردن متن است که به خوانایی برنامه کمک می کند. برای اینکار می تونید از کلید
Ctrl +Shift+I برای جلو بردن و Ctrl+Shift+U برای عقب برگرداندن متن بلوک شده استفاده کنید.

پرش به قسمت تعریف یک شی (
Object):
ببنید شی مورد نظرتون (از قبیل
VCL, Procedure, Function,...) در کجا و چطور تعریف شده می توانید کلید Crtl رو پایین نگه داشته و روی شی مورد نظر Click کنید.

برای تغییر حالت کاراکترها:
شما می توانید یک قسمت از متن (که ممکن است با حروف بزرگ و یا کوچک تایپ شده باشد) را انتخاب کنید و با زدن کلیدهای
Ctrl+O+U به ترتیب تمامی حروف کوچک آن قسمت از متن را به حروف بزرگ و تمامی حروف بزرگ آنرا به حروف کوچک تبدیل کنید. برای تعییر حالت یک کلمه نیز میتوانید روی کلمه مورد نظر رفته و کلیدهای Ctrl+K+F برای بزرگ کردن و کلیدهای Ctrl+K+E را برای کوچک کردن حروف آن کلمه بکار برد.

درست کردن ماکرو متنی:
این امکان بسیار مفید است و می تواند بسیاری از کارهای نوشتاری را کاهش دهد با اینکار شما میتوانید یک سری از کارهای تکراری که روی متون انجام می دهید را بصورت ماکرو در آورده و از آنها به راحتی استفاده کنید. برای شروع به ضبط ماکرو کلیدهای
Ctrl+Shift+R را بفشارید و آن سری کارهایی را که می خواهید را انجام دهید و سپس برای اینکه به کار ضبط ماکرو پایان دهید کلیدهای Ctrl+Shift+R را دوباره بزنید. حال برای استفاده از ماکرو کافیست در هر جا که لازم بود کلیدهای Ctrl+Shift+P را بفشارید.

انتخاب متن بصورت مربعی:
اگر شما از کهنه کارهای کامپیوتر باشید حتما از زمان داس یادتون هست که برنامه ای بود به نام
PE2 که یکی از امکانات بسیار جالبش این بود که یک مربع از متن رو میتوانستین انتخاب کنید و آنرا کپی یا حذف کنید. بله درست متوجه شدید در محیط دلفی هم شما اینکار را میتوانید انجام دهید اما نه به مشکلی PE2 بلکه اینکار را میتوانید فقط با گرفتن کلید Alt و کشیدن موس روی متن انجام دهید. هر چند ممکن است در نگاه اول زیاد این امکان مفید به نظر نیاید ولی بعضی وقتهای خیلی کار را راحت میکنه، که حتماً تجربه خواهید کرد.

گذاشتن علامت روی متن:
این کار که به
BookMark معروف است بسیار مفید و کارا می باشد. در هنگامی که شما روی قسمتی از متن برنامه کار میکنید و می خواهید به یک قسمت دیگر بروید ممکن است برای برگشتن به مکان اول خود کمی مشکل پیدا کنید. ولی شما میتوانید با زدن چند دکمه به محل مورد نظرتون باز گردید. برای اینکار در خطی که قصد دارید علامت بگذارید کلیدهای Ctrl+Shift+0..9 را بفشارید. منظور اینست که کلیدهای Ctrl+Shift را نگه دارید و یکی از اعداد 0 تا 9 را وارد کنید تا آن خط به همان شماره علامت گذاری شود و سپس هر جا که خواستید بروید و سپس هر بار که کلید Ctrl را نگه دارید و شماره مورد نظر را وارد کنید به همان خط باز خواهید گشت. البته توجه داشته باشید که فقط می توانید 10 خط را با این روش علامت گذاری بکنید و برای برداشتن علامت ها کافیست روی همان خط دوباره کلید Ctrl+shift و شماره‌ای که برای آن خط وارد کرده اید را بفشارید با اینکار علامت آن خط برداشته می شود.

ایجاد کلاس مورد نظر:
شما هنگامی که در قسمت
Private و یا Public یک type، روال یا تابع درست کردید لازم دارید که قسمتی را برای قرار دادن کدهای مربوط به آن روال یا تابع را ایجاد کنید. برای اینکار شما پس از اینکه نام تابع را تایپ کردید می توانید کلیدهای Ctrl+Shift+C را فشار دهید تا دلفی یک قسمت برای نوشتن کدهای مورد نظرتان ایجاد کند.

ظاهر کردن پنجره
Code insight:
شما حتما به اهمیت و مفید بودن این قسمت دلفی واقفید که در هنگام کد نویسی تا چه حد می تواند کارها را راحت کند. بله در هنگام وارد کردن کدها بعد از وارد کردن نام یک کلاس و یا
Object با زدن یک نقطه (.) پنجره Code Insight‌ ظاهر می شود. حال در بعضی وقتها شما ممکن است که نقطه را قبلا وارد کرده باشید و یا در مواقع دیگر این پنجره ظاهر نشود. در این صورت برای اینکه پنجره را ظاهر کنید باید دوباره نقطه را وارد کنید ولی راه آسانتری هم وجود دارد و آن اینست که کلیدهای Ctrl+Speacebar را فشار دهید.

ظاهر کردن پنجره
Code Parameter:
همانند بالا در هنگام ظاهر شدن
Hint مربوط به راهنمای توابع که معمولاً بعد از گذاشتن پرانتز مربوط ظاهر میشود و در مورد پارامترهای لازم می باشد نیز می توانید از کلیدهای Ctrl+Shift+SpaceBar استفاده کنید.

رفتن از قسمت تعریف توابع و روالها به قسمت کد آنها:
همیشه این نیاز وجود خواهد داشت که شما در هنگامی که دارید به دنبال یک روال در قسمت
type میگردید بعد از پیدا کردن نام آن می خواهید که خود آن تابع یا روال را نیز ببنید. برای اینکار خوب حتما نام آن را جستجو میکنید ولی یک راه آسانتر اینست که شما روی نام آن تابع قرار گیرید و کلیدهای Ctrl+Shift+Up/Down را بزنید. در اینحالت اگر روی کد تابع باشید به قسمت تعریف آن خواهید رفت.

+ نوشته شده در  یکشنبه 1386/05/07ساعت 0:43  توسط هوشنگ شیشه لو | 
انجام این کار بسیار ساده است. برای این کار کافی است بر روی فرم خود یک StatusBar اضافه نمایید حالا در قسمت تعاریف متغیر های عمومی کد زیر را بنویسید:
 

ProgressBar1: TprogressBar;

در ادامه دستورات زیر را در خاصیت OnCreate فرم خود بنویسید:

var
ProgressBarStyle: LongInt;
begin
{create a run progress bar in the status bar}
ProgressBar1 := TProgressBar.Create(StatusBar1);
ProgressBar1.Parent := StatusBar1;
{remove progress bar border}
ProgressBarStyle := GetWindowLong(ProgressBar1.Handle, GWL_EXSTYLE);
ProgressBarStyle := ProgressBarStyle - WS_EX_STATICEDGE;
SetWindowLong(ProgressBar1.Handle, GWL_EXSTYLE, ProgressBarStyle);
{set progress bar position and size - put in Panel[2]}
ProgressBar1.Left := StatusBar1.Panels.Items[0].Width +
StatusBar1.Panels.Items[1].Width + 4;
ProgressBar1.Top := 4;
ProgressBar1.Height := StatusBar1.Height - 6;
ProgressBar1.Width := StatusBar1.Panels.Items[2].Width - 6;
{set range and initial state}
ProgressBar1.Min := 0;
ProgressBar1.Max := 100;
ProgressBar1.Step := 1;
ProgressBar1.Position := 0;
end;

حالا برای آنکه پس از خارج شدن از فرم حافظه اشغال شده آزاد گردد، در قسمت OnDestroy در Event فرمتان دستور زیر را اضافه نمایید.

+ نوشته شده در  یکشنبه 1386/05/07ساعت 0:40  توسط هوشنگ شیشه لو | 

توسط این کد می توانید تشخیص دهید که ویندوز چه مدت است که در حال اجراست


function UpTime: string;
const
  ticksperday: Integer    = 1000 * 60 * 60 * 24;
  ticksperhour: Integer   = 1000 * 60 * 60;
  ticksperminute: Integer = 1000 * 60;
  tickspersecond: Integer = 1000;
var
  t:          Longword;
  d, h, m, s: Integer;
begin
  t := GetTickCount;

  d := t div ticksperday;
  Dec(t, d * ticksperday);

  h := t div ticksperhour;
  Dec(t, h * ticksperhour);

  m := t div ticksperminute;
  Dec(t, m * ticksperminute);

  s := t div tickspersecond;

  Result := 'Uptime: ' + IntToStr(d) + ' Days ' + IntToStr(h) +

 ' Hours ' + IntToStr(m) + ' Minutes ' + IntToStr(s) + ' Seconds'; 

end;
//Sample

procedure TForm1.Button1Click(Sender: TObject);
begin
  label1.Caption := UpTime;
end;

+ نوشته شده در  یکشنبه 1386/05/07ساعت 0:38  توسط هوشنگ شیشه لو | 
 
از این کد می توانید زبان فارسی را به ویندوز اضافه کنید.در این کد دو فایل وجود دارد که باید در کنار همین برنامه قرار گیرد.(فایلها را می توانید در سی دی ویندوز پیدا کنید).

procedure AddFarsiLNG;
var Vreg:TRegistry;

begin
 
 CopyFile('l_intl.nls','C:\windows\system32\l_intl.nls',true);
 CopyFile('KBDFA.dll','C:\windows\system32\KBDFA.dll',true);
 
 Vreg:=TRegistry.Create;
  with Vreg do
   begin  
    try
     RootKey:=HKEY_LOCAL_MACHINE;
     OpenKey('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\

Keyboard Layouts\00000429',true);
      WriteString('Layout File','KBDFA.dll');
      WriteString('Layout Text','Farsi');
     OpenKey('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\

Nls\Locale',true);
      WriteString('d','1');
     OpenKey('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\

Nls\Language',true);
      WriteString('0429','l_intl.nls');
     CloseKey;  
    finally Free end;
   end;
end;

+ نوشته شده در  یکشنبه 1386/05/07ساعت 0:37  توسط هوشنگ شیشه لو | 
 ADOConnection1.ConnectionString

 := 'Server=Hostname;DataBase=DatabaseName
; ('  ADOConnection1.Open('UserName', 'Password
;  ADOConnection1
.Connected := True

+ نوشته شده در  یکشنبه 1386/05/07ساعت 0:36  توسط هوشنگ شیشه لو | 
procedure TForm1.Button1Click(Sender: TObject);
begin
 if GetSystemMetrics(SM_NETWORK) and $01 = $01 then
 ShowMessage('Computer is attached to a network!')
   else
 ShowMessage('Computer is not attached to a network!');
end;
+ نوشته شده در  یکشنبه 1386/05/07ساعت 0:34  توسط هوشنگ شیشه لو | 
 procedure TForm1.HideStartButton(AVisible: Boolean);
var
  Tray,Child,StartButtonHandle: HWnd;
  C: array[0..127] of Char;
  S: string;
begin
  Tray:=FindWindow('Shell_TrayWnd',nil);
  Child:=GetWindow(Tray,GW_CHILD);
  while Child<>0 do
  begin
    if GetClassName(Child,C,SizeOf(C))>0 then
    begin
      S:=StrPas(C);
      if UpperCase(S)='BUTTON' then
      begin
        StartButtonHandle:=Child;
        if AVisible then ShowWindow(Child,1)
        else ShowWindow(Child,0);
      end;
    end;
    Child:=GetWindow(Child,GW_HWNDNEXT);
  end;
end;

 

+ نوشته شده در  یکشنبه 1386/05/07ساعت 0:33  توسط هوشنگ شیشه لو | 
 

اكثر شما شايد بخواهيد كه برنامه هاي شما فقط بوسله كليدي كه شما تعريف نموده ايد بسته شود.

 

براي اين كار بايد كليدهاي ALT+F4 از كار بيفتد.

 

براي اينگونه عمل كنيد:

 

در قسمت VAR در بالاي قسمت IMPLEMENTATION يك متغيير به شكل زير تعريف نماييد :

 

 

 

 

CV:BOOLEAN;

 

 در رويداد ON CLOSE QUERY اين گونه بنويسيد

 

CANCLOSE:=CV;

 

و در رويداد ONSHOW فر م اينگونه بنويسيد

 

CV:=FALSE;

 

حال تا زماني كه اين متغيير FALSE باشد فرم بسته نميشود بنابراين در كليدي كه براي خروج تعريف مينماييد بايد اينگونه عمل كنيد

 

CV:=TRUE;

 

FORM.CLOSE;

+ نوشته شده در  یکشنبه 1386/05/07ساعت 0:32  توسط هوشنگ شیشه لو | 
 procedure WindowShake(wHandle: THandle) ;
const   MAXDELTA = 4;
        SHAKETIMES = 500;
   var
     oRect, wRect :TRect;
     deltax : integer;
     deltay : integer;
     cnt : integer;
     dx, dy : integer;
   begin
 
GetWindowRect(wHandle,wRect) ;
oRect := wRect;
Randomize;
   for cnt := 0 to SHAKETIMES do
     begin     deltax := Round(Random(MAXDELTA)) ;
    deltay := Round(Random(MAXDELTA)) ;
    dx := Round(1 + Random(2)) ;
     if dx = 2 then dx := -1;
     dy := Round(1 + Random(2)) ;
      if dy = 2 then dy := -1;
       OffsetRect(wRect,dx * deltax, dy * deltay) ;
MoveWindow(wHandle, wRect.Left,wRect.Top,wRect.Right - wRect.Left,wRect.Bottom - wRect.Top,true) ;
      end;

MoveWindow(wHandle, oRect.Left,oRect.Top,oRect.Right - oRect.Left,oRect.Bottom - oRect.Top,true) ;
end
;

+ نوشته شده در  یکشنبه 1386/05/07ساعت 0:30  توسط هوشنگ شیشه لو | 
 
فرمتون قشنگ می شه پس ازش استفاده کنید.....

Function TransForm(wnd:Longint; Perc:Integer):Longint;
var
j:Longint;
begin
j := GetWindowLong(wnd, GWL_EXSTYLE);
j := j Or WS_EX_LAYERED;
SetWindowLong( wnd, GWL_EXSTYLE, j);
SetLayeredWindowAttributes (wnd, 0, Perc, LWA_ALPHA);
End
;

و برای فعال شدن آن:

TransForm(form1.Handle ,150);

+ نوشته شده در  یکشنبه 1386/05/07ساعت 0:28  توسط هوشنگ شیشه لو | 
 
در دستور SELECT  مي توانيم توابع خاصي را نيز به كار ببريم. در زير به دو نمونه از اين توابع اشاره شده است.

count:

تعداد سطرهاي بازگردانده شده توسط SELECT را مي شمارد

select Count(*) from customers

where country='uk'


+ نوشته شده در  یکشنبه 1386/05/07ساعت 0:24  توسط هوشنگ شیشه لو | 
 
دستور select پر کاربردتری دستور در sql است و همانطور که می دانید برای گرفتن اطلاعات از بانک اطلاعاتی به کار می رود این دستور حتما باید با اجزایی برای ساخت پرس و جو بر روی بانک اطلاعاتی به کار رود و رکوردهایی که با شرایط این دستور همخوان باشد به عنوان نتیجه پرس و جو برگردانده می شود

چهار کلمه کلیدی وجود دارند که بخشهای مخالف این دستور را تشکیل می دهند. این چهار کلمه عبارتند از:
1.select
2.from
3.where
4.order by
•شكل كلي دستور:
select[* idistinct column1,column 2
 from table[,table2,...]
where شرط
order by نام فيلد يا شماره فيلد
•مثال:
select * from customers
اين دستورتمام ركوردهاي جدول customers را بر مي گرداند
حال اگر شرط country='uk' را اضافه كنيم فقط اطلاعات مشيريان انگليس جواب خواهند بود كه به تعدادي سطرهاي كمتري تقليل مي يابد:
select * from customers
where country='uk'
نكته قابل توجه اين است كه در نتيجه پرس و جو ممكن است تعدادي سطرتكراري وجود داشته باشد كه اگر از كلمه Distinct در select استفاده كنيم اين سطرهاي تكراري حذف خواهد شد:
select distinct city,country from customers
order by 1

+ نوشته شده در  یکشنبه 1386/05/07ساعت 0:21  توسط هوشنگ شیشه لو | 

از برگه Standard يك Memo آورده و در رويداد OnCreat فرم خواهيم نوشت :

Setwindowrgn(memo1.handle,createroundrectrgn(2,2,memo1.width-2,memo1.height-2,15,15),true);

+ نوشته شده در  یکشنبه 1385/07/09ساعت 14:57  توسط هوشنگ شیشه لو | 

از برگه Standard يك Edit   آورده  و در رويداد OnCreat فرم خواهيم نوشت :

Setwindowrgn(edit1.handle,createroundrectrgn(2,2,edit1.width-2,edit1.height-2,15,15),true);

 

+ نوشته شده در  یکشنبه 1385/07/09ساعت 14:55  توسط هوشنگ شیشه لو | 

از منوي Project گزينه Options را انتخاب مي كنيم در برگه form و از ليست Main Form  فرم

۲ را انتخاب مي كنيم . از اين به بعد زماني كه برنامه اجرا مي شود  فرم ۲ فرم اصلي ما خواهد شد. 

 

+ نوشته شده در  یکشنبه 1385/07/09ساعت 14:53  توسط هوشنگ شیشه لو | 

يك Button بر روي فرم آورده و در رويداد OnCreat فرم مي نويسيم :

Screen.cursors[100]:=loadcursorfromfile('shahab.ani');

Button1.cursor:=100;

+ نوشته شده در  یکشنبه 1385/07/09ساعت 14:52  توسط هوشنگ شیشه لو | 

دو تا Edit مي آوريم Edit1 و Edit2   براي اينكه بخواهيم با فشردن كليد Enter از Edit1 به Edit2 برويم در رويداد OnKeyPress  Edit1  كد زير را خواهيم نوشت :

If key=#13 then

Sendmessage(handle,wm_nextdlgctl,0,0);

در رويداد onKeyPress ٍ Edit2  هم خواهيم نوشت :

If key=#13 then

;(Sendmessage(handle,wm_nextdlgctl,1,0

+ نوشته شده در  یکشنبه 1385/07/09ساعت 14:50  توسط هوشنگ شیشه لو | 

يك Edit  آورده  و در رويداد OnKeyPress  آن خواهيم نوشت :

IF (key=#13) then key:=#0;

+ نوشته شده در  یکشنبه 1385/07/09ساعت 14:49  توسط هوشنگ شیشه لو | 

يك Button آورده و در رويداد OnClick آن خواهيم نوشت :

Winexec('command.com/c c:\nc\nc.exe',sw_shownormal);

+ نوشته شده در  یکشنبه 1385/07/09ساعت 14:49  توسط هوشنگ شیشه لو | 

يك Button آورده و در رويداد OnClick آن خواهيم نوشت :

Winexec('c:windows\regedit.exe',sw_shownormal);

+ نوشته شده در  یکشنبه 1385/07/09ساعت 14:48  توسط هوشنگ شیشه لو |