Would you like to react to this message? Create an account in a few clicks or log in to continue.


Bismil Team Groub
 
AnasayfaAramaLatest imagesKayıt OlGiriş yap

 

 Object Pascal Ipuçları 1.

Aşağa gitmek 
YazarMesaj
dynamic
Co Admin
Co Admin
dynamic


Mesaj Sayısı : 220
Kayıt tarihi : 25/09/08
Yaş : 34

Object Pascal Ipuçları 1. Empty
MesajKonu: Object Pascal Ipuçları 1.   Object Pascal Ipuçları 1. Icon_minitimeSalı Ekim 21, 2008 5:50 am

Alt+F4 tuş kombinasyonuyla programın kapanmaması için
Formun KeyPreview özelliğini True yapın, daha sonra formun OnKeyDown olayına aşağıdaki kodu yazın.
if ((ssAlt in Shift) and (Key = VK_F4)) then
Key := 0;Bir string'in başındaki ve sonundaki boşlukları atmak için
Trim(string)
TrimLeft (string) //stringin sadece başındaki boşlukları atmak için
TrimRight (string) //stringin sadece sonundaki boşlukları atmak için Listbox'a, Memo'ya ve Combobox'a bir seferde birden çok eleman eklemek
Listbox1.items.SetText('Ali'#13'Veli'#13'kırkdokuz elli');
Memo1.Lines.SetText('Ali'#13'Veli'#13'kırkdokuzell i');
Combobox1.items.SetText('Ali'#13'Veli'#13'kırkdoku zelli');
II. Yol : Mustafa Kılınç tarafından gönderilmiştir.
procedure TForm1.Button1Click(Sender: TObject);
var
gelen : TStringList;
begin
gelen := TStringList.Create;
gelen.sorted := True;
gelen.Duplicates := dupIgnore;
gelen.Add('evli');
gelen.Add('bekar');
gelen.Add('Dul');
ComboBox1.Items.Assign(gelen);
gelen.free;
end;
Memo içinde imlecin hangi satır ve kolonda olduğunu bulma
var
LineNum:logint;
CharsBeforeLine:logint;
begin
LineNum:=SendMessage(Memo1.Handle,EM_LINEFROMCHAR, Memo1.SelStart,0);
CharsBeforeLine:=SendMessage(Memo1.Handle,EM_LINEI NDEX,LineNum,0);
Label1.Caption:='Satır'+IntToStr(LineNum+1);
Label2.Caption:='Kolon'+IntToStr((Memo1.SelStart-CharsBeforeLine)+1);
ListBox veya ComboBox'ta seçili bir veya birden fazla öğeyi seçilmemiş hale getirme
ListBox1.ItemIndex := -1;
Combobox1.ItemIndex := -1;
Bir menü öğesini kullanılamaz hale getirmek
MainMenu1.Items[0].Items[1].Enabled:= False; //ilk menünün, ikinci elemanı
Edit'e sadece sayı girilsin
Bir edit'e sadece istediğiniz karakterlerin girilmesini sağlayabilirsiniz. Bunun için Edit'in OnKeyPress olayına aşağıdaki kodu yazın.
if not (key in ['0'..'9',#8]) then
begin
Key:=#0; //girilen karakter rakam veya backspace değilse null(#0)'a dönüştür
Beep; //bip sesi ile kullanıcıyı uyar.
end;
NOT: Kullanıcı Edit'e rakamların dışında karakter giremez, ancak Paste ile Edit'e bir metni kopyalayabilir. Bunuda Edit'in OnExit olayında kontrol edip, girilen değerin istediğiniz şekilde olup olmadığını kontrol edebilirsiniz.
Bir Popup menüyü kod ile gösterme
PopupMenu1.Popup(Form1.Left+60, Form1.Top+140);
Sistem tarihini ve saatini değiştirmek
Sistemin tarihini ve saatini değiştirmek için SetLocalTime fonksiyonunu kullanabilirsiniz.
var
t:TSystemTime;
begin
t.wYear:=1998;
t.wMonth:=5;
t.wDay:=23;
t.wHour:=12;
t.wMinute:=34;
SetLocalTime(t);
end; Sayıları virgüllerle yazmak Bu iş için FormatFloat fonksiyonunu kullanabilirsiniz. Sayı windows'unuz ayarına göre 12.345.678 veya 12,345,678 şeklinde gösterilir.
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
begin
i := 12345678;
Memo1.Lines.Add(FormatFloat('#,', i));
Edit'e girilen metnin ilk harfini büyük harf yapma
Bunun için Edit'in OnKeyPress olayına aşağıdaki kodu ekleyin.
with Sender as TEdit do
if (SelStart = 0) or
(Text[SelStart] = ' ') then
if Key in ['a'..'z'] then
Key := UpCase(Key);Fareyi meşgul şekilde göstermek
Bir işlem yaparken makinenin meşgul olduğunu göstermek için fareyi kum saati şeklinde gösterip sonra eski haline getirmek için aşağıdaki gibi bir kod kullanabilirsiniz.
try
Screen.Cursor := crHourGlass;
{buraya kodunuzu yazın...}
finally
Screen.Cursor := crDefault;
end; Çok Satırlı İpucu
procedure TForm1.FormCreate(Sender: TObject);
begin
SpeedButton1.Hint:= 'Çok satırlı ipucunu ' + chr(13) +
'mutlaka denemelisiniz ' +chr(13) +
'çok güzel';
end; Form'un arka kısmına bir resmi döşemek
Bitmap: TBitmap;

procedure TForm1.FormCreate(Sender: TObject);
begin
Bitmap := TBitmap.Create;
Bitmap.LoadFromFile('C:\WINDOWS\cars.BMP');
end;

procedure TForm1.FormPaint(Sender: TObject);
var
X, Y, W, H: LongInt;
begin
with Bitmap do begin
W := Width;
H := Height;
end;
Y := 0;
while Y < Height do begin
X := 0;
while X < Width do begin
Canvas.Draw(X, Y, Bitmap);
Inc(X, W);
end;
Inc(Y, H);
end;
end; Hareketli İmleç(animated cursor)leri kullanma
procedure TForm1.Button1Click(Sender:TObject);
var
h : THandle;
begin
h := LoadImage(0,
'C:\Magic.ani',
IMAGE_CURSOR,
0,
0,
LR_DEFAULTSIZE or
LR_LOADFROMFILE);
if h = 0 then ShowMessage('Cursor not loaded') else begin
Screen.Cursors[1] := h;
Form1.Cursor := 1;
end;
end; Sürücünün kapasitesini ve sürücüdeki boş yer miktarını bulmak
DiskFree(0) //o anki sürücüdeki boş yer miktarını byte cinsinden döndürür.
DiskSize(0) //o anki sürücünün kapasitesini byte cinsinden döndürür.
DiskSize(0) div 1024 //o anki sürücünün kapasitesini KB cinsinden döndürür.
Bir form üzerindeki tüm bileşenleri read only(salt okunur) yapma
uses kısmına typinfo unitini ekleyin.
procedure TForm1.SetReadOnly( Value : boolean ) ;
var
PropInfo : PPropInfo ;
Component : TComponent ;
i : integer ;
begin
for i := 0 to ComponentCount - 1 do begin
Component := Components[ i ] ;
if Component is TControl then begin
PropInfo := GetPropInfo( Component.ClassInfo, 'ReadOnly' ) ;
if Assigned( PropInfo ) and
( PropInfo^.PropType^.Kind = tkEnumeration ) then
SetOrdProp( Component, PropInfo, integer( Value ) ) ;
end ;
end ;
end ;
procedure TForm1.Button1Click(Sender: TObject);
begin
SetReadOnly( True ) ;
end;
Dikdörtgen olmayan Edit'ler
Değişik şekilde bir edit elde etmek için formun OnCreate olayına aşağıdaki kodu yazın.
SetWindowRgn( Edit1.handle,
CreateRoundRectRgn(2, 2, Edit1.Width-2, Edit1.Height-2, 15, 15),
True);
Bir klasörün boyutunu öğrenmek
Bir klasördeki dosyaların kaç byte yer kapladığını öğrenmek için
function TForm1.GetDirectorySize(const ADirectory: string): Integer;
var
Dir: TSearchRec;
Ret: integer;
Path: string;
begin
Result := 0;
Path := ExtractFilePath(ADirectory);
Ret := Sysutils.FindFirst(ADirectory, faAnyFile, Dir);

if Ret <> NO_ERROR then
exit;

try
while ret=NO_ERROR do
begin
inc(Result, Dir.Size);
if (Dir.Attr in [faDirectory]) and (Dir.Name[1] <> '.') then
Inc(Result, GetDirectorySize(Path + Dir.Name + '\*.*'));
Ret := Sysutils.FindNext(Dir);
end;
finally
Sysutils.FindClose(Dir);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Showmessage(intToStr(getdirectorysize('C:\windows' )));
end;
Bir dosyanın özelliklerini gösterme
procedure TForm1.Button1Click(Sender: TObject);
var
sei : TShellExecuteInfo;
begin
FillChar(sei,SizeOf(sei),#0);
sei.cbSize:=SizeOf(sei);
sei.lpFile:=PChar('c:\windows\notepad.exe');
sei.lpVerb:='properties';
sei.fMask:=SEE_MASK_INVOKEIDLIST;
ShellExecuteEx(@sei);
end;
Programım hangi klasörde çalışıyor
procedure TForm1.Button1Click(Sender: TObject);
var
path: string;
begin
Path := ExtractFilePath(ParamStr(0));
Showmessage (path);
end;
II.Yol : Mustafa Kılınç tarafından gönderilmiştir.
procedure TForm1.Button1Click(Sender: TObject);
begin
MessageDlg('Programınız ' +ExtractFilePath( Application.ExeName ) + 'klasöründe çalışıyor. ',
mtInformation, [m***], 0 );
end;
Bir dosyayı geri dönüşüm kutusuna (recyle bin) atmak
uses kısmına shellapi unitini ekleyin.
procedure TForm1.Button1Click(Sender: TObject);
var
T : TSHFileOpStruct;
begin
FillChar(T,SizeOf(TSHFileOpStruct),#0);
with T do
begin
Wnd:=0;
wFunc:=FO_DELETE;
pFrom:=Pchar('c:\test\2.avi');
fFlags:=FOF_ALLOWUNDO;
end;
SHFileOperation(T);
end;
Sayfa başına dön Aşağa gitmek
dynamic
Co Admin
Co Admin
dynamic


Mesaj Sayısı : 220
Kayıt tarihi : 25/09/08
Yaş : 34

Object Pascal Ipuçları 1. Empty
MesajKonu: Object Pascal Ipuçları 2.   Object Pascal Ipuçları 1. Icon_minitimeSalı Ekim 21, 2008 5:51 am

Bir dosyanın boyutunu bulmak
procedure TForm1.Button1Click(Sender: TObject);
var
srFileSR: TSearchRec;
sFileName, sFileSize: string;
begin
sFileName := 'c:\test\2.avi';
FindFirst(sFileName,faAnyFile,srFileSR);
sFileSize := IntToStr(srFileSR.Size);
Showmessage(sFileSize);
end;
Bmp dosyasını JPEG'e dönüştürme
uses kısmına jpeg unitini ekleyin.
procedure TForm1.Button1Click(Sender: TObject);
var
MyJPEG : TJPEGImage;
MyBMP : TBitmap;
begin
MyBMP := TBitmap.Create;
with MyBMP do
try
LoadFromFile('c:\winnt\cars.bmp');
MyJPEG := TJPEGImage.Create;
with MyJPEG do begin
Assign(MyBMP);
SaveToFile('c:\winnt\cars.JPEG');
Free;
end;
finally
Free;
end;
end;
Sayı Yuvarlama
24.499999 gibi bir sayıyı 24.5'e aşağıdaki kodla yuvarlayabilirsiniz.
procedure TForm1.Button1Click(Sender: TObject);
var
getal : real ;
AfgerondGetal :real;
begin
Getal:=24.499999;
AfgerondGetal:=round(Getal*100)/100;
Edit1.Text:=floattostr(AfgerondGetal);
end;
{Bu kod Mustafa Kılınç tarafından gönderilmiştir}
Bir dosya yolunun (path) sonundaki \ karakterini silme
Bunun için ExcludeTrailingPathDelimiter fonksiyonunu kullanabilirsiniz. Örneğin:
ShowMessage(ExcludeTrailingPathDelimiter(DirPath)) ;
Dosya yolunun sonunda mutlaka \ karakteri bulunsun
Bunun için IncludeTrailingPathDelimiter fonksiyonunu kullanabilirsiniz. Örneğin:
ShowMessage(IncludeTrailingPathDelimiter(DirPath)) ;
İçinde bulunduğumuz ayın son gününü nasıl bulurum
function LastDayCurrMon: TDate;
var
y, m, d: word;
begin
decodedate(now, y, m, d);
m := m + 1;
if m > 12 then
begin
y := y + 1;
m := 1;
end;
result := encodedate(y, m, 1) - 1;
end;
Escape tuşuna bastığımda form kapansın
Formun KeyPreview özelliğini True yapın. Daha sonra OnKeyPress olayına aşağıdaki kodu yazın.
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = #27 then
Close;
end;
Internetten dosya indirme (download)
uses kısmına ShellApi ve UrlMon unitlerini ekleyin.
function DownLoadInternetFile(Source, Dest : String): Boolean;
begin
try
Result := URLDownloadToFile(nil,PChar(Source),PChar(Dest),0,nil) = 0
except
Result := False;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
SourceString, DestinationString: string;
begin
SourceString := 'http://www.tcmb.gov.tr/kurlar/today.html';
DestinationString := 'c:\bugun.html';

if DownLoadInternetFile(SourceString, DestinationString) then
ShellExecute(Application.Handle, PChar('Open'), PChar(DestinationString), PChar(''), nil, SW_NORMAL)
else
MessageDlg('Dosya indirilemedi!', mtError, [m***], 0);
end;
Environment Variable'ları bulma
Environment variable bilgisayardan bilgisayara değişen bazı klasör ve değişkenlere verilen isim. Mesela Belgelerim klasörü gibi. Bu klasörü bir bilgisayarda c:\Belgelerim iken diğerinde c:\Mustafa\Belgelerim olabilir. Bunların tam listesini komut satırından SET komutunu vererek öğrenebilirsiniz. Bu değişkenlerden bazıları : Windows klasörü, Bilgisayar ismi, Domain ismi, Kullanıcı ismi, işlemci bilgileri...
ShowMessage(GetEnvironmentVariable('Temp'));
Satır ekledikçe RichEdit aşağı doğru kaysın
RichEdit1.Lines.Add('New text');
RichEdit1.Perform(EM_SCROLL, SB_LINEDOWN, 0);
Integer'dan binary string'e çevirme
function IntToBinStr(num: integer): string;
var
i: integer;
begin
for i := 0 to 31 do
Result := IntToStr((num shr i) and 1) + Result;
end;
Kullanılan fare'nin ortasında döndürme tekerleği var mı?
Bunu öğrenmek için mouse global nesnesini kullanabilirsiniz.
if Mouse.WheelPresent then
ShowMessage('tekerlek var');
Delphi'nin çalışıp, çalışmadığını test etme
Bu daha çok shareware tarzı componentlerde çok kullanılıyor. Delphi açıkken component çalışıyor, ancak kapanınca exe dosyadan çalışmıyor. Kullanıcı componenti rahatça deniyor, ama dağıtamıyor. Aşağıdaki kodla Delphi'nin çalışıp, çalışmadığını anlayabilirsiniz :
if FindWindow('TAppBuilder', Nil) <> 0 then
ShowMessage('Delphi çalışıyor');
Radio Grup'taki bir öğeyi kullanılamaz yapma
TRadioButton(RadioGroup1.Controls[1]). Enabled := False;
Programınızı Windows açılışında otomatik olarak çalışacak şekilde ayarlama
uses kısmına Registry unitini ekleyin.
procedure TForm1.Button1Click(Sender: TObject);
var
reg: TRegistry;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.LazyWrite := false;
reg.OpenKey('Software\Microsoft\Windows\CurrentVer sion\Run', False);
reg.WriteString('Uygulamam', Application.ExeName);
reg.CloseKey;
reg.free;
end;
Listbox'a aralıklı (tab) öğeler ekleyin
Listbox'ın TabWidth özelliğini 100 olarak girin. Bu aradaki boşluğu belirtir. Daha Sonra eklemek istediğiniz öğeler arasına ^I (Tab karakteri) ko***** öğeleri ekleyin.
Listbox1.Items.Add ('Bir'^I'İki'^I'Üç');
HTML Help (.chm) yardım dosyasını Delphi ile kullanma
Delphi içerisinde herhangi bir HTML Help bileşeni gelmiyor ancak, EHS isimli bedava bileşen sayesinde HTML Help (.chm) dosyalarını Delphi ile kullanabilirsiniz. Bileşeni sitesinden indirebilirsiniz : www.ec-software.com
StringGrid'in her zaman ilk hücresi seçili oluyor, bunu istemiyorum
Aşağıdaki kodu projenize eklerseniz, stringGrid üzerinde seçili alan gözükmeyecektir.
procedure TForm1.FormCreate(Sender: TObject);
var
grRect: TGridRect;
begin
grRect.Left := -1;
grRect.Top := -1;
grRect.Right := -1;
grRect.Bottom := -1;

StringGrid1.Selection := grRect;
end;
Çalışma anında (runtime) StringGrid oluşturamıyorum
TWinControl sınıfından bileşenleri runtime oluştururken, mutlaka parent vermelisiniz. Hata büyük ihtimal bundan kaynaklanıyor. Örnek kod :
procedure TForm1.Button1Click(Sender: TObject);
var
TmpStrGrid : TStringGrid;
begin
TmpStrGrid := TStringGrid.Create(Self);
TmpStrGrid.Parent := Form1;
TmpStrGrid.Left := 30;
TmpStrGrid.Top := 30;
end;
Edit'te yazarken binlik ayıracının gözükmesini istiyorum
Bu iş için bedava olan şu iki bileşeni kullanabilirsiniz : birincisi Rx Library/JVCL içindeki bir bileşen ( www.delphi-jedi.org ), ikincisi TAdvEdit ( www.tmssoftware.com ).
Animated gif kullanma
Bu iş için Rx Library / JVCL içindeki TRxGifAnimator isimli bileşeni kullanabilirsiniz. Bu paket bedava dağıtılmaktadır, www.delphi-jedi.org
Formun başlık çubuğunu (title bar) gizleme
Formun OnCreate olayına aşağıdaki kodu yazın :
procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLong( Handle,
GWL_STYLE,
GetWindowLong( Handle, GWL_STYLE )
and not WS_CAPTION );
ClientHeight := Height;
end;
Başka bir uygulamaya karakter gönderme
aşağıdaki örnek notepad uygulamasına A karakterini gönderir.
procedure TForm1.Button1Click(Sender: TObject);
var
g,d:integer;
begin
{uygulamanın ana penceresini bul}
g:=FindWindow('Notepad',nil);
{uygulama penceresindeki text box'ı bul}
d:=ChildWindowFromPoint(g,point(50,50));
{karakteri gönder}
SendMessage(d,WM_CHAR,Ord('A'),0);
end;
Formları ve Nesneleri Taşımak
Formları başlık çubuğundan tutmadan taşımak için veya form üzerindeki herhangi bir nesneyi taşımak için, OnMouseDown olayına aşağıdaki kodu yazın.
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const
SC_DragMove = $F012;
begin
ReleaseCapture;
Form1.Perform(WM_SysCommand, SC_DragMove, 0);
end;
F1, F2, F3 gibi Fonksiyon Kısayol Tuşlarını Kullanmak
Formun KeyPreview özelliğini True yapın ve OnKeyDown olayına aşağıdaki kodu yazın :
if Key = VK_F2 then
begin
{F2'ye basılırsa burdaki kod çalışır}
end;
Image'deki Resmi Boşaltma
image1.picture.bitmap := nil;
Bir Formu Runtime'da Oluşturup, Yok Etmek
Project menüsünden Options komutunu verin ve formu Avaible Forms kısmına taşıyın. Daha sonra aşağıdaki kodla formu gerektiği zaman oluşturup kullanabilir ve işi bitince yok edebilirsiniz. Böylece form boş yere hafızada yer işgal etmemiş olur.
try
Form2 := TForm2.Create(Application);
Form2.ShowModal;
finally
Form2.Free;
end;
WebBrowser'da Bir Kelimeyi Bulma
Aşağıdaki fonksiyon istediğiniz kelimeyi webbrowser'da bulup aydınlatır.
{....}

private
procedure SearchAndHighlightText(aText: string);

{....}

procedure TForm1.SearchAndHighlightText(aText: string);
var
i: Integer;
begin
for i := 0 to WebBrowser1.OleObject.Document.All.Length - 1 do
begin
if Pos(aText, WebBrowser1.OleObject.Document.All.Item(i).InnerTe xt) <> 0 then
begin
WebBrowser1.OleObject.Document.All.Item(i).Style.C olor := '#FFFF00';
WebBrowser1.OleObject.Document.All.Item(i).ScrollI ntoView(True);
end;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
SearchAndHighlightText('Aranan_Kelime');
end;
Internet Bağlantısını Kontrol Etmek
Bunun için bir kaç yöntem var :

1. www.google.com gibi bir siteye ping atıp atamadığını test edebilirsiniz.

2. TCP bileşenini kullanarak bu bileşenin LocalIP özelliğini kontrol edebilirsiniz. Eğer 0.0.0.0 ise internete bağlı değildir.

if TCP1.LocalIp = '0.0.0.0' then
ShowMessage('Internete bağlı değilsiniz!');
3. Aşağıdaki Kod :
procedure TForm1.Button1Click(Sender: TObject);
function FuncAvail(_dllname, _funcname: string;
var _p: pointer): boolean;
{return True if _funcname exists in _dllname}
var _lib: tHandle;
begin
Result := false;
if LoadLibrary(PChar(_dllname)) = 0 then exit;
_lib := GetModuleHandle(PChar(_dllname));
if _lib <> 0 then begin
_p := GetProcAddress(_lib, PChar(_funcname));
if _p <> NIL then Result := true;
end;
end;

{Win > Win98 de SHELL32.DLL i çağırın diğer işletim sistemlerinde URL.dll i çağırın }
{buton code:}
var
InetIsOffline : function(dwFlags: DWORD):
BOOL; stdcall;
begin
if FuncAvail('URL.DLL', 'InetIsOffline',
@InetIsOffline) then
if InetIsOffLine(0) = true
then ShowMessage('Bağlı değil!')
else ShowMessage('Internete Bağlı.');

Form Başlık Çubuğundan(title bar) Taşınamasın
Formun OnCreate olayına aşağıdaki kodu yazın :
procedure TForm1.FormCreate(Sender: TObject);
var
hMenuHandle : HMENU;
begin
hMenuHandle := GetSystemMenu(Form1.Handle, FALSE); //Get the handle of the Form
if (hMenuHandle <> 0) then
DeleteMenu(hMenuHandle, SC_MOVE, MF_BYCOMMAND); //disable moving
end;
Kısayol Oluşturmak
Bedava olarak dağıtılan TurboPower ShellShock içindeki Shortcut bileşeni ile kolayca kısayol oluşturabilirsiniz.
Access Violation Hatası
Bu hata oluşturulmayan/olmayan bir nesneye ulaşmaya çalıştığınzda meydana gelir. Mesela henüz oluşturulmamış bir formu göstermek istediğinizde.
Genelde karşılaşılan durumlardan biri de DataModule kullananların, datamodule henüz oluşturulmadan burdaki nesneleri kullanmak istemeleridir. Eğer datamodule kullanıyorsanız, Project menüsünden Options komutunu verin. Forms sekmesinde, Auto-create forms kısmında datamodule'ü ilk sıraya taşıyın.
Jpeg'i bmp'ye çevirme
procedure TForm1.ConvertJpgToBitmap(Jpeg: TJpegImage);
var
bmp: TBitmap;
dir: String;
begin
dir := GetWindowsDir;
bmp := TBitmap.Create;
try
Jpeg := TJpegImage.Create;
Jpeg.LoadFromFile('somejpeg.jpg');
with bmp do
begin
Width := Jpeg.Width;
Height := Jpeg.Height;
Canvas.Draw(0, 0, Jpeg);
SaveToFile('somebmp.bmp');
Free;
end;
finally
Jpeg.Free;
end;
end;
Rastgele Sayı Üretme
RandomRange fonksiyonunu kullanabilirsiniz. Bu fonksiyon, verdiğiniz aralıkta rastgele(random) sayı üretir. Math unitini uses kısmına ekleyin.

RandomRange(0,4) // 0 ile 4 arasında rastgele sayı üretir.
Dosya Kopyalama
CopyFile fonksiyonu ile dosya kopyalayabilirsiniz. Sondaki parametre False ise aynı isimde dosya varsa üzerine yazar, True ise yazmaz.
CopyFile('c:\1.txt', 'c:\Mustafa\1.txt', False);
Çalışan Programların Listesini Alma
function EnumWindowsProc(Wnd: HWND; List: TStrings): Boolean; stdcall;
var
ParentWnd: HWND;
ExStyle: DWORD;
Caption: array [0..255] of Char;
begin
if IsWindowVisible(Wnd) then
begin
ParentWnd:=GetWindowLong(Wnd,GWL_HWNDPARENT);
ExStyle:=GetWindowLong(Wnd,GWL_EXSTYLE);
if ((ParentWnd=0) or (ParentWnd=GetDesktopWindow)) and
((ExStyle and WS_EX_TOOLWINDOW=0) or (ExStyle and WS_EX_APPWINDOW<>0)) and
(GetWindowText(Wnd,Caption,SizeOf(Caption))>0) then
List.AddObject(Caption,Pointer(Wnd));
end;
Result:=True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
EnumWindows(@EnumWindowsProc,Integer(ListBox1.Item s));
end;
Fareyi Kod ile Tıklatma
Bazı işlemleri yaparken fareyi bir konuma taşıyıp, otomatik tıklama yapmasını isteyebilirsiniz. Bu durumda SetCursorPos ile kursörü istediğiniz konuma taşıyıp, aşağıdaki kodu yazın :
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
Harddisk'in Fabrika Seri Numarasını Bulma
Ide Diskler için : ide_sn.zip (4 KB), SCSI Diskler için : scsi_sn.zip (4 KB).
NOT : Windows 9x'te SMARTVSD.VXD isimli dosyayı "windows\system" klasöründen "windows\system\iosubsys" klasörüne kopyalayıp restart etmek gerekiyor.
TImage'deki Resmi Başka Bir TImage'a Atamak
ArkaPlan.Picture.Bitmap.Assign(image1.picture.bitm ap); //image1'deki resim ArkaPlan'a atanır.
StringGrid'te Enter Tuşuna Basınca Yan Hücreye Geçsin
StringGrid'in OnKeyDown olayına aşağıdaki kodu yazın :
if (key = vk_return) and (StringGrid1.Col < StringGrid1.ColCount-1) then
StringGrid1.Col:=StringGrid1.Col+1;
Sayfa başına dön Aşağa gitmek
 
Object Pascal Ipuçları 1.
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» Pascal'da KDV Hesaplama programı
» Turbo Pascal Dersleri ve Örnekleri

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
 :: BT Bilgisayar ve Teknolojisi :: Programlama :: Delphi / Pascal-
Buraya geçin: