DynamicTR.com | Film indir | Movies Download | Tek Link Film, Dizi, Oyun, Program Download Merkezi | Alternatif Linki En Bol Forum
Duyurular: DynamicTR.com | Tek Link Film, Dizi, Oyun, Program Download Merkezi | Alternatif Linki En Bol Forum
 
*
Hoşgeldiniz, Ziyaretçi.Lütfen giriş yapın veya kayıt olun. 30 Temmuz 2010, 20:16:53


Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz



Sayfa: [1]
  Yazdır  
Gönderen Konu: Birazcık Delphi İpuçları Ve Kodları  (Okunma Sayısı 363 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
static_reactor
Administrator
*

Puan: 1115
Çevrimdışı Çevrimdışı

Cinsiyet: Bay
Mesaj Sayısı: 42.592



WWW
« : 25 Şubat 2010, 17:32:22 »


DELPHI İPUÇLARI VE KODLARI
Alt+F4 tuş kombinasyonuyla programın kapanmaması için
Formun OnCreate olayına; KeyPreview := true;
Formun OnKeyDown olayına; 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ırkdokuzelli');
Memo1.Lines.SetText('Ali'#13'Veli'#13'kırkdokuzelli');
Combobox1.items.SetText('Ali'#13'Veli'#13'kırkdokuzelli');

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_LINEINDEX,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;
Application.ProcessMessages;

Ç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:\TheWall\Magic.ani', IMAGE_CURSOR,0,0,LR_DEFAULTSIZE orLR_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;
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;
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;
Logged

Linklerin Görülmesine Izin Verilmiyor
Register or Login
" Hjsplit Programı Resimli anlatım " - .001 .002 .003 Uzantılı İndirdiğiniz Dosyaları Birleştirmek için Tıklayın


Ulaşmak İstediğiniz Konu İçin Forumda Arama Yapınız

Alıntı Olarak Verilen Filmlerde Mağdur Olmamanız İçin İlk Partı İndirip, Kalite ve Şifre Kontrolunu Yapınız.
static_reactor
Administrator
*

Puan: 1115
Çevrimdışı Çevrimdışı

Cinsiyet: Bay
Mesaj Sayısı: 42.592



WWW
« Yanıtla #1 : 25 Şubat 2010, 17:32:49 »

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\ACD Wallpaper.bmp');
MyJPEG := TJPEGImage.Create;
with MyJPEG do begin
Assign(MyBMP);
SaveToFile('c:\winnt\ACD Wallpaper.JPEG');
Free;
end;
finally
Free;
end;
end;
 
DELPHI -- ASSEMBLY İPUCU
1-Bilgisayarı reboot etmek
asm
cli
@@WaitOutReady:
in al,64h
test al,00000010b
jnz
@@WaitOutReady
mov al,0FEh
out 64h,al
End;
 
DELPHI – FORM İPUCU
1. Form üzerindeki bileşenleri resolution oranında büyütme.
//640*480 referans olarak alindi Smiley
procedure AdjustResolution(oForm:TForm);
var
iPercentage:integer;
begin
if Screen.Width > 640 then
begin
iPercentage:=Round(((Screen.Width-640)/640)*100)+100;
oForm.ScaleBy(iPercentage,100);
end;
end;
AdjustResolution(Self);

2. Formun title Bar'da gözükmesini engellemek.
{ Mutlaka Winprocs & WinTypes unitlerinin çagrilmasi gerekli }
Procedure TSeninFormName.HideTitlebar;
Var
Save : LongInt;
Begin
If BorderStyle=bsNone then Exit;
Save:=GetWindowLong(Handle,gwl_Style);
If (Save and ws_Caption)=ws_Caption then Begin
Case BorderStyle of
bsSingle,
bsSizeable : SetWindowLong(Handle,gwl_Style,Save and
(Not(ws_Caption)) or ws_border);
bsDialog : SetWindowLong(Handle,gwl_Style,Save and
(Not(ws_Caption)) or ds_modalframe or ws_dlgframe);
End;
Height:=Height-getSystemMetrics(sm_cyCaption);
Refresh;
End;
end;
Procedure TSeninFormName.ShowTitlebar;
Var
Save : LongInt;
begin
If BorderStyle=bsNone then Exit;
Save:=GetWindowLong(Handle,gwl_Style);
If (Save and ws_Caption)<>ws_Caption then Begin
Case BorderStyle of
bsSingle,
bsSizeable : SetWindowLong(Handle,gwl_Style,Save or ws_Caption or
ws_border);
bsDialog : SetWindowLong(Handle,gwl_Style,Save or ws_Caption or
ds_modalframe or ws_dlgframe);
End;
Height:=Height+getSystemMetrics(sm_cyCaption);
Refresh;
End;
end;

3. Form'da kendi hotkeyini olusturma...
//Önce formun KeyPreview := true; yapin.
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (ssCtrl in Shift) and (chr(Key) in ['A', 'a']) then
ShowMessage('Ctrl-A');
end;

4. MDI Child formun kapatılması...
//Formun onClose olayina asagidaki satiri yazmaniz yeterli.
Action := caFree;
5. Formu ilk açılışta minimize açmak...
//Formun onCreate olayina
ShowWindow(Handle, SW_MINIMIZE);
//yazin...
Delphi -- Miscellaneous İpuçları
1. Programı sleep moduna alma...
Procedure MsSleep(ms : Integer);
Var
tmpTime : Integer;
tmpMs : Integer;
Begin
tmpMs := ms;
tmpTime := GetTickCount + tmpMs;
While tmpTime > GetTickCount Do
Application.ProcessMessages;
End;
{Program kapanışında istediğiniz bir açıklamayı koyup çalıştırın
bu uyuma metodunu engellemenin yolu yok Smiley) }

2. Saat'i parçalayarak yaz...
// Kayıtları oluştur
type TimeParse = record
timeDay : Integer;
timeHour : Integer;
timeMin : Integer;
timeSec : Integer;
timeMilli : Integer;
end;

// function burda başlıyor
function DoTime(MilliSeconds : Integer) : TimeParse;
begin
// Değerleri sıfırla
Result.timeHour := 0;
Result.timeMin := 0;
Result.timeDay := 0;
Result.timeSec := 0;
Result.timeMilli := 0;
// Günü al
While MilliSeconds > 86399999 Do
Begin
Result.timeDay := Result.timeDay + 1;
MilliSeconds := MilliSeconds - 86400000;
End;
// Saati al
While MilliSeconds > 3599999 Do
Begin
Result.timeHour := Result.timeHour + 1;
MilliSeconds := MilliSeconds - 3600000;
End;
// Dakikayı al
While MilliSeconds > 59999 Do
Begin
Result.timeMin := Result.timeMin + 1;
MilliSeconds := MilliSeconds - 60000;
End;
// Saniyeyi al
While MilliSeconds > 999 Do
Begin
Result.timeSec := Result.timeSec + 1;
MilliSeconds := MilliSeconds - 1000;
End;
// Kaç milisaniye geçti
Result.timeMilli := MilliSeconds;
end;
Procedure TFrom1.Button1Click(Sender:TObject)
Var
FTimeParse : TTimeParse;
I : Integer;
begin
I := GetTickCount;
I := GetTickCount - I;
LabelDays.Caption := FTimeParse.timeDay;
LabelHours.Caption := FTimeParse.timeHour;
LabelMinutes.Caption := FTimeParse.timeMin;
LabelSeconds.Caption := FTimeParse.timeSec;
LabelMilliseconds.Caption := FTimeParse.timeMilli;
end;

Delphi -- Sistem İpuçları

1. Registryden kayıt okuma...
procedure TForm1.FormCreate(Sender: TObject);
Var
Registry: TRegistry;
Listan:TStringList;
begin
Listan := TStringList.create;
Registry := TRegistry.Create;
try
Registry.RootKey := HKey_Classes_Root;
Registry.OpenKey(",False);
Registry.GetKeynames(Listan);
ComboBox1.Items := Listan;
finally
Registry.Free;
end;
end;

2. Porttan bilgi oku...
function ReadPortB( wPort : Word ) : Byte;
begin
asm
mov dx, wPort
in al, dx
mov result, al
end;
end;

3. Porta bilgi gönder...
procedure WritePortB( wPort : Word; bValue : Byte );
begin
asm
mov dx, wPort
mov al, bValue
out dx, al
end;
end.

4.Uygulamanız Desktop'ta kısayol oluştursun..
procedure desktopShortcut(ffilename:string; fcaption: widestring);
var
IObject : IUnknown;
ISLink : IShellLink;
IPFile : IPersistFile;
PIDL : PItemIDList;
InFolder : array[0..MAX_PATH] of Char;
TargetName : String;
LinkName : WideString;
FLinkName : String;
begin
TargetName := ffilename;
IObject := CreateComObject(CLSID_ShellLink);
ISLink := IObject as IShellLink;
IPFile := IObject as IPersistFile;
with ISLink do begin
SetPath(pChar(TargetName));
SetWorkingDirectory
(pChar(ExtractFilePath(TargetName)));
end;
SHGetSpecialFolderLocation
(0, CSIDL_DESKTOPDIRECTORY, PIDL);
SHGetPathFromIDList
(PIDL, InFolder);
FlinkName := '\'+ FCaption + '.lnk';
LinkName := InFolder + FlinkName;
IPFile.Save(PWChar(LinkName), false);
end;
Kullanımı:
DesktopShortcut('C:/windows/notepad.exe','Notepad');

Delphi -- Database İpuçları

1. İstenilen alanları Combobox'a yazdırma...
procedure TForm1.FormCreate(Sender: TObject);
begin
with Table1 do begin
DisableControls;
try
First
while not EOF do begin
with MyCombo.Items do
Objects[Add(FieldByName('Terms').AsString)] := Pointer((FieldByName('EmpNo').AsInteger));
Next;
end;
finally
EnableControls;
end;
end;
end;
procedure TForm1.MyComboClick(Sender: TObject);
var EmpNo: Integer;
begin
with MyCombo do
EmpNo:=LongInt(Items.Objects[ ItemIndex ]);
ShowMessage('Emp.No.: ' + IntToStr(EmpNo));
End;

2. Query'de SQL kullanarak arama yapmak...
procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('Select * From Database Where Adi like "'+Edit1.text+'%"');
Query1.Open;
End;

3. Table'da istenilen alana göre arama yapmak
procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.Locate('AlanAdi',Edit1.Text,[]);
end;
4. Table'da her tuşa basışta girilen kadarının uyduğu kayıdı bulma...
procedure TForm1.Edit1Change(Sender: TObject);
begin
Table1.FindNearst([Edit1.Text]);
end;

5. Table'da indexli alana göre arama yapmak...
procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.FindKey([Edit1.text]);
end;
Logged

Linklerin Görülmesine Izin Verilmiyor
Register or Login
" Hjsplit Programı Resimli anlatım " - .001 .002 .003 Uzantılı İndirdiğiniz Dosyaları Birleştirmek için Tıklayın


Ulaşmak İstediğiniz Konu İçin Forumda Arama Yapınız

Alıntı Olarak Verilen Filmlerde Mağdur Olmamanız İçin İlk Partı İndirip, Kalite ve Şifre Kontrolunu Yapınız.
static_reactor
Administrator
*

Puan: 1115
Çevrimdışı Çevrimdışı

Cinsiyet: Bay
Mesaj Sayısı: 42.592



WWW
« Yanıtla #2 : 25 Şubat 2010, 17:33:11 »

Delphi -- Graphic İpuçları
1. 3D Yazı yazmak..
procedure imgPaintCanvas(TheCanvas : TCanvas; TheString : String; TheFontSize, UCorner, LCorner : Integer);
Begin
TheCanvas.Brush.Style := bsClear;
TheCanvas.Font.Style := [fsBold];
TheCanvas.Font.Name := 'MS Sans Serif';
TheCanvas.Font.Size := TheFontSize;
TheCanvas.Font.Color := clBlack;
TheCanvas.TextOut(UCorner, LCorner, TheString);
TheCanvas.Font.Color := clGray;
TheCanvas.TextOut(UCorner - 1, LCorner - 1, TheString);
TheCanvas.Font.Color := clSilver;
TheCanvas.TextOut(UCorner - 2, LCorner - 2, TheString);
TheCanvas.Font.Color := clBlack;
TheCanvas.TextOut(UCorner - 3, LCorner - 3, TheString);
End;
//Şöyle Çalışıyor
imgPaintCanvas(Image3.Canvas, '0', 10, 6, 4);

2. Form da MetaFile çizmek...
implementation
{$R *.DFM}
type
TMetafileCanvas = class(TCanvas)
private
FClipboardHandle: THandle;
FMetafileHandle: HMetafile;
FRect: TRect;
protected
procedure CreateHandle; override;
function GetMetafileHandle: HMetafile;
public
constructor Create;
destructor Destroy; override;
property Rect: TRect read FRect write FRect;
property MetafileHandle: HMetafile read GetMetafileHandle;
end;
constructor TMetafileCanvas.Create;
begin
inherited Create;
FClipboardHandle := GlobalAlloc(
GMEM_SHARE or GMEM_ZEROINIT, SizeOf(TMetafilePict));
end;
destructor TMetafileCanvas.Destroy;
begin
DeleteMetafile(CloseMetafile(Handle));
if Bool(FClipboardHandle) then GlobalFree(FClipboardHandle);
if Bool(FMetafileHandle) then DeleteMetafile(FMetafileHandle);
inherited Destroy;
end;
procedure TMetafileCanvas.CreateHandle;
var
MetafileDC: HDC;
begin
MetafileDC := CreateMetaFile(nil);
if Bool(MetafileDC) then
begin
with FRect do SetWindowOrg(MetafileDC, Left - 10, Top - 10);
with FRect do SetWindowExt(MetafileDC, Right - Left + 20, Bottom - Top + 20);
if Bool(FMetafileHandle) then
begin
PlayMetafile(MetafileDC, FMetafileHandle);
end;
end;
Handle := MetafileDC;
end;
function TMetafileCanvas.GetMetafileHandle: HMetafile;
var
MetafilePict: PMetafilePict;
IC: HDC;
ExtRect: TRect;
begin
if Bool(FMetafileHandle) then DeleteMetafile(FMetafileHandle);
FMetafileHandle := CloseMetafile(Handle);
Handle := 0;
MetafilePict := GlobalLock(FClipboardHandle);
MetafilePict^.mm := mm_AnIsoTropic;
IC := CreateIC('DISPLAY', nil, nil, nil);
SetMapMode(IC, mm_HiMetric);
ExtRect := FRect;
DPtoLP(IC, ExtRect, 2);
DeleteDC(IC);
MetafilePict^.xExt := ExtRect.Right - ExtRect.Left;
MetafilePict^.yExt := ExtRect.Top - ExtRect.Bottom;
MetafilePict^.HMF := FMetafileHandle;
GlobalUnlock(FClipboardHandle);
Result := FClipboardHandle;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
MetafileCanvas : TMetafileCanvas;
begin
MetafileCanvas := TMetafileCanvas.Create;
MetafileCanvas.Rect := Rect(0,0,500,500);
MetafileCanvas.Ellipse(10,10,400,400);
Image1.Picture.Metafile.LoadFromClipboardFormat(cf_MetafilePict, MetafileCanvas.MetafileHandle, 0);
MetafileCanvas.Free;
end;
end.

3. Forma Bitmap kaplanması...
var
Form1: TForm1;
Bitmap: TBitmap;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
Bitmap := TBitmap.Create;
Bitmap.LoadFromFile('C:\WINDOWS\hasir.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;
end.

4.Transparan Bitmap nasıl yapılır...
procedure DrawTrans(DestCanvas: TCanvas; X,Y: smallint; SrcBitmap: TBitmap; AColor, BackColor: TColor);
var ANDBitmap, ORBitmap: TBitmap;
CM: TCopyMode;
Src: TRect;
begin
ANDBitmap:= NIL;
ORBitmap:= NIL;
try
ANDBitmap:= TBitmap.Create;
ORBitmap:= TBitmap.Create;
Src := Bounds(0,0, SrcBitmap.Width, SrcBitmap.Height);
with ORBitmap do begin
Width:= SrcBitmap.Width;
Height:= SrcBitmap.Height;
Canvas.Brush.Color := clBlack;
Canvas.CopyMode := cmSrcCopy;
Canvas.BrushCopy(Src, SrcBitmap, Src, AColor);
end;
with ANDBitmap do begin
Width:= SrcBitmap.Width;
Height:= SrcBitmap.Height;
Canvas.Brush.Color := BackColor;
Canvas.CopyMode := cmSrcInvert;
Canvas.BrushCopy(Src, SrcBitmap, Src, AColor);
end;
with DestCanvas do begin
CM := CopyMode;
CopyMode := cmSrcAnd;
Draw(X,Y, ANDBitmap);
CopyMode := cmSrcPaint;
Draw(X,Y, ORBitmap);
CopyMode := CM;
end;
finally
ANDBitmap.Free;
ORBitmap.Free;
end;
end;
Kullanımı :
DrawTrans(Image2.Canvas, 0,0, 'C:\Windows\deepblue.bmp', clBlack, clSilver);
Logged

Linklerin Görülmesine Izin Verilmiyor
Register or Login
" Hjsplit Programı Resimli anlatım " - .001 .002 .003 Uzantılı İndirdiğiniz Dosyaları Birleştirmek için Tıklayın


Ulaşmak İstediğiniz Konu İçin Forumda Arama Yapınız

Alıntı Olarak Verilen Filmlerde Mağdur Olmamanız İçin İlk Partı İndirip, Kalite ve Şifre Kontrolunu Yapınız.
static_reactor
Administrator
*

Puan: 1115
Çevrimdışı Çevrimdışı

Cinsiyet: Bay
Mesaj Sayısı: 42.592



WWW
« Yanıtla #3 : 25 Şubat 2010, 17:33:47 »

Delphi -- Shareware İpuçları

1 . Programınız her windows açılışında sadece bir kere çalışsın...
procedure TForm1.FormShow(Sender : TObject);
var atom : integer;
CRLF : string;
begin
if
GlobalFindAtom('THIS_IS_SOME_OBSCUREE_TEXT') = 0 then
atom := GlobalAddAtom('THIS_IS_SOME_OBSCUREE_TEXT')
else
begin
CRLF := #10 + #13;
ShowMessage('Bu versiyon her Windows oturumunda yanlızca bir kere çalışır.' + CRLF +
'Programı tekrar çalıştırmak için Windows'u restart edin. ' + CRLF +
'REGISTER !!');
Close;
end;
end;

Delphi -- WinAPI İpuçları
1.Windows'un dial-up bağlantısının çağrılması
//modem yüklü olmalı
winexec(PChar('rundll32.exe rnaui.dll,RnaDial '+Edit1.Text),sw_show);
 
2.Programına Animasyonlu Cursor Ekle
const
cnCursorID1 = 1;
begin
Screen.Cursors[ cnCursorID1 ] :=
LoadCursorFromFile(
'c:\winnt\cursors\piano.ani' );
Cursor := cnCursorID1;
end;

3.Programa E-mail linki eklemek
procedure email;
var
x: string;
begin
x:='mailto:'+FEmailTo+'?Subject='+FEmailSubject+'&cc='+FEmailCC;
ShellExecute(0, nil, PChar(x), nil, nil, SW_SHOWDEFAULT);
end;

4.Registry'den Bilgi okumak
var
RegIni : TRegIniFile;
begin
RegIni := TRegIniFile.Create(");
with RegIni do
begin
RootKey := HKEY_LOCAL_MACHINE;
LazyWrite := True;
OpenKey('\Software\Microsoft\Windows\',False);
ShowMessage(ReadString('CurrentVersion', 'RegisteredOrganization', 'not assigned'));
Free;
end;
end;

5.Açık bütün pencereleri listeleme
function EnumWindowsProc(Wnd : HWnd;Form : TForm1) : Boolean; Export; {$ifdef Win32} StdCall; {$endif}
var
Buffer : Array[0..99] of char;
begin
GetWindowText(Wnd,Buffer,100);
if StrLen(Buffer) <> 0 then
Form.ListBox1.Items.Add(StrPas(Buffer));
Result := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
EnumWindows(@EnumWindowsProc,LongInt(Self));
end;

Delphi -- File Yönetimi İpuçları

1. Delphi 'de dosya nasıl Kopyalanır ?
Bunun için bir kaç yöntem var...
Procedure FileCopy( Const sourcefilename, targetfilename: String );
Var
S, T: TFileStream;
Begin
S := TFileStream.Create( sourcefilename, fmOpenRead );
try
T := TFileStream.Create( targetfilename,
fmOpenWrite or fmCreate );
try
T.CopyFrom(S, S.Size ) ;
finally
T.Free;
end;
finally
S.Free;
end;
End;

procedure FileCopy(const FromFile, ToFile: string);
var
FromF, ToF: file;
NumRead, NumWritten: Word;
Buf: array[1..2048] of Char;
begin
AssignFile(FromF, FromFile);
Reset(FromF, 1);
AssignFile(ToF, ToFile);
Rewrite(ToF, 1);
repeat
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
BlockWrite(ToF, Buf, NumRead, NumWritten);
until (NumRead = 0) or (NumWritten <> NumRead);
CloseFile(FromF);
CloseFile(ToF);
end;
{ USES LZExpand.}
procedure CopyFile(FromFileName, ToFileName: string);
var
FromFile, ToFile: File;
begin
AssignFile(FromFile, FromFileName);
AssignFile(ToFile, ToFileName);
Reset(FromFile);
try
Rewrite(ToFile);
try
if LZCopy(TFileRec(FromFile).Handle, TFileRec(ToFile).Handle) < 0 then
raise EInOutError.Create
finally
CloseFile(ToFile);
end;
finally
CloseFile(FromFile);
end;
end;

2. Dosyanın değiştirilme tarih ve saatinin öğrenilmesi
function GetModifiedDate(FileName: string): TDateTime;
var
SearchRec: TSearchRec;
ModifiedTime: TFileTime;
SystemTime: TSystemTime;
begin
Result := 0;
If FindFirst(FileName, faAnyFile, SearchRec) = 0 then
begin
ModifiedTime := SearchRec.FindData.ftLastWriteTime;
FileTimeToLocalFileTime(ModifiedTime, ModifiedTime);
FileTimeToSystemTime(ModifiedTime, SystemTime);
Result := SystemTimeToDateTime(SystemTime);
end;
FindClose(SearchRec);
end;

3. Dosyanın varlığının kontrol edilmesi
Function GetShortFileName(Const FileName : String) : String;
var
aTmp: array[0..255] of char;
begin
if GetShortPathName(PChar(FileName),aTmp,Sizeof(aTmp)-1)=0 then
Result:= FileName+ ' <--Bulunamadı'
else
Result:=FileName+' <--Bulundu';
end;

4. Verilen bir dizinin içini silme
procedure DelTree(StartDir: string);
var
Search : TSearchRec;
begin
if Startdir[Length(Startdir)] <> '\' then
startdir := startdir + '\';
if FindFirst(startdir + '*.*', faAnyFile, Search) = 0 then
repeat
if (Search.Name[1] <> '.' ) then
if ((Search.Attr and faDirectory) > 0) then
begin
RmDir(StartDir + Search.Name);
ChangeFAttrib(StartDir + Search.Name);
end else
begin
DeleteFile(StartDir + Search.Name);
Application.ProcessMessages;
end;
until FindNext(Search) <> 0;
FindClose(Search);
end

Delphi -- Hardware İpuçları

1. CD-ROM Drive'ı kontrol etmek...
function IsCDROM(DriveNum: Integer): Boolean; assembler;
asm
MOV AX,1500h { MSCDEX 'e bakıyor}
XOR BX,BX
INT 2fh
OR BX,BX
JZ @Finish
MOV AX,150Bh { CD driver ın kullanılırlığına bakıyor}
MOV CX,DriveNum
INT 2fh
OR AX,AX
@Finish:
end;
// Win32 kontrolörlü
A:
Function IsCdRom(DriveNum : Word) : Boolean;
Var
F : WordBool;
Begin
asm
mov ax, 1500h
xor bx, bx
int 2fh
mov ax, bx
or ax, ax
jz @no_mscdex
mov ax, 150bh
mov cx, DriveNum
int 2fh
@no_mscdex:
mov f,ax
end;
Result := F;
End;

2. Disk veya Disket yerinde mi ?
function DiskInDrive(Drive: Char): Boolean;
var
ErrorMode: word;
begin
if Drive in ['a'..'z'] then Dec(Drive, $20);
if not (Drive in ['A'..'Z']) then
raise EConvertError.Create('Not a valid drive ID');
ErrorMode := SetErrorMode(SEM_FailCriticalErrors);
try
{ sürücü 1 = a, 2 = b, 3 = c, etc. }
if DiskSize(Ord(Drive) - $40) = -1 then
Result := False
else
Result := True;
finally
{ error moduna geri dön }
SetErrorMode(ErrorMode);
end;
end;

3. Sistem Tarih ve Saatini değiştirme...
procedure SetDate(Year, Month, Day: Word); assembler;
asm
MOV CX,Year
MOV DH,BYTE PTR Month
MOV DL,BYTE PTR Day
MOV AH,2BH
INT 21H
end;
procedure SetTime(Hour, Minute, Second, Sec100: Word); assembler;
asm
MOV CH,BYTE PTR Hour
MOV CL,BYTE PTR Minute
MOV DH,BYTE PTR Second
MOV DL,BYTE PTR Sec100
MOV AH,2DH
INT 21H
end;
function SetSystemDateTime(Year, Month, Day, Hour, Minute, Second: word): integer;export;
begin
SetDate(Year, Month, Day);
SetTime(Hour, Minute + 1, Second, 0);
result := 1;
end

Delphi -- String İpuçları

1. Editten sadece sayımı girilsin... Smiley
procedure CheckText(Sender:TEdit; var Key:Char);
begin
If not (Key in ['0'..'9','.',#8, #13]) then
Key := #0;
If Key = '.' then
begin
If Pos('.', Sender.Text) > 0 then
Key := #0;
end;
end;

2. Editin içini belli bir formatta yazdırmak...
Procedure Format(MyEdit1,MyEdit2:TEdit);
Var
I : Integer;
S : String;
begin
I := StrToInt(MyEdit1.Text);
FmtStr(S, '%.3d', );
MyEdit2.Text := S;
// I.E. If Edit1.Text := '1' den Edit2.Text := '001'; döndürür
end;

3. String içinde belli iki karakter arasını almak...
Function GetParsedItem(TheItemStr, ParseStr : String; ItemNum : Integer): String;
Var
I4 : Integer;
S4 : String;
Begin
TheItemStr := TheItemStr + ParseStr;
S4 := ";
I4 := 0;
While I4 <= ItemNum Do
Begin
S4 := Copy(TheItemStr, 1, Pos(ParseStr, TheItemStr) - 1);
Delete(TheItemStr, 1, Pos(ParseStr, TheItemStr));
Inc(I4);
End;
Result := S4;
End;
{TheItemStr de Parsestr ye bakiyor ve ItemNum inci parsestrden sonra tekrar bulana dek olan str yi veriyor.}

4.String şifreleme...
function EnDeCode(const Value : String) : String;
var
CharIndex : Integer;
ReturnValue : String;
begin
ReturnValue := ";
for CharIndex := 1 to Length(Value) do
begin
ReturnValue := ReturnValue + chr(NOT(ord(Value[CharIndex])));
end;
Result := ReturnValue;
end;
Logged

Linklerin Görülmesine Izin Verilmiyor
Register or Login
" Hjsplit Programı Resimli anlatım " - .001 .002 .003 Uzantılı İndirdiğiniz Dosyaları Birleştirmek için Tıklayın


Ulaşmak İstediğiniz Konu İçin Forumda Arama Yapınız

Alıntı Olarak Verilen Filmlerde Mağdur Olmamanız İçin İlk Partı İndirip, Kalite ve Şifre Kontrolunu Yapınız.
static_reactor
Administrator
*

Puan: 1115
Çevrimdışı Çevrimdışı

Cinsiyet: Bay
Mesaj Sayısı: 42.592



WWW
« Yanıtla #4 : 25 Şubat 2010, 17:34:15 »

Database 'de Türkçe Problemi

BDE administor programında configuration/dirvers/native/[kullandığın dosya türü] seçeneklerinde langdriver kısmını türkçe bir sürücü olarak değiştir. Bunu yaptıktan sonra delphi ile türkçe karakterleri görebilirsiniz
Bu ayarı yaptıktan sonra Database Desktopta Türkçe karakterler yine görünmeyecek.

Enter Tuşu Kullanımı

Windows programlarında bir alttaki alana geçmek için TAB tuşu kullanılır.Ancak DOS programlarından gelen alışkanlıkla kullanıcılar hep Enter ile alt alana geçmek ister ve bu bir tik olmuştur.
Delphide Enter tuşu ile bir alt alana geçmek için bir yöntem;
• Formun Keypreview olayını True yapılır.
• Form üzerinde herhangiki tüm bileşenlere Default false yaplır.
• formun onKeypres olayına aşağıdaki function ilave edilir.
procedure TAdresformu.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then begin
Key := #0;
if (Sender is TDBGrid) then
TDBGrid(Sender).Perform(WM_KeyDown,VK_Tab,0)
else
Perform(Wm_NextDlgCtl,0,0);
end;

Açık Windows Uygulamalarının Gösterilmesi

Burada EnumWindows API fonksiyonuyla bir window handle ve pointer parametreleri çağrılarak gizli ve görünür uygulamalar listelenir.
//AnaForm üzerine bir ListBox1 ve Button1 ekleyin
//implementation {$R *.DFM} altyna a?a?ydaki fonksiyonu yaz
function EnumWindowsProc(Wnd : HWnd;Form : TForm1) : Boolean;
Export; {$ifdef Win32} StdCall; {$endif}
var
Buffer : Array[0..99] of char;
begin
GetWindowText(Wnd,Buffer,100);
if StrLen(Buffer)
<> 0 then
Form1.ListBox1.Items.Add(StrPas(Buffer));
Result := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//Tüm gizli ve görünür uygulamalary listele
EnumWindows(@EnumWindowsProc,LongInt(Self));
end;

Delphide Yazılan Kodla Exe Çalıştırma

Aşağıdaki örnek kod verilen web sitesini Internet Explorer' ı çalıştırarak açar.
procedure TForm1.Button1Click(Sender: TObject);
begin
winexec('C:\Program Files\Internet Explorer\iexplore.exe Linklerin Görülmesine Izin Verilmiyor
Register or Login
http://wwww.programlama.com',SW_MAXIMIZE);
end;

Bir Harddiskin Seri Numarasının Bulunması

Hard diskin seri numarasını bulur.
procedure TForm1.Button1Click(Sender: TObject);
var
VolumeSerialNumber : DWORD;
MaximumComponentLength : DWORD;
FileSystemFlags : DWORD;
SerialNumber : string;
begin
GetVolumeInformation('C:\', nil, 0, @VolumeSerialNumber,
MaximumComponentLength, FileSystemFlags, nil, 0);
SerialNumber := IntToHex(HiWord(VolumeSerialNumber), 4) + '-' + IntToHex(LoWord(VolumeSerialNumber), 4);
Memo1.Lines.Add(SerialNumber);
end;

Windows'un Belgeler Menüsünü Temizleme

Formun uses kısmına ShlOBJ şeklinde ilave yapın; bir butona veya herhangi bir olayın event' ine de ;
SHAddToRecentDocs(SHARD_PATH, nil); şeklinde yazın.

Ekran Görüntüsü Aktarma

Belirttiğiniz sınırlar dahilinde ekranın belli bir alanını formunuzun üzerine koymak isterseniz. Formunuza image1 adlı bir resim objesi ekleyin ve daha sonra formunuzun create olayına şu kodu yazın.
procedure TForm1.FormCreate(Sender: TObject);
var
DCDesk: HDC;
begin
DCDesk:=GetWindowDC(GetDesktopWindow);
BitBlt(Image1.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,DCDesk, 0, 0,SRCCOPY);
ReleaseDC(GetDesktopWindow, DCDesk);
end;

Mouse Pointerı Gizlemek

Mouse Pointerı gizlemek için ShowCursor(False) komutunu kullanmak yeterli. Tabi yeniden görünmesini sağlamak için ShowCursor(True) komutunu kullanıyoruz.

İmlecin Ekrandaki Yerinin Belirlenmesi

İmlecin o anda ekranın neresinde olduğunu bulan ufak bir kod parçası.
procedure TForm1.Button1Click(Sender: TObject);
var Yer:TPoint;
begin
if Assigned(ActiveControl) then
begin
Yer:=Point(0,0); { burda 0,0 imleç'in ekrandaki yeri oluyor }
ActiveControl.ClientToScreen(Yer);
SetCursorPos(Yer.X,Yer.Y);
end;
end;

Başlat Menüsü Programlarının Tespit Edilmesi

Başlat menüsünde hangi programların bulunduğunu tespit eden bir kod parçası.Forma bir ListBox, bir Buton, birde DDEClientConv nesnesi ekleyip, Service ve Topic özelligini "Progman" olarak giriniz.
var
B:Pchar;
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.clear;
B := DDEClientConv1.RequestData('Groups');
ListBox1.Items.SetText(B);
StrDispose(B);
end;

Register Kullanım Örneği

Windows açılırken programınızın otomatik olarak başlatılıp başlatılmamasını nasıl ayarlarsınız. İşte size güzel bir örnek kod.Formunuza CheckBox Ekleyin ve adını Autorun yapın ( veya ne isterseniz.) ve formun Close Olayına Aşağıdaki kodları yazın.

procedure Tfilesetup.FormClose(Sender: TObject; var Action: TCloseAction);
var
AppExe :string;
begin
if autorun.Checked=true then begin
with TRegistry.Create do
try
RootKey := HKEY_CURRENT_USER;
if OpenKey ('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', true) then
AppExe:=#34+Application.Exename+#34;
WriteString('Proton', AppExe);
finally
end;
end;
//DeleteValue('Proton'); İse Programınız Registry den Siler
end;

Ekran Çözünürlüğünün Değiştirilmesi
Programınızdan ekran çözünürlüğünü değiştirmek isterseniz yararlı bir kod.

{Ekran Çözünürlüğü Örneği-PC'nizin Mevcut Ekran Ayarları}
// AnaForm üzerine ListBox1 ve Button1 bileşenlerini yerleştirin
{Ana formun OnCreate olayı}
procedure TForm1.FormCreate(Sender: TObject);
var
i : Integer;
DevMode : TDevMode;
begin
Button1.Enabled:=False;
i := 0;
while EnumDisplaySettings(nil,i,Devmode) do begin
with Devmode do
ListBox1.Items.Add(Format('%dx%d %d Colors',[dmPelsWidth,dmPelsHeight,1 shl dmBitsperPel]));
Inc(i);
end;
end;
{ListBox1'in Onclick olayı}
procedure TForm1.ListBox1Click(Sender: TObject);
// Listede istenilen çözünürlük değeri seçildiğinde Button1'de kullanır hale getir
begin
Button1.Enabled := Listbox1.ItemIndex >= 0;
end;
procedure TForm1.Button1Click(Sender: TObject);
// Seçilen çözünürlük değerini değerini uygula
var
DevMode : TDevMode;
begin
EnumDisplaySettings(nil,Listbox1.ItemIndex,Devmode );
ChangeDisplaySettings(DevMode,0);
end;
Ekran çözünürlüğünün ekran tarafından desteklenmeyen değerlere ayarlanması ekranınızın bozulmasına neden olabilir.


Mouse'un Sağ Tuşuna Kullanmak
Mouse'un sağ tuşunun kullanımını anlatan küçük bir kod.

//bu örnekte form üzerinde mouse'un sağ tuşuna basılınca merhaba yazan bir mesaj çıkar
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if ssright in shift then begin
MessageDlg('Merhaba', mtInformation, [mbOk], 0);
end;
end;

Varsayılan Browser ile Web Adresi Açmak

Programınızdan herhangi bir internet adresini açmak ister misiniz?
Aşağıdaki kodu girmeden önce programın uses komut satırına "Shellapi" tanımını girmelisiniz.

ShellExecute(0, nil, 'Linklerin Görülmesine Izin Verilmiyor
Register or Login', nil, nil, SW_SHOWDEFAULT);

Sayıları Formatlı Yazdırmak

Eğer bir ticari program yazıyorsanız, veritabanında bulunmayan bir alanda para ya da benzeri cinsten bir büyüklük göstermek istiyorsanız, ve müşteriniz sizden rahat okuma talep etmişse aşağıdaki kod işinizi görecektir.

procedure TForm1.Button1Click(Sender: TObject);
var
a,i:integer;
s:string;
begin
s:=Edit1.Text;
i:=length(s);
if pos(',',s) <>0 then exit;
for a:=1 to i-1 do if (a mod 3)=0 then insert(',',s,i-a+1);
Edit1.text:=s;
end;

Final Diyaloğunu Açıp Kapatmak

Find diyalog penceresini açıp kapatan bir kod.

H:=FindWindow(PChar('#32770'),Nil); // #32770 Find diyalog'un sınıf adıdır.
If H = 0 Then // eğer Find diyalog'u açık değilse onu aç...
Begin
With dd1 Do
Begin
ConnectMode:=ddeManual;
ServiceApplication:='explorer.exe';
SetLink('Folders','AppProperties');
OpenLink;
ExecuteMacro('[FindFolder(,C:\Dene)]',False);
CloseLink;
End;
H:=FindWindow(PChar('#32770'),Nil);
End;
ShowMessage('Find File Dialogunu gizle...!!');
ShowWindow(H,SW_HIDE);
ShowMessage('Find File Dialogunu göster...!!');
ShowWindow(H,SW_SHOW);

Ana Formunuzu Gizleyin

Programınız çalıştığında Ana Formunuzun görünmesini istemiyor musunuz? Çok kolay aşağıdaki kodu projenize ekleyin.

program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.RES}
begin
Application.Initialize;
Application.ShowMainForm := False;
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
Logged

Linklerin Görülmesine Izin Verilmiyor
Register or Login
" Hjsplit Programı Resimli anlatım " - .001 .002 .003 Uzantılı İndirdiğiniz Dosyaları Birleştirmek için Tıklayın


Ulaşmak İstediğiniz Konu İçin Forumda Arama Yapınız

Alıntı Olarak Verilen Filmlerde Mağdur Olmamanız İçin İlk Partı İndirip, Kalite ve Şifre Kontrolunu Yapınız.
static_reactor
Administrator
*

Puan: 1115
Çevrimdışı Çevrimdışı

Cinsiyet: Bay
Mesaj Sayısı: 42.592



WWW
« Yanıtla #5 : 25 Şubat 2010, 17:34:51 »

WİNDOWS API

Belgeler menüsüne bir dosya ekleme
uses kısmına ShlOBJ unitini ekleyin;

procedure TForm1.Button1Click(Sender: TObject);
var
s : string;
begin
s := 'C:\DownLoad\deneme.html';
SHAddToRecentDocs(SHARD_PATH, pChar(s));
end;

Belgeler menüsünü temizleme

uses kısmına ShlOBJ unitini ekleyin;
SHAddToRecentDocs(SHARD_PATH, nil);

Duvar kağıdını değiştirmek

var
s: string;
begin
s := 'c:\windows\athena.bmp';
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, PChar(s),0);

Başlat butonunu gizlemek veya kullanılmaz hale getirmek

procedure TForm1.Button1Click(Sender: TObject);
var
Rgn : hRgn;
begin
// Başlat butonunu gizle
Rgn := CreateRectRgn(0, 0, 0, 0);
SetWindowRgn(FindWindowEx(FindWindow('Shell_TrayWn d', nil),
0,
'Button',
nil),
Rgn,
true);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
//Gizlenen Başlat butonunu eski haline döndürmek için
SetWindowRgn(FindWindowEx(FindWindow('Shell_TrayWn d', nil),
0,
'Button',
nil),
0,
true);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
//Başlat butonunu kullanılmaz yap
EnableWindow(FindWindowEx(FindWindow('Shell_TrayWn d', nil),
0,
'Button',
nil),
false);
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
//Kullanılmaz yapılan Başlat butonunu eski haline getirmek için
EnableWindow(FindWindowEx(FindWindow('Shell_TrayWn d', nil),
0,
'Button',
nil),
true);
end;

Bir programın çalıştırılması

WinExec('c:\windows\calc.exe',sw_show);
WinExec('C:\WINDOWS\NOTEPAD.EXE C:\WINDOWS\WIN.INI', SW_SHOWNORMAL);
WinExec('COMMAND.COM', SW_SHOWNORMAL);
WinExec('COMMAND.COM /C DIR *.*', SW_SHOWNORMAL);

Harddiskin seri numarasının bulunması

procedure TForm1.Button1Click(Sender: TObject);
var
VolumeSerialNumber : DWORD;
MaximumComponentLength : DWORD;
FileSystemFlags : DWORD;
SerialNumber : string;
begin
GetVolumeInformation('C:\',
nil,
0,
@VolumeSerialNumber,
MaximumComponentLength,
FileSystemFlags,
nil,
0);
SerialNumber := IntToHex(HiWord(VolumeSerialNumber), 4) + '-' +
IntToHex(LoWord(VolumeSerialNumber), 4);
Memo1.Lines.Add(SerialNumber);
end;

Windows ve System klasörlerinin bulunması

procedure TForm1.Button1Click(Sender: TObject);
var
a : Array[0..144] of char;
begin
GetWindowsDirectory(a, sizeof(a));
ShowMessage(StrPas(a));
GetSystemDirectory(a, sizeof(a));
ShowMessage(StrPas(a));
end;

Windows lisans bilgilerinin (isim ve şirket) bulunması
uses kısmına Registry unitini ekleyin;

procedure TForm1.Button1Click(Sender:TObject);
var
reg: TRegIniFile;
begin
reg := TRegIniFile.create('SOFTWARE\MICROSOFT\MS SETUP (ACME)\');
Memo1.Lines.Add(reg.ReadString('USER INFO',
'DefName',
'Mustafa ŞİMŞEK'));
Memo1.Lines.Add(reg.ReadString('USER INFO',
'DefCompany',
'Bilgisayar Bilimleri Müh.'));
reg.free;
end;

Speakerdan Beep sesi çıkartma

MessageBeep(word(-1));

Bir Denetim Masası uygulamasını çalıştırmak

Control Panel uygulamaları Windows\System klasörü altında bulunur. *.CPL uzantılı dosyalardır. Bu uygulamaları Control.Exe programı ile çalıştırabilirsiniz. Bazı Control Panel uygulamaları Windows\System klasöründe bulunmaz. Bunların ismini vererek çalıştırabilirsiniz.

WinExec('C:\WINDOWS\CONTROL.EXE TIMEDATE.CPL', sw_ShowNormal);
WinExec('C:\WINDOWS\CONTROL.EXE MOUSE', sw_ShowNormal);
WinExec('C:\WINDOWS\CONTROL.EXE PRINTERS', sw_ShowNormal);

Windows'u kapatmak veya yeniden başlatmak(reboot)

ExitWindowsEx(EWX_SHUTDOWN,0); //yeniden başlatmak için EWX_REBOOT

Ekran koruyucusunu kapatmak ve açmak
//kapatmak için

SystemParametersInfo(SPI_SETSCREENSAVEACTIVE,
0,
nil,
0);
//açmak için
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE,
1,
nil,
0);

Ekran kartım kaç rengi destekliyor
Ekran kartınızın kaç rengi desteklediğini aşağıdaki kodla bulabilirsiniz.

(1 shl (GetDeviceCaps(Form1.Canvas.Handle, BITSPIXEL) *
GetDeviceCaps(Form1.Canvas.Handle, PLANES)));

Windows Gezginini istediğiniz bir klasörle açma
uses kısmına ShellApi unitini ekleyin.

ShellExecute(0,
'explore',
'C:\WINDOWS', //buraya açmak istediğiniz klasörü yazın.
nil,
nil,
SW_SHOWNORMAL);

Windows'un Bul (Find File) diyalog penceresini istediğiniz bir klasörle açma
Windows'ta Başlat->Bul->Dosyalar ve Klasörler ile açtığınız Bul diyalog penceresini Delphi içerisinden hem de istediğiniz yolu vererek çalıştırabilirsiniz.
uses kısmına ddeman unitini ekleyin.

procedure TForm1.Button1Click(Sender: TObject);
begin
with TDDEClientConv.Create(Self) do begin
ConnectMode := ddeManual;
ServiceApplication := 'explorer.exe';
SetLink( 'Folders', 'AppProperties');
OpenLink;
ExecuteMacro('[FindFolder(, C:\DOWNLOAD)]', False); //diyalog açıldığında konum kısmında
CloseLink; //olmasını istediğiniz klasör.
Free;
end;
end;

Pencerenin kapatma düğmesini etkisiz hale getirme
Pencerenin başlık çubuğunda bulunan kapatma düğmesini (X) etkisiz hale getirebilirsiniz. Aynı zamanda sistem menüsündeki Kapat(Close) seçeneğide kaybolur. Bunun için aşağıdaki gibi bir kod yazmalısınız.

procedure TForm1.Button1Click(Sender: TObject);
var
hwndHandle : THANDLE;
hMenuHandle : HMENU;
begin
hwndHandle := FindWindow(nil, 'Form1'); //Form1 pencerenin başlığını göstermektedir.
if (hwndHandle <> 0) then begin //Burayı uygulamanıza göre değiştirin
hMenuHandle := GetSystemMenu(hwndHandle, FALSE);
if (hMenuHandle <> 0) then
DeleteMenu(hMenuHandle, SC_CLOSE, MF_BYCOMMAND);
end;
end;

Uygulamam Windows her açıldığında otomatik çalışsın
uses kısmına Registry unitini ekleyin.

{$IFNDEF WIN32}
const MAX_PATH = 144;
{$ENDIF}

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', uygulamanızın_yolu_ve_adı);
reg.CloseKey;
reg.free;
end;

Klasöre Gözat diyalogunu kullanarak bir klasörü seçme
uses kısmına ShellAPI ve ShlObj unitlerini ekleyin.

procedure TForm1.Button1Click(Sender: TObject);
var
TitleName : string;
lpItemID : PItemIDList;
BrowseInfo : TBrowseInfo;
DisplayName : array[0..MAX_PATH] of char;
TempPath : array[0..MAX_PATH] of char;
begin
FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
BrowseInfo.hwndOwner := Form1.Handle;
BrowseInfo.pszDisplayName := @DisplayName;
TitleName := 'Lütfen bir klasör seçin';
BrowseInfo.lpszTitle := PChar(TitleName);
BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS;
lpItemID := SHBrowseForFolder(BrowseInfo);
if lpItemId <> nil then begin
SHGetPathFromIDList(lpItemID, TempPath);
ShowMessage(TempPath);
GlobalFreePtr(lpItemID);
end;
end;

Bir web adresini açma

uses kısmına Shellapi unitini ekleyin;
ShellExecute(Handle,
'open',
'Linklerin Görülmesine Izin Verilmiyor
Register or Login',
nil,
nil,
sw_ShowMaximized);

Bir DOS programını çalıştırma ve çalışması bitince penceresini kapatma

WinExec('command.com /c progdos.exe',sw_ShowNormal); //progdos.exe çalıştırılıyor.
(* eğer ikinci paremetreyi sw_Hide yaparsanız kullanıcı programın çalıştığını görmez. *)

Alt + Tab ve Ctrl + Esc tuşlarının kullanılmaz hale getirilmesi

var
OldVal : LongInt;
begin
SystemParametersInfo (97, Word (True), @OldVal, 0)
(* Word(False) ile kullanırsanız tuşları tekrar kullanabilirsiniz. *)

Bir menü öğesine resim ekleme

procedure TForm1.FormCreate(Sender: TObject);
var
Bmp1 : TPicture;
begin
Bmp1 := TPicture.Create;
Bmp1.LoadFromFile('c:\deneme\turkey.bmp');
SetMenuItemBitmaps( deneme1.Handle,
0,
MF_BYPOSITION,
Bmp1.Bitmap.Handle,
Bmp1.Bitmap.Handle);
end;

Ağ ortamında makinenin ismini bulma

procedure TForm1.Button1Click(Sender: TObject);
var
Makine_ismi:array[0..255] of char;
BufferSizeWORD;
begin
BufferSize:=SizeOf(Makine_ismi);
GetComputerName(@Makine_ismi,BufferSize);
Showmessage(Makine_ismi);
end;

Ağ ortamında login olmuş kullanıcı ismini bulma

procedure TForm1.Button1Click(Sender: TObject);
var
Kullanici_ismi:array[0..255] of char;
BufferSizeWORD;
begin
BufferSize:=SizeOf(Kullanici_ismi);
GetUserName(@Kullanici_ismi,BufferSize);
Showmessage(Kullanici_ismi);
end;

Ekran çözünürlüğünü nasıl öğrenirim

Screen.Width //yatay çözünürlük
Screen.Height //dikey çözünürlük
MessageDlg('Şu anda ' + IntToStr( Screen.Width ) +' x '+
IntToStr( Screen.Height )+' çözünürlükte çalışıyorsunuz',
mtInformation, [mbOk], 0 );

Taskbar'ın (Görev çubuğu) AutoHide özelliği açık mı, kapalı mı?
uses kısmına ShellAPI unitini ekleyin.

procedure TForm1.Button1Click(Sender: TObject);
var
ABData : TAppBarData;
begin
ABData.cbSize := sizeof(ABData);
if (SHAppBarMessage(ABM_GETSTATE, ABData) and ABS_AUTOHIDE) > 0 then
Showmessage('Autohide özelliği açık');
end;

Programım biraz beklesin
Bazı işlemlerden sonra diğer bir işlemi çalıştırmadan önce bir süre beklemek istersiniz. Bu gibi durumlarda Sleep komutunu kullanabilirsiniz. Burada verilen değer milisaniye cinsindendir. (1 saniye=1000 milisaniye)

Sleep(10000) //10 saniye bekler

Caps lock tuşu açık mı, kapalı mı?

if (GetKeyState(VK_CAPITAL) and $01)<>0 then
Showmessage ('caps lock açık');

İmleci (cursor) gizleyip, tekrar gösterme

ShowCursor(False) //imleci gizler
ShowCursor(True) //imleci tekrardan gösterir.

Ekran görüntüsünü alın

procedure TForm1.Button1Click(Sender: TObject);
var
DCDesk: HDC;
begin
DCDesk:=GetWindowDC(GetDesktopWindow);
BitBlt(Form1.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,DCDesk, 0, 0,SRCCOPY);
ReleaseDC(GetDesktopWindow, DCDesk);
end;

Not: Yukarıdaki kod ekran görünütüsünü form üstüne alır. Image bileşeni içine ekran görüntüsünü almak için form üzerine bir image bileşeni yerleştirin ve Form1.Canvas.Handle yerine Image1.Canvas.Handle yazın.

Map Network Drive diyalogunu açma
WNetConnectionDialog ( 0, RESOURCETYPE_DISK );

Bir dosyayı bağlantılı olduğu uygulama ile açma
uses kısmına shellapi unitini ekleyin.
shellexecute(0,'open', 'c:\test\2.avi',",",SW_NORMAL);

Temp klasörünü bulma
procedure TForm1.Button1Click(Sender: TObject);
var
temp_klasor: array[0..MAX_PATH] of char;
begin
GetTempPath(SizeOf(temp_klasor), @temp_klasor);
ShowMessage(temp_klasor);
end;

Ekran koruyucuyu çalıştırmak
PostMessage(GetDesktopWindow, WM_SYSCOMMAND, SC_SCREENSAVE, 0);

Güç koruma modunda (Power Safe Mode) çalışan monitörü kapatıp açma
Monitörü kapatmak için :
SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 0);
Monitörü açmak için :
SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, -1);

Windows Tarih/Saat Özellikleri (Date/Time Properties) iletişim kutusunu açma
Winexec('Control.exe Date/Time',sw_shownormal);
Logged

Linklerin Görülmesine Izin Verilmiyor
Register or Login
" Hjsplit Programı Resimli anlatım " - .001 .002 .003 Uzantılı İndirdiğiniz Dosyaları Birleştirmek için Tıklayın


Ulaşmak İstediğiniz Konu İçin Forumda Arama Yapınız

Alıntı Olarak Verilen Filmlerde Mağdur Olmamanız İçin İlk Partı İndirip, Kalite ve Şifre Kontrolunu Yapınız.
static_reactor
Administrator
*

Puan: 1115
Çevrimdışı Çevrimdışı

Cinsiyet: Bay
Mesaj Sayısı: 42.592



WWW
« Yanıtla #6 : 25 Şubat 2010, 17:35:31 »

DLL Uygulaması
Selamlar ;
Bir aksaklık olmazsa bundan böyle Delphi çerçevesinde programcılık hakkında yazılarımla, sizlerle olacağım. Yani yazılarımız Delphi üzerine olmasına karşın, programcılığa da değineceğiz.
İlk cümlem bu olmadı ama şunu da dikkate almanızı dilerim, Delphi de uzman bir programcı değilim, Delphi’nin ne kadarını bildiğimi de bilmiyorum, Programcılıkta ne seviye de olduğumuda onun için bir şey iddia etmiyorum, bilgiyi paylaşalım diyorum.
Ben Delphi’ye yavaşça girecektim ama arkadaşlarla yaptığımız tartışmalarda, direk uygulama yazmaya karar verdim (Aslında arkadaşlar haklı, ben de haklıyım ama onlar daha haklı). Yani herkesin Delphi’yi kullanmayı bildiği ve birçok kavrama aşina olduğu varsayılarak yazılarımı yazacağım.
İlk uygulamamız DLL uygulaması olsun, ama sonuna kadar da incelemeden bırakmayalım. Her bi saçma gelen ayrıntıyı bile inceliyelim.
Di-El-El, nedir DLL, sizler için gittim olayi M$ fabrikasında inceledim, Amerikalıların icad ettiği ve bütün dünyadan da kabul gören (çok da iyi bir şey) kısatmalardan bir tanesi, hemen açalım yoksa anlayamıyacaz olayı; Dynamic Link Library (Dinamik Bağlantılı Kütüphaneler) bi sorunumuz var tabii açılmışı da açmak gerekiyor. Onu da açıklarsak Dinamik, hareket halinde olan, enerjik faal, durağan olmayan anlamlarına geliyor. Link te bildiğimiz bağlantı. Birleştirelim, Bağlantısı durağan olması gerekmeyen, dilediğimiz zaman bağlanıp işimiz bittikten sonra kopabileceğimiz kütüphane oluyor, Di-El-El. DLL lerin rutinleri başka programlar tarafından çağrılabilir ve programa derleme sırasında bağlanmazlar, program çalışırken istediğimiz bir anda DLL’e iş yaptırabilir.
DLL sayesinde bir çok program tarafından kullanılan işlemler tekbir DLL de bir sefer yazılabilir ve tüm programlar diledikleri anda DLL’e bu işleri yaptırabilirler, böylece fazla kodlamadan ve kargaşadan kurtulunmuş olur. Windows’un DLL ler üzerine kurulmuş olduğunu, ve DLL’in windows için herşey gibi bir şey olduğunu söylesem yalan olmaz. Bunu dikkate alın ve DLL ruhunu kavrarsanız Windows’a hakim olmaya başlıyorsunuz demektir. Hadi başlayalım.
Öncelikle Delphi nasıl DLL yapar ?
Delphi bir yazıyı derlemeden önce ilk satırı olan,
Program Project1;
Library Project1;
Unit Project1;
Gibi satırlara bakarak ona göre derleme yapar, zeki olanlar hemen anladılar tabii. Evet Bir DLL yapmak için
1-) Delphi’yi açalım, her zamanki gibi New Application diyelim bize Form ve Üzerinde Unit Unit1; yazılı kod penceremiz gelecektir. View ve Project Source dediğimizde bize Unit1 den başka ile düzey yazılarımızda da kullandığımz Proje kodları gelir. Burada
program Project1; ve diğer kodlaro göreceksiniz. program Project1; yazısının yerine Library Project1; yazarsanız ve Derlerseniz programınızın Exe değil DLL uzantısı ile derlendiğini göreceksiniz. İşte bir DLL yaptınız.
2-) Delphi’yi açalım sadece New diyelim, karşımıza Yeni oluşturabileceğimiz bir çok şey çıkacaktır biz şimdilik bunlardan DLL ile ilgilendiğimiz için DLL’i seçin (soldan 4.cü). Proje kod ekranı karşımıza çıkıyor save as deyip kaydedelim ve yine bir DLL oluşturdunuz.
Şimdi, oluşturduğumuz DLL ler hiçbir şey yapmıyor sadece oluşturmayı öğrendik. DLL’in içine ne yazarız ne yapabiliriz buna bakalım.
Baştan başlayalım, Delphi deyiz, New, ve oradan DLL yi seçelim. Kod pencersindeyiz.

library Project1;
uses
SysUtils,
Classes;
begin
end.
Yazıyor.
library Project1;
uses
SysUtils,
Classes;
function trscene:integer;export;
begin
result:=9;

KODLAR

Dosya Kopyalama (1)

Procedure FileCopy( Const sourcefilename, targetfilename: String );
Var
S, T: TFileStream;
Begin
S := TFileStream.Create( sourcefilename, fmOpenRead );
try
T := TFileStream.Create( targetfilename,
fmOpenWrite or fmCreate );
try
T.CopyFrom(S, S.Size ) ;
finally
T.Free;
end;
finally
S.Free;
end;
End;

DOSYA KOPYALAMA 2

procedure FileCopy(const FromFile, ToFile: string);
var
FromF, ToF: file;
NumRead, NumWritten: Word;
Buf: array[1..2048] of Char;
begin
AssignFile(FromF, FromFile);
Reset(FromF, 1); { Record size = 1 }
AssignFile(ToF, ToFile); { Open output file }
Rewrite(ToF, 1); { Record size = 1 }
repeat
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
BlockWrite(ToF, Buf, NumRead, NumWritten);
until (NumRead = 0) or (NumWritten <> NumRead);
CloseFile(FromF);
CloseFile(ToF);
end;

Dosya Kopyalama (3)

procedure CopyFile(FromFileName, ToFileName: string);
var
FromFile, ToFile: File;
begin
AssignFile(FromFile, FromFileName); { Assign FromFile to FromFileName }
AssignFile(ToFile, ToFileName); { Assign ToFile to ToFileName }
Reset(FromFile); { Open file for input }
try
Rewrite(ToFile); { Create file for output }
try
if LZCopy(TFileRec(FromFile).Handle, TFileRec(ToFile).Handle) < 0
then
raise EInOutError.Create('Error using LZCopy')
finally
CloseFile(ToFile); { Close ToFile }
end;
finally
CloseFile(FromFile); { Close FromFile }
end;
end;

Directory Adı değiştirme

SysUtils unitesinin içindeki RenameFile function bu işi görmektedir.

Treeview componentinin durumunu kaydetme ve gösterme
Kaydetmek için

TreeView.SaveToFile('Dosya.adı');
Dosyayı açmak için
TreeView.LoadFromFile('Dosya.adı');
Dosyayı yanlızca okumak (read only) şeklinde açma
AssignFile(F, Dosya);
FileMode := 0; (read only modunda açmak}
Reset(F);
CloseFile(F);

Açılan dosyanın tarih ve zamanını ayarlamak

var
f: file;
begin
Assign(f, DirInfo.Name);
Reset(f);
SetFTime(f, Time);
Close(f);
end;
Deltree
{$I-} {$I+}
procedure delTree (DirName: string);
var
FileSearch: SearchRec;
begin
chDir (DirName);
FindFirst ('*.*', Directory, FileSearch);
while (DosError = 0) do begin
if (FileSearch.name <> '.') AND (FileSearch.name <> '..') AND
( (FileSearch.attr AND Directory) <> 0)
then begin
if DirName[length(DirName)] = '\' then
delTree (DirName+FileSearch.Name)
else
delTree (DirName+'\'+FileSearch.Name);
ChDir (DirName);
end;
FindNext (FileSearch)
end;

FindFirst ('*.*', AnyFile, FileSearch);
while (DosError = 0) do begin
if (FileSearch.name <> '.') AND (FileSearch.name <> '..') then
Remove (workdir);
end;
FindNext (FileSearch)
end;
rmDir (DirName)
end;

Dbgrid'de (Ctrl-Del diyince) dosya silmesini engelleme

if (ssctrl in shift) and (key=vk_delete) then
begin
key:=0;
end;

String'i renk'e renk'i stringe çevirme

Uses graphics;
form1.Color:=stringtocolor('121');
label1.caption:= ColorToString(form1.color);

Mouse'un yerini değiştirmek

randomize;
SetCursorPos(random(100),random(100));
ComboBox'ın aşağıya listelemesinin farklı bir yolu (DropComboBox)
SendMessage(ComboBox1.handle , 1039, 1, 0);

Başlığı Gizlemek ve Göstermek

Procedure HideTitlebar;
Var
Save : LongInt;
Begin
If form1.BorderStyle=bsNone then Exit;
Save:=GetWindowLong(form1.Handle,gwl_Style);
If (Save and ws_Caption)=ws_Caption then Begin
Case form1.BorderStyle of
bsSingle,
bsSizeable : SetWindowLong(form1.Handle,gwl_Style,Save and
(Not(ws_Caption)) or ws_border);
bsDialog : SetWindowLong(form1.Handle,gwl_Style,Save and
(Not(ws_Caption)) or ds_modalframe or ws_dlgframe);
End;
form1.Height:=form1.Height-getSystemMetrics(sm_cyCaption);
form1.Refresh;
End;
end;
Procedure ShowTitlebar;
Var
Save : LongInt;
begin
If form1.BorderStyle=bsNone then Exit;
Save:=GetWindowLong(form1.Handle,gwl_Style);
If (Save and ws_Caption)<>ws_Caption then Begin
Case form1.BorderStyle of
bsSingle,
cLabel1.Caption := 'Control'
else
if HiWord(GetKeyState(VK_MENU)) <> 0 then
Label1.Caption := 'Alt'
else
Label1.Caption := 'None';
end;

Formu taskbardan gizleme

ShowWindow(Application.Handle, SW_HIDE);

Silinmiş Dosyaları gösterme (DBF);

type
TForm1 = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
CheckBox1: TCheckBox;
procedure CheckBox1Click(Sender: TObject);
public
procedure ShowDeleted(Table: TTable; ShowDeleted: Boolean);
end;
var
Form1: TForm1;
implementation
uses DBITYPES, DBIERRS, DBIPROCS;
{$R *.DFM}
procedure TForm1.ShowDeleted(Table: TTable; ShowDeleted: Boolean);
var
rslt: DBIResult;
szErrMsg: DBIMSG;
begin
Table.DisableControls;
try
Check(DbiSetProp(hDBIObj(Table.Handle), curSOFTDELETEON,
LongInt(ShowDeleted)));
finally
Table.EnableControls;
end;
Table.Refresh;
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
ShowDeleted(Table1, CheckBox1.Checked);
end;
end.

Form hakkında kısa bilgi

Form1.Show; {Formu göster}
Form1.Showmodal { Formu showmodal olarak göster (Showmodal iken başka hiçbir forma ulaşılamaz) }
myForm.Hide; {Formu gizle }
myForm.Free; {Formu sil }

Formu şeffaf hale getirilmesi

OnCreate olayına Brush.Style:=bsClear; yazmanız yeterli.
ESC tuşuyla programdan çıkma
OnKeyPress olayına if Key = #27 then halt; yazın.

Bir Resim Dosyası Açıp İçine Çizim Yapma

var
Resim: TBitmap;

Resim := TBitmap.Create;
with Resim do
try
Width := 100;
Height := 100;
with Canvas do
begin
Rectangle(0, 0, 100, 100);
MoveTo(0, 0);
LineTo(100, 100);
MoveTo(0, 100);
LineTo(100, 0);
end;
SaveToFile('test.bmp')
finally
Free;
end;
Asla Yazı Kutusundan Çıkamazsın
procedure TForm1.Edit1Exit(Sender: TObject);
begin
showmessage('Asla yazı kutusundan çıkamassın');
postmessage(handle,WM_NEXTDLGCTL,0,0);
postmessage(handle,WM_NEXTDLGCTL,1,0);
end;

Formun Boyutlarını Sabitleme

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
TForm1 = class(TForm)
private
{ Private declarations }
public
procedure WMGetMinMaxInfo( var Message :TWMGetMinMaxInfo ); message WM_GETMINMAXINFO;
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMGetMinMaxInfo( var Message :TWMGetMinMaxInfo );
begin
with Message.MinMaxInfo^ do
begin
ptMaxSize.X := 200;
ptMaxSize.Y := 200;
ptMaxPosition.X := 99;
ptMaxPosition.Y := 99;
ptMinTrackSize.X := 100;
ptMinTrackSize.Y := 100;
ptMaxTrackSize.X := 300;
ptMaxTrackSize.Y := 300;
end;
Message.Result := 0;
inherited;
end;

end.

Windows'a True Type Font Ekleme

uses Registry;
procedure TForm1.Button1Click(Sender: TObject);
var
reg: TRegistry;
b : bool;
begin CopyFile('C:\DOWNLOAD\FP000100.TTF', 'C:\WINDOWS\FONTS\FP000100.TTF', b);
reg := TRegistry.Create; reg.RootKey := HKEY_LOCAL_MACHINE;
reg.LazyWrite := false; reg.OpenKey('Software\Microsoft\Windows\CurrentVer sion\Fonts', false); reg.WriteString('TESTMICR (TrueType)','FP000100.TTF');
reg.CloseKey; reg.free;
AddFontResource('c:\windows\fonts\FP000100.TTF'); SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
RemoveFontResource('c:\windows\fonts\FP000100.TTF' ); SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
end;

Dosya Taşıma

MoveFile('C:\Source\sourcefile.txt', 'C:\Dest\destfile.txt');

Trim Fonksiyonunun açılımı

unit StrFunc;
interface
procedure LTrim(var s : string);
procedure RTrim(var s : string)
;procedure Trim(var s : string);
implementation
{$R *.DFM}
procedure LTrim(var s : string);
begin
while ((length(s) > 0) and (s[1] = #32)) do Delete(s, 1, 1);
end;
procedure RTrim(var s : string);
begin
while ((length(s) > 0) and (s[Length(s)] = #32)) do Delete(s, Length(s), 1);
end;
procedure Trim(var s : string);
begin
LTrim(s); RTrim(s);
end;

Screen Capture Programı (Ekran Çalma)
Bir tane image componenti eklemek zorundasınız.

procedure TForm1.FormCreate(Sender: TObject);
var
DCDesk: HDC;
begin
DCDesk:=GetWindowDC(GetDesktopWindow);
BitBlt(Image1.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,DCDesk, 0, 0,SRCCOPY);
ReleaseDC(GetDesktopWindow, DCDesk);
end;

Sağa yada Sola hizalama function'u

function hiza(sagsol,yer:string;sayi:integer):string;
var
i,bosluk,uzunluk:integer;
begin
trim(yer); //Boşlukları temizle
uzunluk:=length(yer); //Verilen stringin uzunluğunu öğren
bosluk:=sayi-uzunluk; //Verilen sayıdan uzunluğu çıkar
if sagsol='sag' then begin //Sağamı solamı yaslancağını öğren
for i:=1 to bosluk do begin //Fark kadar sağa boşluk ekle
yer:=' '+yer; //Boşluk ekle
end;
result:=yer; //Sonucu bildir
exit;
end;
if sagsol='sol' then
begin
trim(yer);
for i:=1 to bosluk do begin //Fark kadar sola ekle
yer:=yer+' ';
end;
result:=yer; //Sonucu bildir
exit;
end;

Sayıyı virgüllü yazma functionu
Bunun için forma birtana label componenti yerleştirin ve visible özeliğini false yapın.

function frmt(yer:string):string;
var
s:string;
uzunluk:integer;
kalan,k,dgr:integer;
begin
s:='.';
uzunluk:=Length(yer);
dgr:=uzunluk div 3;
kalan:=uzunluk - (dgr*3);
label1.caption:=inttostr(kalan);
if yer='0' then
begin
yer:='0,';
result:=yer;
exit;
end;
if label1.caption<>'0' then
begin
insert(s,yer,kalan+1);
for k:=1 to dgr do begin
if k=dgr then begin
insert(',',yer,(kalan +(k*3)+k+1));
result:=yer;
exit;
end;
insert(s,yer,(kalan +(k*3)+k+1));
end;
end;

Comp değerindeki bir sayıyı string yapma

function Comp2Str(N: Comp): String;
var
TS: String;
begin
Str(N:0:0, TS);Comp2Str := TS;
end;

Dosya açılış yolları

Windows programının açılışı
WinExec('C:\WINDOWS\NOTEPAD.EXE', SW_SHOWNORMAL);

Komut satırı ile birlikte :
WinExec('C:\WINDOWS\NOTEPAD.EXE C:\WINDOWS\WIN.INI', SW_SHOWNORMAL);

Pop Up dos kutusuyla :
WinExec('COMMAND.COM', SW_SHOWNORMAL);

Normal bir dos programının komutla açılışı
WinExec('COMMAND.COM /C DIR *.*', SW_SHOWNORMAL);

Dekstop'ı refresh etmek

procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage(FindWindow('Progman', 'Program Manager'), WM_COMMAND,$A065, 0);
end;

Programın windows'la birlikte açılması

uses Registry, {For Win32}
IniFiles; {For Win16}
{$IFNDEF WIN32}
const
MAX_PATH = 144;
{$ENDIF}
{For Win32}
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('My App', Application.ExeName);
reg.CloseKey;
reg.free;
end;

Formun ara çubuğunu gizleme

procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLong(Form1.Handle,GWL_STYLE,GetWindowLong (Handle,GWL_STYLE) and not WS_CAPTION);
Height := ClientHeight;
end;

Flash icon

var Flash : bool;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
FlashWindow(Form1.Handle, Flash);
FlashWindow(Application.Handle, Flash); Flash := not Flash;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Flash := False;
end;
Taskbar'ın handle sayısı
hTaskbar := FindWindow('Shell_TrayWnd', Nil );
Logged

Linklerin Görülmesine Izin Verilmiyor
Register or Login
" Hjsplit Programı Resimli anlatım " - .001 .002 .003 Uzantılı İndirdiğiniz Dosyaları Birleştirmek için Tıklayın


Ulaşmak İstediğiniz Konu İçin Forumda Arama Yapınız

Alıntı Olarak Verilen Filmlerde Mağdur Olmamanız İçin İlk Partı İndirip, Kalite ve Şifre Kontrolunu Yapınız.
Sayfa: [1]
  Yazdır  
 
Gitmek istediğiniz yer:  

Benzer Konular
Konu Başlığı Başlatan Yanıtlar Görüntülenme Son Mesaj
Kaspersky Aktivasyon Kodları Antivirüs | Güvenlik | Bakım | Onarım static_reactor 0 29 Son Mesaj 02 Mayıs 2009, 21:49:39
Gönderen: static_reactor
delphi 7 egitim seti İstek Şikayet fernilu 2 320 Son Mesaj 12 Haziran 2010, 14:09:26
Gönderen: static_reactor
Delphi De Dosya Arama Fonksiyonları Programlama static_reactor 0 30 Son Mesaj 12 Eylül 2009, 17:59:36
Gönderen: static_reactor
Delphi de Veritabanı Oluşturmak Programlama static_reactor 0 33 Son Mesaj 12 Eylül 2009, 18:04:32
Gönderen: static_reactor
Delphi′de TIniFile Ve TRegIniFile Bileşenleri Programlama static_reactor 0 41 Son Mesaj 12 Eylül 2009, 18:05:28
Gönderen: static_reactor
Delphi'ye Giriş Ve IDE Programlama static_reactor 1 41 Son Mesaj 13 Eylül 2009, 00:52:42
Gönderen: static_reactor
Delphi Görsel Eğitimleri / Delphi 8 (Delphi .net) ve .net framework / Seminer Eğitim Setleri static_reactor 0 104 Son Mesaj 24 Aralık 2009, 21:35:07
Gönderen: static_reactor
Arsiv
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000
Bilgisayar Oyunu
FilmSeyri | ArsiV
Powered by SMF 1.1.9 | SMF © 2006-2008, Simple Machines LLC | Sitemap

DynamicTR.Com Powered by ashkweb - static_reactor
Sitemap
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790