İyi günler. Okuma yazma bilmeden edebi eser yazmaya niyetlenmişsiniz anlaşılan.
. Delphi'nin kullandığı kod blokları hakkında biraz çalışma yapmanız gerekmektedir. Probleminizin çözüme kavuşması açısından bir kaç meseleye değinmek lazım.
unit xyz; //-->modülün isminin tanımlandığı satır
interface
//bu modülde tanımlı ama başka modüllerde de kullanıma açık olacak fonksiyon, prosedür ve sınıfların sadece tanımları, kod olmaz burada
uses ....;//başka modüllerde tanımlı ama kullanılmak istenen fonksiyon, prosedür, sınıf gibi hazır kütüphanelerin modül ismi. interface kod bloğunda yazılacak tanımlar için gerekli modüllerin ismi
implemetation
//interface bloğunda tanımlı fonksiyon, prosedür ve sınıfların kod blokları burada bulunur. Ayrıca gerek duyulursa ek olarak başka prosedür, fonksiyon ve sınıflar da eklenebilir
uses ...://interface bloğunda yazılmamış ama implemetation bloğu için lazım olan modüllerin isimlerinin listesi
end.//modülün sonu
yukarıdaki örnekten önce tanımlanan
IsWOW64 fonksiyonunu
implementation satırından sonra bir yerde yazın hatta
interface bloğunda da tanımlayın, daha sonra lazım olduğu zaman istediğiniz yerde örnekteki gibi kullanabilirsiniz.
Mesela projenizin
Unit1.pas dosyasında kodu yazdığınızı var sayarsak!
Kod: Tümünü seç
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
//bileşenler
//formlar
//v.s.
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
function IsWOW64: Boolean;
implementation
{$R *.dfm}
function IsWOW64: Boolean;
type TIsWow64Process = function(Handle: THandle;var Res: BOOL):BOOL;stdcall;
var
IsWow64Result: BOOL;
IsWow64Process: TIsWow64Process;
begin
IsWow64Process := GetProcAddress(GetModuleHandle('kernel32'), 'IsWow64Process');
if Assigned(IsWow64Process) then begin
if not IsWow64Process(GetCurrentProcess, IsWow64Result) then
raise Exception.Create('Geçersiz fonksiyon adresi!...');
Result := IsWow64Result;
end else Result := False;
end;
//bileşenler
//formlar
//v.s.
procedure TForm1.Button1Click(Sender: TObject);
begin
if IsWOW64 then begin
ShowMessage('64 bit Windows x64');
end else begin
ShowMessage('32 bit Windows x86');
end;
end;
end.
Burada önemli nokta, çağıracağınız fonksiyonun daha önceden muhakkak tanımlanmış olması şarttır. Eğer fonksiyonu tanımlamadan önce çağırırsanız, daha sonra tanımlanmış olması bir işe yaramayacaktır. Ayrıca temel bazı meselelerin üzerinde yeteri kadar çalışma yapmanız gerekmektedir. Henüz dört işlemi öğrenmeden denklem çözemezsiniz. Temel konuları iyice yerine oturtmanız gerekmektedir. İyi çalışmalar.