https://dcms.duzun.me/programming/pascal/delphi.html ro Indicii utile Delphi https://dcms.duzun.me/programming/pascal/delphi.html?art_id=3#art_3 22.03.2013 3 IDE Shortcuts

There are two IDE features that I find I use all the time. These are:

IDE Shortcuts

There are two IDE features that I find I use all the time. These are:

Indent and unindent

Simply select the code to be indented and press and hold CTRL Shift then press i to indent or u to unindent

Bookmarks

To create a bookmark press and hold CTRL k then press any numeric key, to instantly go to a bookmark press and hold CTRL q then press the corresponding numeric key that you created the bookmark with.

 

Detecting if the Num Lock key is down

function IsNumLockOn() : boolean;
 begin
 Result := (GetKeyState(VK_NUMLOCK) and $01) <> 0;
 end;

You can also use this for Caps Lock or Scroll Lock by replacing VK_NUMLOCK with VK_CAPITAL or SCROLL.

Making the drop down of a ComboBox Wider

If you need to use a TCombobox to select long strings you can always make the dropdown part wider with this simple tip:

ComboBox1.Perform(CB_SETDROPPEDWIDTH, 600, 0);

Where 600 is the new width in pixels

Activating the screen saver

To activate the current screen saver use:

PostMessage(GetDesktopWindow, WM_SYSCOMMAND, SC_SCREENSAVE, 0);

Displaying the Find Files Dialog

The Find Files dialog is usually accessed from Explorer, but its also very easy to do from on your own programs using the ShellExecute command. Here's how:

ShellExecute(
 handle,
 'find',	 
 'c:\windows',	// The directory to start searching in
 '',	
 '',
 SW_SHOW
 );

Getting rid of the highlighted cell in a TStringGrid

If you want to get rid of the highlighted cell in a TStringGrid which does not have the focus or is used only to display data, try the following small procedure.

procedure TMyproject.GridClean(Sender: TObject);
var Xr: TGridRect;
begin
 Xr.Top := -1;
 Xr.Left := -1;
 Xr.Right := -1;
 Xr.Bottom := -1;
 (Sender as TStringgrid).Selection := Xr;
end;

Use it either in the grid's OnExit event or as needed in your code,

var Mydata: TStringGrid;
  GridClean(Mydata);

This hint was provided by Pat White

Implementing a Sleep procedure

In Delphi 2 and 3 this is easy, you just use:

Windows.Sleep(TimeInMilliseconds);

Whilst in Delphi 1 you would need:

procedure Sleep(milliseconds: LongInt);
var
 iTemp : Longint;
begin
 iTemp := GetTickCount + milliseconds;
 while GetTickCount < iTemp do 
 Application.ProcessMessages;
end;

Checking for Big fonts

It can often create havoc on your interface if a user is using large fonts (or normal if you have designed in large fonts. A simple check to see what size the a user has is:

if Screen.PixelsPerInch = 96 then
 ;// Its the normal font size;

if Screen.PixelsPerInch = 120 then
 ;// Its the large font size;

How to Create Shortcuts

To Create shortcuts in Delphi you have to use the com engine. Fortunately this is not too difficult. The following code shows you how:

var
 slTemp: IShellLink;
 pfTemp: IPersistFile;
 sTarget: String; { This is the path and name of the file that the 
      shortcut is to point too }
 sIconFile : String; { This is the path and name of the file that contains
      the icon (it can be an .exe or .ico file) }
 iIconIndex : Integer { The index of which icon to use in the specified file }
 sName : String { The name for the shortcut including the path}

begin
 // initialize the COM engine
 CoInitialize(nil);
 try
 // create an uninitialized IShellLink (a shortcut)
 if CoCreateInstance(CLSID_ShellLink,
      nil, 
      CLSCTX_INPROC_SERVER,
      IShellLink, slTemp) = S_OK then
 begin
  slTemp.SetPath(PChar(sTarget));
  slTemp.SetIconLocation(PChar(sIconFile), iIconIndex);
 //Get an IPersistFile interface (needed to specify the name of the Shortcut)
  if slTemp.QueryInterface(IPersistFile, pfTemp) = S_OK then
  if pfTemp.Save(StringToOleStr(sName), True) <> S_OK then
   ShowMessage('could not save the shortcut');
 // do not Release slTemp, it is done automatically by Delphi
 end;
 // deinitialize COM
 finally
 CoUninitialize;
 end;
end;

Avoiding the Beep in an EditBox

The default behaviour in Delphi, when you press the enter key in a EditBox a beep is generated. This can be avoided by adding the following line to the onKeyPress event:

if key=#13 then key := #0;

How to show the CPU Debug Window

Built into Delphi there is a hidden Debug window that shows you a disassembly of your code and also the registers, flags, stack, and data dump. To enable it, use Regedit and go to the following folder:

HKEY_CURRENT_USER\Software\Borland\Delphi\3.0\Debugging

In this folder add a new string value called EnableCPU and set its value to 1. Now next time you run Delphi you will have a new menu item on the view menu called CPU which will bring up this new window.

Hiding the TaskBar in Windows 95

To hide the task bar use

ShowWindow( FindWindow( 'Shell_TrayWnd',nil), SW_HIDE);

To show the task bar use

ShowWindow( FindWindow( 'Shell_TrayWnd',nil), SW_SWOWNA);

Waiting for a process to finish

Var 
 Handle : Word;
begin
 Handle := WinExec('Appname.exe',SW_ShowNormal);
 While GetModuleUsage(Handle) > 0 do
  Application.Processmessages;
end;

Adding a Horizontal ScrollBar to a ListBox

SendMessage(ListBox1.Handle,  
   LB_SetHorizontalExtent,
   5000,
   longint(0));
Where
ListBox1.Handle is the Handle of the ListBox to add the scroll bar to
LB_SetHorizontalExtent is the message to add the scroll bar
5000 is the width in pixels that you wish to be scrollable
longint(0) is not used
					 

 

Sursa: www.delphi-central.com

]]>
Stack Visual https://dcms.duzun.me/programming/pascal/delphi.html?art_id=2#art_2 19.04.2010 2  Componenta vizuală DigiStack (TDigiStack) și proprietarea Stack: TStrStack

