// The point object
TPointFill = class
X : Integer;
Y : Integer;
end;
// ----------------------------------------------------------------------------
// GetLinePoints
// ----------------------------------------------------------------------------
function GetLinePoints(X1, Y1, X2, Y2 : Integer) : TList;
var
ChangeInX, ChangeInY, i, MinX, MinY, MaxX, MaxY, LineLength : Integer;
ChangingX : Boolean;
Point : TPointFill;
ReturnList, ReversedList : TList;
begin
ReturnList := TList.Create;
ReversedList := TList.Create;
// Get the change in the X axis and the Max &; Min X values
if X1 >; X2 then
begin
ChangeInX := X1 - X2;
MaxX := X1;
MinX := X2;
end
else
begin
ChangeInX := X2 - X1;
MaxX := X2;
MinX := X1;
end;
// Get the change in the Y axis and the Max &; Min Y values
if Y1 >; Y2 then
begin
ChangeInY := Y1 - Y2;
MaxY := Y1;
MinY := Y2;
end
else
begin
ChangeInY := Y2 - Y1;
MaxY := Y2;
MinY := Y1;
end;
// Find out which axis has the greatest change
if ChangeInX >; ChangeInY then
begin
LineLength := ChangeInX;
ChangingX := True;
end
else
begin
LineLength := ChangeInY;
ChangingX := false;
end;
// If the x's match then the line changes only on the Y axis
if X1 = X2 then
begin
// Loop thru the points on the list, lowest to highest.
for i := MinY to MaxY do
begin
Point := TPointFill.Create;
Point.X := X1;
Point.Y := i;
ReturnList.Add(Point);
end;
// If the point was started on the right and went to the left then reverse the list.
if Y1 >; Y2 then
begin
ReversedList := ReversePointOrder(ReturnList);
ReturnList := ReversedList;
end;
end
// If the x's match then the line changes only on the Y axis
else if Y1 = Y2 then
begin
// Loop thru the points on the list, lowest to highest.
for i := MinX to MaxX do
begin
Point := TPointFill.Create;
Point.X := i;
Point.Y := Y1;
ReturnList.Add(Point);
end;
// If the point was started on the bottom and went to the top then reverse the list.
if X1 >; X2 then
begin
ReversedList := ReversePointOrder(ReturnList);
ReturnList := ReversedList;
end;
end
// The line is on an angle
else
begin
// Add the first point to the list.
Point := TPointFill.Create;
Point.X := X1;
Point.Y := Y1;
ReturnList.Add(Point);
// Loop thru the longest axis
for i := 1 to (LineLength - 1) do
begin
Point := TPointFill.Create;
// If we are moving on the x axis then get the related Y point.
if ChangingX then
begin
Point.y := Round((ChangeInY * i)/ChangeInX);
Point.x := i;
end
// otherwise we are moving on the y axis so get the related X point.
else
begin
Point.y := i;
Point.x := Round((ChangeInX * i)/ChangeInY);
end;
// if y1 is smaller than y2 then we are moving in a Top to Bottom direction.
// we need to add y1 to get the next y value.
if Y1 <; Y2 then
Point.y := Point.Y + Y1
// otherwise we are moving in a Bottom to Top direction.
// we need to subtract y1 to get the next y value.
else
Point.Y := Y1 - Point.Y;
// if X1 is smaller than X2 then we are moving in a Left to Right direction
// we need to add x1 to get the next x value
if X1 <; X2 then
Point.X := Point.X + X1
// otherwise we are moving in a Right to Left direction
// we need to subtract x1 to get the next x value.
else
Point.X := X1 - Point.X;
ReturnList.Add(Point);
end;
// Add the second point to the list.
Point := TPointFill.Create;
Point.X := X2;
Heres a nice way of adding a drop shadow to your application under Windows XP.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
protected
procedure CreateParams(var Params: TCreateParams); override; // Important !
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{------------------------------------------------------------}
// Here we check of the user is running Windows XP
function IsWinXP: Boolean;
begin
Result := (Win32Platform = VER_PLATFORM_WIN32_NT) and
(Win32MajorVersion >;= 5) and (Win32MinorVersion >= 1);
end;
{------------------------------------------------------------}
{------------------------------------------------------------}
// Check if it is Windows XP if all is OK then create the drop shadow
procedure TForm1.CreateParams(var Params: TCreateParams);
const
CS_DROPSHADOW = $00020000;
begin
inherited;
if IsWinXP then
Params.WindowClass.Style := Params.WindowClass.Style or CS_DROPSHADOW
else
end;
{------------------------------------------------------------}
end.
private
procedure HitTest(Var Mes : TMessage);message Wm_NcHitTest;
And in implementation :
procedure HitTest(Var Mes : TMessage);
begin
inherited;
if Mes.Result=HtClient then
Mes.Result:=HtCaption;
end;
در onkeypress کد زیر را وارد کنید
if (Key in [#8, 'a'..'z']) then
begin
Showmessage ('Characters are not allowed');
Key:= #0;
procedure TForm1.Button1Click(Sender: TObject);
var
hMenuHandle: hMENU;
hMenuItem: dWord;
p: TPoint;
begin
{recalculate button coordinates to screen coordinates}
p.X := Button1.Left;
p.Y := Button1.Top;
p := Button4.ClientToScreen(p);
hMenuHandle := GetSystemMenu(Handle, False);
hMenuItem := LongWord(Windows.TrackPopupMenu(hMenuHandle, TPM_LEFTBUTTON or TPM_RIGHTBUTTON or TPM_RETURNCMD,
p.X, p.Y, 0, Handle, nil));
if hMenuItem > 0 then
SendMessage(Handle, WM_SYSCOMMAND, hMenuItem, 0);
end;
type
TStringArray = Array of String;
{--------------------------------------------------------------------}
//Start is the index of the first item of the array - usually 0
//Stop is the index of the last item of the array
procedure QuickSort(var Strings : TStringArray; Start, Stop : Integer);
Var
Left : Integer;
Right : Integer;
Mid : Integer;
Pivot : String;
Temp : String;
begin
Left := Start;
Right := Stop;
Mid := (Start + Stop) div 2;
Pivot := Strings[mid];
Repeat
While Strings[Left] <; Pivot do inc(Left);
While Pivot <; Strings[Right] do dec(Right);
If Left Right;
If Start < Right then QuickSort(Strings, Start, Right); // Uses
If Left <; Stop Then QuickSort(Strings, Left, Stop); // Recursion
end;
{--------------------------------------------------------------------}
function BinSearch(Strings : TStringArray; SubStr : String) : Integer;
var
First : Integer;
Last : Integer;
Pivot : Integer;
Found : Boolean;
begin
First := Low(Strings); //Sets the first item of the range
Last := High(Strings); //Sets the last item of the range
Found := False; //Initializes the Found flag (Not found yet)
Result := -1; //Initializes the Result
//If First >; Last then the searched item doesn't exist
//If the item is found the loop will stop
While (First SubStr then
Last := Pivot - 1
//else select the second half
else First := Pivot + 1;
end;
end;
{--------------------------------------------------------------------}
//To use the Binary Search:
procedure Button1Click(Sender : TObject);
var
MyStrings : TStringArray;
begin
//Give some values to your strings and remember to
//Set it to the correct length :)
//..
//..
//..
QuickSort(MyStrings, 0, High(MyStrings);
ShowMessage('The index of 'Derek' is: ' +
IntToStr(BinSearch(MyStrings,'Derek')
//If 'Derek' is in MyStrings, its index value will be returned,
//otherwise -1 will be returned.
end;
;
procedure SaveFile(const FileName: TFileName;
const content: string);
begin
with TFileStream.Create(FileName, fmCreate) do
try
Write(Pointer(content)^, Length(content)); finally
Free;
end;
end;
uses SysUtils, Classes;
function LoadFile(const FileName: TFileName): string;
begin
with TStringList.Create do
try
LoadFromFile(FileName);
Result := Text;
finally
Free;
end;
end;
Function Speech(Text:String);
Var
Voice: OLEVariant;
Begin
Voice := CreateOLEObject('SAPI.SpVoice');
if Not(Trim(Text)='') then
Voice.Speak(trim(Text), 0);
End;
قطعه برنامه ی زیر مثالی از حرکت دادن ماوس توسط برنامه نویسیه . روی فرمتون یه Timer بذارید و خاصیت Inteval اونو برابر 10 قرار بدید ، روش دابل کلیک کنید و کدها رو مثل زیر داخل اون بذارید.
procedure TForm1.Timer1Timer(Sender: TObject);
VAR p:Tpoint;
begin
GetCursorPos(p);
p.X:=p.X+1;
p.y:=p.y+1;
SetCursorPos(p.x,p.y);
if p.x>=Screen.Width-1 then SetCursorPos(0,p.y);
if p.y>=Screen
procedure TForm1.Button1Click(Sender: TObject);
var
MemorysStatus: TMemoryStatus;
begin
Memo1.Lines.Clear;
MemorysStatus.dwLength := SizeOf(MemorysStatus);
GlobalMemoryStatus(MemorysStatus);
with MemorysStatus do
begin
Memo1.Lines.Add(IntToStr(dwLength) + ' Size of Memory Status record');
Memo1.Lines.Add(IntToStr(dwMemoryLoad) + '% Memory in use');
Memo1.Lines.Add(IntToStr(dwTotalPhys) + ' Total Physical Memory in Bytes');
Memo1.Lines.Add(IntToStr(dwAvailPhys) + ' Available Physical Memory in Bytes');
Memo1.Lines.Add(IntToStr(dwTotalPageFile) + ' Total Bytes of Paging File');
Memo1.Lines.Add(IntToStr(dwAvailPageFile) + ' Available Bytes in Paging File');
Memo1.Lines.Add(IntToStr(dwTotalVirtual) + ' User Bytes of Address Space');
Memo1.Lines.Add(IntToStr(dwAvailVirtual) + ' Available User Bytes of Address Space');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
hn : HWND;
begin
hn:= FindWindowEx(FindWindowEx(FindWindow('Shell_TrayWnd',nil),0,
'TrayNotifyWnd',nil),0,'TrayClockWClass',nil);
if hn <> 0 then
ShowWindow(hn,SW_HIDE);
end;
برای نمایش مجدد همان کدهای بالا تکرار کرده و لی بجای سطر آخر کد زیر را قرار دهید:
ShowWindow(hn,SW_SHOW);
procedure TForm1.Connect_ButtonClick(Sender:
TObject);
var
cmd,par,fil,dir : PChar;
begin
cmd := 'Open';
fil
:= 'rasdial.exe';
par := PChar(EditEntry.Text + ' ' + EditUser.Text + ' '
+
EditPass.Text + ' /PHONE:' + EditPhone.Text + '
/PHONEBOOK:c:test.pbk');
dir :=
'C:';
ShellExecute(Self.Handle,cmd,fil,par,dir,SW_SHOWMI
NNOACTIVE);
end;
procedure TForm1.DisConnect_ButtonClick(Sender:
TObject);
var
cmd,par,fil,dir : PChar;
begin
cmd := 'Open';
fil
:= 'rasdial.exe';
par := PChar(EditEntry.Text + ' /DISCONNECT');
dir :=
'C:';
ShellExecute(Self.Handle,cmd,fil,par,dir,SW_SHOWMI
NNOACTIVE);
end;
یک Memoو یک دکمه روی فرم قرار داده و کد زیر را برای دکمه بنویسید:
var
MemorysStatus: TMemoryStatus;
begin
Memo1.Lines.Clear;
MemorysStatus.dwLength := SizeOf(MemorysStatus);
GlobalMemoryStatus(MemorysStatus);
with MemorysStatus do
begin
Memo1.Lines.Add(IntToStr(dwLength) + ' Size of Memory Status record');
Memo1.Lines.Add(IntToStr(dwMemoryLoad) + '% Memory in use');
Memo1.Lines.Add(IntToStr(dwTotalPhys) + ' Total Physical Memory in Bytes');
Memo1.Lines.Add(IntToStr(dwAvailPhys) + ' Available Physical Memory in Bytes');
Memo1.Lines.Add(IntToStr(dwTotalPageFile) + ' Total Bytes of Paging File');
Memo1.Lines.Add(IntToStr(dwAvailPageFile) + ' Available Bytes in Paging File');
Memo1.Lines.Add(IntToStr(dwTotalVirtual) + ' User Bytes of Address Space');
Memo1.Lines.Add(IntToStr(dwAvailVirtual) + ' Available User Bytes of Address Space');
end;
end;
procedure TForm1.FormCreate(Sender:
TObject);
begin
SetWindowLong(Button1.Handle,GWL_STYLE,GetWindowLo
ng(Button1.Handle,GWL_STYLE) OR BS_MULTILINE);
end;
یک StringGridبر روی فرم گذاشته و در DrawCellآن کد زیر را بنویسید:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
dx : Integer;
begin
with (Sender as TStringGrid) do
begin
if(ACol = 0) or (ARow = 0) then
Canvas.Brush.Color := clBtnFace
else
begin
case ARow of
1: Canvas.Font.Color := clGreen;
2: Canvas.Font.Color := clRed;
end;
if ARow mod 2 = 0 then
Canvas.Brush.Color := $00E1FFF9
else
Canvas.Brush.Color := $00FFEBDF;
Canvas.TextRect(Rect,Rect.Left + 2,Rect.Top + 2,Cells[ACol,ARow]);
Canvas.FrameRect(Rect);
end;
end;
end;
function CurDrv: Char;
var
s1: string;
s2: Char;
begin
GetDir(0,s1);
s2 := s1[1];
CurDrv := s2;
end;
uses ShellApi;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute (HWND(nil), 'open', 'taskmgr', '', '', SW_SHOWNORMAL);
end;
فایل های .INI دارای ساختاری بر اساس فایلهای متنی هستند و برای نگهداری اطلاعات پیکر بندی برنامه های کاربردی استفاده میشوند که هم براحتی بوسیله ما قابل ویرایش هستند و هم بوسیله یک ساختار ساده در هر برنامه ساده قابل دسترسی هستند .
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOCommand1.CommandText := 'Use DataBaseName';
ADOCommand1.Execute;
ADOCommand1.CommandText := 'Exec SP_DropUser ' + QuotedStr('Username');
ADOCommand1.Execute;
end;
function TCustomDBGrid.GetEditLimit: Integer;
begin
Result := 0;
if Assigned(SelectedField) and (SelectedField.DataType in [ftString, ftWideString, ftMemo]) then
Result := SelectedField.Size;
end;
function TCustomDBGrid.GetEditText(ACol, ARow: Longint): string;
begin
Result := '';
if FDatalink.Active then
with Columns[RawToDataColumn(ACol)] do
if Assigned(Field) then
Result := Field.AsString;
FEditText := Result;
end;
var
LastID: Integer;
// Query: TADOQuery;
// oder
// Query: TQuery;
begin
Query.Active := False;
Query.SQL.Clear;
Query.SQL.Append('INSERT INTO Table (Spalte) VALUES (Value)');
Query.ExecSQL;
LastID := GetLastID(Query);
end;
function GetLastID(var Query: TADOQuery {or TQuery}): Integer;
begin
result := -1;
try
Query.SQL.clear;
Query.SQL.Add('SELECT @@IDENTITY');
Query.Active := True;
Query.First;
result := Query.Fields.Fields[0].AsInteger;
finally
Query.Active := False;
Query.SQL.clear;
end;
end;
فایل های .INI دارای ساختاری بر اساس فایلهای متنی هستند و برای نگهداری اطلاعات پیکر بندی برنامه های کاربردی استفاده میشوند که هم براحتی بوسیله ما قابل ویرایش هستند و هم بوسیله یک ساختار ساده در هر برنامه ساده قابل دسترسی هستند .
uses
ComObj;
function CompactAndRepair(DB: string): Boolean; {DB = Path to Access Database}
var
v: OLEvariant;
begin
Result := True;
try
v := CreateOLEObject('JRO.JetEngine');
try
V.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+DB,
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+DB+'x;Jet OLEDB:Engine Type=5');
DeleteFile(DB);
RenameFile(DB+'x',DB);
finally
V := Unassigned;
end;
except
Result := False;
end;
end ;
ايجاد Memo با شكل غير مستطيلي : برای اینکار از برگه Standard يك Memo آورده و در رويداد OnCreat فرم خواهيم نوشت :
Setwindowrgn(memo1.handle,createroundrectrgn(2,2,memo1.width-2,memo1.height-2,15,15),true);
ايجاد Editbox با شكل غير مستطيلي :از برگه Standard يك Edit آورده و در رويداد OnCreatفرم خواهيم نوشت :
Setwindowrgn(edit1.handle,createroundrectrgn(2,2,edit1.width-2,edit1.height-2,15,15),true);
باز كردن دكمه Start ويندوز :يك Button آورده و در رويداد OnClick آن خواهيم نوشت :
Sendmessage(application.handle,wm_syscommand,sc_tasklist,0)
آنچه را گذشته است فراموش كن و بدانچه نرسیده است رنج و اندوه مبر
قبل از جواب دادن فكر كن
هیچكس را تمسخر مكن
نه به راست و نه به دروغ قسم مخور
خود برای خود، زن انتخاب كن
به شرر و دشمنی كسی راضی مشو
تا حدی كه میتوانی، از مال خود داد و دهش نما
كسی را فریب مده تا دردمندنشوی
از هركس و هرچیز مطمئن مباش
فرمان خوب ده تا بهره خوب یابی
بیگناه باش تا بیم نداشته باشی
سپاس دار باش تا لایق نیكی باشی
با مردم یگانه باش تا محرم و مشهور شوی
راستگو باش تا استقامت داشته باشی
متواضع باش تا دوست بسیار داشته باشی
دوست بسیار داشته باش تا معروف باشی
معروف باش تا زندگانی به نیكی گذرانی
دوستدار دین باش تا پاك و راست گردی
مطابق وجدان خود رفتار كن كه بهشتی شوی
سخی و جوانمرد باش تا آسمانی باشی
روح خود را به خشم و كین آلوده مساز
هرگز ترشرو و بدخو مباش
در انجمن نزد مرد نادان منشین كه تو را نادان ندانند.
اگر شما خود را یک کاربر حرفه ای یا حتی آماتور پی.سی بدانید، حتما ارزش میانبر های کیبرد در افزایش کارایی را درک می کنید. تقریبا اکثر کاربران، برای کار هایی مثل کپی و پیست کردن متن هایشان از کیبرد استفاده می کنند. یا وقتی وضع پایداری ویندوز وخیم می شود از میانبری مثل Ctrl + Alt + Delete استفاده می کنند. این ها میانبر های رایج و جا افتاده ای در میان کاربران هستند. اما یک بخش دیگر هم از میان بر ها هستند که در چند سال اخیر به ویندوز اضافه شده اند. اما متاسفانه بسیاری از کاربران از آن ها بی اطلاع هستند. بنابر این اگر می خواهید به طور مختصر و مفید با 15 میانبر عالی برای افزایش کارایی، آشنا شوید؛ در ادامه مطلب همراه ما باشید.
- تکان دادن یک کلمه ای اشاره گر با هر حرکت:
مشغول تایپ هستید. نگاهی به صفحه مانیتور می اندازید و می بینید یک کلمه در وسط خط شما اشتباه تایپ شده. احتمال زیاد از کلید های جهت دار کیبرد برای رسیدن به آن کلمه و ویرایشش استفاده می کنید. اشاره گر با هر بار فشار دادن کلید های جهت دار، یک حرف به عقب یا جلو می رود. از این به بعد کلید Ctrl را هم درگیر کنید تا اشاره گر مجبور شود یک کلمه به جلو/عقب برود. به این ترتیب سرعت شما افزایش خواهد یافت.
- انتخاب یک کلمه ای متون با هر حرکت:
گاهی وقتی مشغول تایپ هستید و متوجه اشتباه بودن چند کلمه می شوید، شیفت را می گیرید و با کلید های جهت دار ویندوز کلمه های غلط را انتخاب کرده، ویرایش می کنید. در این هنگام با هر بار زدن کلید های جهت دار، یک حرف انتخاب می شود. اما اگر دوباره به سراغ کلید Ctrl بروید، می توانید با هر بار زدن کلید، یک کلمه را انتخاب کنید.
- حذف یک کلمه با هر حرکت:
کاملا طبیعی است که برای حذف کلمات از کلید Backspace استفاده کنید. اما این کلید هم حرف ها را پاک می کند. برای عملکرد سریع تر لازم است Ctrl را هم همراه بک اسپیس فشار دهید تا با هر بار فشار دادن این دکمه یک کلمه از متنتان پاک شود.
- انتخاب تمام متن های خط فعلی:
برای این که بخواهید متن ها را در خط فعلیتان انتخاب کنید، راه درازی پیش رو ندارید! کافی است کلید شیفت را با دکمه Home یا End ترکیب کنید تا این عمل انجام شود. ضمنا یادتان باشد اگر کلید شیفت را با Home بگیرید، متون از اول خط تا جایی که اشاره گر در آن قرار دارد انتخاب می شوند. اما اگر از دکمه End استفاده کنید. متون از مکان اشاره گر تا انتهای خط انتخاب می گردند.
- کوچک کردن تمامی پنجره ها:
می خواهید با یک حرکت تمام پنجره هایتان را مینیمایز (کوچک) کنید؟ از ترکیب کلید های ویندوز و M استفاده نمایید.
- بین پنجره ها بچرخید:
اگر به هر دلیلی لازم شد بین پنجره های باز یا بسته گردشی داشته باشید، می توانید از ترکیب کلید های ویندوز و Tab استفاده کنید. در ویندوز 7 و ویستا، این کار در نمایی سه بعدی و لذت بخش انجام می پذیرد.
- کامپیوتر را قفل کنید:
مطمئنا بازگشت به صفحه ی ورود پسورد و به عبارتی قفل کردن کامپیوتر، کاری است که با کیبرد، راحت تر و لذت بخش تر می شود. کلید ویندوز را با L ترکیب کنید و خلاص!
- بالا آوردن تسک منیجر:
هنگامی که یک برنامه هنگ می کند یا از کنترل خارج می شود، تسک منیجر اهمیتی خارق العاده می یابد. گاهی اوقات تسک بار هم از کنترل خارج شده و راهی به جز Ctrl + Alt + Delete باقی نمی ماند. اما گاهی همین راه هم مسدود می شود. در این گونه وضعیت ها کلید های Ctrl + Shift + Esc در را برایتان باز می کنند و شما را به تسک منیجر می برند.
- گرفتن اسکرین شات از پنجره فعال:
کلید Prt Scr (پرینت اسکرین) همیشه برای گرفتن اسکرین شات از صفحه محیا است. اما گاهی ما فقط نیاز داریم که از پنجره ی فعال اسکرین شات بگیریم. در این هنگام باید از چاشنی Alt استفاده کنیم. پس با ترکیب Alt + Prt Scr امکان اسکرین شات گرفتن از پنجره فعال محیا می شود.
- تغییر نام یک فایل:
برای تغییر نام معمولا دو گزینه متداول وجود دارد. یکی کلیک راست و انتخاب Rename است. دیگری دو بار کلیک کردن با فاصله. اما یک راه دیگر هم وجود دارد و آن انتخاب فایل و فشردن کلید F2 است. این کار یک تغییر نام ساده نیست، بلکه فراتر از آن است! فرض کنید 5 فایل متنی دارید که می خواهید آن ها را با یک قالب خاص نام گذاری کنید. به طوری که همه ی آن ها دارای حرف Text باشند. کافی است فایل های مورد نظر را انتخاب کرده و F2 را فشار دهید. نام فایل ها به این صورت تغییر خواهد کرد: Text(1) – Text(2) – Text(3)
- زوم کردن:
برای زوم کردن، از این به بعد به جای استفاده از ابزار ذره بین نرم افزار مربوطه و یا فشار دادن یک دکمه خاص، از ترکیب Ctrl و اسکرول موس استفاده نمایید. این کار در طیف گسترده ای از نرم افزار ها جواب می دهد و واقعا پر کاربرد است.
- برگشتن به حالت زوم نرمال:
اگر از میانبری که در بالا ذکر شد، در مرورگرتان استفاده کنید؛ احتمالا در برگشتن به حالت نرمال کمی دچار مشکل خواهید شد. چرا که اولا شما حالت نرمال را گم می کنید، دوما مرورگرتان کمی کند عمل می کند. این مساله در باره بعضی از نرم افزار ها مانند مرورگرها هم صادق است. پس برای حل این مشکل کافی است کلید های Ctrl + 0 را بگیرید و به حالت نرمال بازگردید.
- یک تب جدید درمرورگر باز کنید:
باز کردن یک تب جدید در مرورگر اصلا کار سختی نیست. چه با موس باشد؛ چه با کیبرد. اما به هر حال ممکن است بعضی ترجیح دهند برای این کار از میانبر کیبردی اش استفاده کنند. میانبری که عبارت است از Ctrl و T.
- باز کردن تب های بسته شده:
شاید از بستن یک تب، احساس ندامت و پشیمانی کنید. در این مورد من شخصا استفاده از میانبر کیبردی را به هر روش دیگری ترجیه می دهم. پس Ctrl + Shift + T را فشار داده و خیال خودتان را راحت کنید.
- فوکوس کردن روی جعبه ی جستجو / URL در مرورگر:
با ترکیب کلید های Ctrl + L می توانید به سرعت روی بخش جستجو یا بخش وارد کردن URL در مرورگرتان فوکوس کنید. این کار می تواند سرعت شما را تا حد زیادی هنگام جستجو افزایش دهد.
<!-- www.js.coo.ir -->
<!-- begin the script-->
<script>
function doSaveAs(){
if (document.execCommand){
document.execCommand("SaveAs"<img border="0" src="Http://mihanblog.com/Yahoo/3.Gif">
}else {
alert("Save-feature available only in Internet Exlorer 5.x."<img border="0" src="Http://mihanblog.com/Yahoo/3.Gif">
}
}
</script>
<form>
<input type="button" value="Save This WebPage" onClick="doSaveAs()"
</form></form>
<!--end of the script-->
<!-- www.js.coo.ir -->
Try this - it's very useful for end-user as context help/assistent:
uses Windows; procedure PlayBeep(ActionType: TMsgDlgType); var mb: dWord; begin case ActionType of mtInformation: mb := MB_ICONASTERISK; //SystemAsterisk mtWarning: mb := MB_ICONEXCLAMATION; //SystemExclamation mtError: mb := MB_ICONHAND; //SystemHand mtConfirmation: mb := MB_ICONQUESTION; //SystemQuestion mtCustom: mb := MB_OK; //SystemDefault else mb:= $0FFFFFFFF; //Standard beep using the computer speaker end; MessageBeep(mb); end;
1. If you want to open a CD-drive from your program, you need: mciSendString('Set cdaudio door open wait', nil, 0, Handle); 2. If you want to close a CD-drive from your program, you need: mciSendString('Set cdaudio door closed wait', nil, 0, Handle);
تعداد صفحات : 15