Folosind componenta DigiStack, puteți vedea evoluția stivei in timpul execuției algoritmului care folosește această stivă. Proprietatea Stack de tipul TStrStackconține valorile din stivă și oferă proprietăți și metode de acces a acestor valori în calitate de String, Integer, Real, Char, Byte, Boolean.
 Componenta vizuală DigiStack (TDigiStack) și proprietarea Stack: TStrStack

Folosind componenta DigiStack, puteți vedea evoluția stivei in timpul execuției algoritmului care folosește această stivă. Proprietatea Stack de tipul TStrStackconține valorile din stivă și oferă proprietăți și metode de acces a acestor valori în calitate de String, Integer, Real, Char, Byte, Boolean.
Proprietatea Stack trebuie să fie utilizată în algoritmul pe care dorim să-l examinăm pentru a vedea evoluția valorilor pe componenta DigiStack.
Proprietatea Stack poate conține un tablou obișnuit de numere, text, sau o matrice de elemente ByteChar sau Boolean.

Exemplu de folosire:

var St: TStrStack;
    sum: Real; 
...
St := DigiStack.Stack;
St.Count := 2;           // Seteaza lungimea tabloului
St.Str[0] := '23 lei (pentru ...)';
St.Str[1] := '45.3 $ (text explicativ)';
St.Push(123.456);        // Adăugarea unui element la coadă
St.UnShift('se evalueaza ca 0'); // Adăugarea unui element la început 
sum := St.Int[0];        // Primul element ca Integer
sum := sum + St.Flt[-1]; // Ultimul element ca Float (Real)
St.Chr[1, 5] := '%';     // Accesul elementelor stivei ca matrice bidimensională
sum := St.PopInt;        // Extragerea ultimului element din stivă
sum := St.ShiftFlt;      // Extragerea primului element din stivă

 

Clasa TStrStack este derivată din TStringList și adaugă suportul firelor de execuție paralele. Astfel componenta DigiStack poate ”exista” în firul de execuție principal, iar în alt fir de execuție algoritmul examinat poate folosi proprietatea acesteia DigiStack.Stack pentru ”necesitățile” sale. În același timp orice skimbare în lista de valori Stack se reflectă în timp real pe componenta vizuală DigiStack.

Aplicația Stack.exe

Aplicație Stack.exe folosește componenta DigiStack pentru a reprezenta vizual evoluția stivei în timpul execuției unor algoritmi de back-tracking.

Algoritmii examinați se execută într-un fir de execuție diferit de cel principal, ceea ce permite dirijarea procesului de execuție al algoritmului (viteza, pauza, oprire) prin interfața grafică a aplicației (UI - User Interface).

Aplicația conține o pagină de setări. Poate fi configurat aspectul vizual al stivei și al elementelor acesteia, viteza de execuție, modul de interacțiune cu utilizatorul, ș.a.

Stack_bktr

 

]]>
GraphFunc https://dcms.duzun.me/programming/pascal/delphi.html?art_id=1#art_1 20.03.2010 1 Am creat o aplicație Delphi care permite construirea graficului funcției definite de utilizator cu ajutorul sintaxei pascal.

Metodele de prelucrare a datelor la fel pot fi descrise de către utilizator direct în aplicație.

Am creat o aplicație Delphi care permite construirea graficului funcției definite de utilizator cu ajutorul sintaxei pascal.

Metodele de prelucrare a datelor la fel pot fi descrise de către utilizator direct în aplicație.

Iată un exemplu de grafic al funcției definite parametric:

x:=4*sin(a*t) + 2*cos(o1*t);
y:=2*sin(b*t) +   cos(o2*t)

Graficul unei functii definite parametric

Descarcă

]]>