delphi Dns ve İp adresleri girme
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Re: delphi Dns ve İp adresleri girme
(1) NetCfgInstanceId'yi buldun, sonra ne yaptın ?
buldum ama yukarıdaki örnekte anlattıgn REG_SZ_MULT ve RegQueryValueEx() RegsetValueEx() komutlarını daha önce dedigim nasıl kullanacagımı bilmiyorum ben regedit bu şekilde okumuyorum o yüzndne bu komutların nasıl kullanıldıgını bilmiyorum bu yüznden sizden örnek istedim aşagıda regedit le çalıştıgım örnegi veriyorum ben bu şekilde regedit kullanıyorum
procedure TForm1.Button1Click(Sender: TObject);
var
deger:TRegistry;
altklasör:AnsiString;
begin
deger:=TRegistry.Create;
deger.RootKey:= HKEY_LOCAL_MACHINE;
altklasör:= 'SOFTWARE\Policies\Microsoft\Internet Explorer\Control Panel';
deger.OpenKey(altklasör,true);
deger.WriteString('HomePage','dword:00000000');
deger.CloseKey;
deger.RootKey:= HKEY_CURRENT_USER;
altklasör:= 'Software\Policies\Microsoft\Internet Explorer\Control Panel';
deger.OpenKey(altklasör,true);
deger.WriteString('HomePage','dword:00000000');
deger.CloseKey;
deger.RootKey:= HKEY_CURRENT_USER;
altklasör:= 'Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\LocalUser\Software\Policies\Microsoft\Internet Explorer\Control Panel';
deger.OpenKey(altklasör,true);
deger.WriteString('HomePage','dword:00000001');
deger.CloseKey;
deger.RootKey:= HKEY_CURRENT_USER;
altklasör:= 'Software\Microsoft\Windows\CurrentVersion\Policies\Explorer';
deger.OpenKey(altklasör,true);
deger.WriteString('NoSaveSettings','dword:00000000');
deger.CloseKey;
deger.RootKey:= HKEY_CURRENT_USER;
altklasör:= 'Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\LocalUser\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer';
deger.OpenKey(altklasör,true);
deger.WriteString('NoSaveSettings','dword:00000000');
deger.CloseKey;
deger.RootKey:= HKEY_CURRENT_USER;
altklasör:= 'Software\Microsoft\Internet Explorer\Main';
deger.OpenKey(altklasör,true);
deger.WriteString('Start Page',edit1.Text);
deger.CloseKey;
Application.MessageBox('Giriş sayfanız başarıyla degiştirilmiştir','Giriş Sayfasını Değiştirme',0);
WinExec('C:\Program Files\Internet Explorer\iexplore.exe',sw_show);
buldum ama yukarıdaki örnekte anlattıgn REG_SZ_MULT ve RegQueryValueEx() RegsetValueEx() komutlarını daha önce dedigim nasıl kullanacagımı bilmiyorum ben regedit bu şekilde okumuyorum o yüzndne bu komutların nasıl kullanıldıgını bilmiyorum bu yüznden sizden örnek istedim aşagıda regedit le çalıştıgım örnegi veriyorum ben bu şekilde regedit kullanıyorum
procedure TForm1.Button1Click(Sender: TObject);
var
deger:TRegistry;
altklasör:AnsiString;
begin
deger:=TRegistry.Create;
deger.RootKey:= HKEY_LOCAL_MACHINE;
altklasör:= 'SOFTWARE\Policies\Microsoft\Internet Explorer\Control Panel';
deger.OpenKey(altklasör,true);
deger.WriteString('HomePage','dword:00000000');
deger.CloseKey;
deger.RootKey:= HKEY_CURRENT_USER;
altklasör:= 'Software\Policies\Microsoft\Internet Explorer\Control Panel';
deger.OpenKey(altklasör,true);
deger.WriteString('HomePage','dword:00000000');
deger.CloseKey;
deger.RootKey:= HKEY_CURRENT_USER;
altklasör:= 'Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\LocalUser\Software\Policies\Microsoft\Internet Explorer\Control Panel';
deger.OpenKey(altklasör,true);
deger.WriteString('HomePage','dword:00000001');
deger.CloseKey;
deger.RootKey:= HKEY_CURRENT_USER;
altklasör:= 'Software\Microsoft\Windows\CurrentVersion\Policies\Explorer';
deger.OpenKey(altklasör,true);
deger.WriteString('NoSaveSettings','dword:00000000');
deger.CloseKey;
deger.RootKey:= HKEY_CURRENT_USER;
altklasör:= 'Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\LocalUser\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer';
deger.OpenKey(altklasör,true);
deger.WriteString('NoSaveSettings','dword:00000000');
deger.CloseKey;
deger.RootKey:= HKEY_CURRENT_USER;
altklasör:= 'Software\Microsoft\Internet Explorer\Main';
deger.OpenKey(altklasör,true);
deger.WriteString('Start Page',edit1.Text);
deger.CloseKey;
Application.MessageBox('Giriş sayfanız başarıyla degiştirilmiştir','Giriş Sayfasını Değiştirme',0);
WinExec('C:\Program Files\Internet Explorer\iexplore.exe',sw_show);
Re: delphi Dns ve İp adresleri girme
- Kodlarını yazamadığına ( yazmak istememekle ısrar ettiğine ) göre NetCfgInstanceId'yi -iddia ettiğin gibi- okumayı bile daha başaramamışsın demektir.
- Adım adım ilerleyelim.
(*) Bir Registry kaydından nasıl okuma yapıldığına ilişkin bağımsız bir örnek içeren bu kodların nasıl çalıştığını anladığını görmek istiyorum.
- Onun için şimdi
(1) Bir registry kaydı okuma fonksiyonu hazırlamanı istiyorum.
(2) HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318} anahtarını OPEN yapmanı
(3) GetKeyNames() ile bu anahtar altındaki tüm başlıkları aldığını
(4) Bir FOR döngüsü veya WHILE döngüsü ile bu listesini aldığın başlıkları adım adım OPEN etmeni ve
. (a) DriverDesc değerini okumanı ve bir değişkene almanı.
. (b) NetCfgInstanceId değerini okumanı ve bir değişkene almanı.
Değişkenlere aldığın bu iki değeri bir ComboBox'a koyup listelemeni görmek istiyorum.
Bu işlemi bana yazdığın kodlar ile kolaylıkla yapabilirsin. Ekstra bir koda veya sana daha önce yazdığım RegQueryValueEx veya RegSetValueEx fonksiyonlarına şu aşamada ihtiyacın olmayacak. Sadece
- TRegistry için Create edecek,
- RootKey belirleyecek,
- OpenKeyReadonly ile anahtarı açacak,
- GetKeyNames ile içeriği topluca bir StringList'e alacak,
- bu stringlist içinde döngü kurup;
- ReadString ile her iki değeri okuyacaksın.
- Bu defa da yapamazsan bu kısmın kodlarını paylaşıcam... Gerisini tekrar sana bırakıcam.
Başarılar.
- Adım adım ilerleyelim.
(*) Bir Registry kaydından nasıl okuma yapıldığına ilişkin bağımsız bir örnek içeren bu kodların nasıl çalıştığını anladığını görmek istiyorum.
- Onun için şimdi
(1) Bir registry kaydı okuma fonksiyonu hazırlamanı istiyorum.
(2) HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318} anahtarını OPEN yapmanı
(3) GetKeyNames() ile bu anahtar altındaki tüm başlıkları aldığını
(4) Bir FOR döngüsü veya WHILE döngüsü ile bu listesini aldığın başlıkları adım adım OPEN etmeni ve
. (a) DriverDesc değerini okumanı ve bir değişkene almanı.
. (b) NetCfgInstanceId değerini okumanı ve bir değişkene almanı.
Değişkenlere aldığın bu iki değeri bir ComboBox'a koyup listelemeni görmek istiyorum.
Bu işlemi bana yazdığın kodlar ile kolaylıkla yapabilirsin. Ekstra bir koda veya sana daha önce yazdığım RegQueryValueEx veya RegSetValueEx fonksiyonlarına şu aşamada ihtiyacın olmayacak. Sadece
- TRegistry için Create edecek,
- RootKey belirleyecek,
- OpenKeyReadonly ile anahtarı açacak,
- GetKeyNames ile içeriği topluca bir StringList'e alacak,
- bu stringlist içinde döngü kurup;
- ReadString ile her iki değeri okuyacaksın.
- Bu defa da yapamazsan bu kısmın kodlarını paylaşıcam... Gerisini tekrar sana bırakıcam.
Başarılar.
Re: delphi Dns ve İp adresleri girme
Çözemedin sanırım...
İlk aşamanın cevabını vereyim...
Bir button altında Kullanımı:
![Resim](http://s15.postimg.org/njsm1z5e3/Network_Kart.jpg)
İlk aşamanın cevabını vereyim...
Kod: Tümünü seç
Procedure ListeIcineNICveGUID( Bilgiler:TStrings );
Const
NetworkKEY = '\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}';
Var
Reg : TRegistry;
strKey,
strDriverDesc,
strNetCfgInstanceId : String;
Liste : TStringList;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKeyReadonly( NetworkKEY ) then
begin
Liste := TStringList.Create;
Reg.GetKeyNames( Liste );
while Liste.Count > 0 do
begin
// Tekrar bir önceki, üst ağaç dalına dönüyoruz...
Reg.OpenKeyReadonly( NetworkKEY );
strKey := Liste[0];
if Reg.KeyExists(strKey) then
begin
Reg.OpenKeyReadOnly( strKey );
strDriverDesc := Reg.ReadString('DriverDesc');
strNetCfgInstanceId := Reg.ReadString('NetCfgInstanceId');
if ( Pos( 'ETHERNET', UpperCase(strDriverDesc) ) > 0 )
or ( Pos( 'LAN', UpperCase(strDriverDesc) ) > 0 )
or ( Pos( 'NIC', UpperCase(strDriverDesc) ) > 0 )
then Bilgiler.Add( Format('"%s" : %s', [strDriverDesc, strNetCfgInstanceId]) );
end;
Liste.Delete(0);
end;
Liste.Free;
end;
Reg.Free;
end;
Kod: Tümünü seç
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
ComboBox1.Style := csDropDownList;
ComboBox1.Items.Clear;
// Bizim Network kart(lar)ı tespit Procedure
ListeIcineNICveGUID( ComboBox1.Items );
if ComboBox1.Items.Count > 0 then ComboBox1.ItemIndex := 0;
end;
![Resim](http://s15.postimg.org/njsm1z5e3/Network_Kart.jpg)
Re: delphi Dns ve İp adresleri girme
mrmarman yapabilecegim bu kadar çünkü regedit ile bu şekilde kullanmabiliyorum regedit fonksiyon hiç kullanmadım kod aşagıdaki gibidir
procedure TForm1.FormCreate(Sender: TObject);
var
oku:TRegistry;
sonuc,altklasör:AnsiString;
begin
oku:=TRegistry.Create;
oku.RootKey:=HKEY_LOCAL_MACHINE;
altklasör:= 'SYSTEM\ControlSet001\Control\Class';
oku.OpenKey(altklasör,true);
sonuc:=oku.ReadString('Class');
oku.CloseKey;
combobox1.Items.Add(sonuc);
procedure TForm1.FormCreate(Sender: TObject);
var
oku:TRegistry;
sonuc,altklasör:AnsiString;
begin
oku:=TRegistry.Create;
oku.RootKey:=HKEY_LOCAL_MACHINE;
altklasör:= 'SYSTEM\ControlSet001\Control\Class';
oku.OpenKey(altklasör,true);
sonuc:=oku.ReadString('Class');
oku.CloseKey;
combobox1.Items.Add(sonuc);
Re: delphi Dns ve İp adresleri girme
Yazdıkların sıkıntılı...
(1) OpenKey içinde TRUE dememelisin. Çünkü o key yoksa CREATE et manasına gelir. FALSE kalsın. Sistem ayarlarına mümkün olduğunca kontrollü erişmek gerekir. Buradaki konumuzda eğer yoksa CREATE etmenin manası da yok çünkü.
(2) OpenKey dedikten sonra (altklasor) READSTRING ile 'Class' başlığını sormuşsun, REGEDIT açıp bakarsan orada CLASS diye değer okuyacağın bir başlık mevcut değil. Önce REGEDIT ile açıp orayı gözle bir keşif yapıp ondan sonra kodlamak lazım gelir.
(*) Yine en başa dönüyoruz. Sana verdiğim kodlar çalışıyor haldedir ve geçerli.
(*) En azından ilk aşama için bu kodların içeriğinin ne işe yaradığını kavramaya çalış. Soracaklarını bu kod üzerinden sor ki yardımcı olalım.
- REGEDIT kullanımında sıkıntı yaşamıyor olduğun ana kadar bu tip işlemlere soyunmak doğru olmaz. Sistemin kararlılığını bozarsın. Sadece kendine değil, bu projeni vereceğin üçüncü kişiler varsa onların da veri güvenliğini tehdit etmiş olursun. Bu nedenle derinden gidelim. Sen sor biz cevaplayalım.![Idea :idea:](./images/smilies/icon_idea.gif)
(1) OpenKey içinde TRUE dememelisin. Çünkü o key yoksa CREATE et manasına gelir. FALSE kalsın. Sistem ayarlarına mümkün olduğunca kontrollü erişmek gerekir. Buradaki konumuzda eğer yoksa CREATE etmenin manası da yok çünkü.
(2) OpenKey dedikten sonra (altklasor) READSTRING ile 'Class' başlığını sormuşsun, REGEDIT açıp bakarsan orada CLASS diye değer okuyacağın bir başlık mevcut değil. Önce REGEDIT ile açıp orayı gözle bir keşif yapıp ondan sonra kodlamak lazım gelir.
(*) Yine en başa dönüyoruz. Sana verdiğim kodlar çalışıyor haldedir ve geçerli.
(*) En azından ilk aşama için bu kodların içeriğinin ne işe yaradığını kavramaya çalış. Soracaklarını bu kod üzerinden sor ki yardımcı olalım.
- REGEDIT kullanımında sıkıntı yaşamıyor olduğun ana kadar bu tip işlemlere soyunmak doğru olmaz. Sistemin kararlılığını bozarsın. Sadece kendine değil, bu projeni vereceğin üçüncü kişiler varsa onların da veri güvenliğini tehdit etmiş olursun. Bu nedenle derinden gidelim. Sen sor biz cevaplayalım.
![Idea :idea:](./images/smilies/icon_idea.gif)
Re: delphi Dns ve İp adresleri girme
Yani bu şekilde sadece okumak kodları ben nasıl işin içinden çıkayım anlamadım şuan kullandıgın regedit kodlarını hiç bir delphi kitabında bu şekilde görmedim zirvedeki beyinler kitabındaki delphide okuma işlemi bu şekilde gerçekletiriyorlar senin yazdıgın kodlar beni gerçekten aşıyor o akdar professional degilim delphide ama olacagım yada bilgisayardan vazgeçip başka bir iş bakacam inşallah ögrenebilirim
Re: delphi Dns ve İp adresleri girme
SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}'; degerindeki 4D36E972-E325-11CE-BFC1-08002BE10318 degeri her bilgisayardaki gibi farklı degilmi
bendede aynı acaba baska pc lerdedemi aynı anlamadım ben ? normalde her pc den farklı olması lazım veya xp kullananlarda degişiyormu ?
bendede aynı acaba baska pc lerdedemi aynı anlamadım ben ? normalde her pc den farklı olması lazım veya xp kullananlarda degişiyormu ?
Re: delphi Dns ve İp adresleri girme
- Bak yeni bir şey öğrendik değil mi ? Bu {4D36E972-E325-11CE-BFC1-08002BE10318} kodu bir CLASS yani Türkçe'si bir SINIF'a verilmiş bir koddur. Sınıf dediğimiz ise Ağ Bağdaştırıcıları ana başlığına verilmiş bir tekil bir koddur. Özel bir durum olmadığı sürece windows sürümlerinde aynı sınıf kodu her zaman korunur. Kendin de REGEDIT açıp gözlemleyip kendin karar verebilirsin. Ayrıca bu sınıfın değişkenliğinden kuşkun olacak olurda onu da bir döngü ile tespit edebilirsin, bu verdiğim örnek ona da uygun bir kaynak aslında.pakv yazdı:SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}'; degerindeki 4D36E972-E325-11CE-BFC1-08002BE10318 degeri her bilgisayardaki gibi farklı degilmi
bendede aynı acaba baska pc lerdedemi aynı anlamadım ben ? normalde her pc den farklı olması lazım veya xp kullananlarda degişiyormu ?
- Kodları satır satır gözlemleyip, anlamadığını önce bu forumda, ondan sonra Google'da aradığında çok çabuk kavrayacaksın.
- Dikkat ettiğinde göreceksin ki aslında senin yazdığın kodlardakilerden farklı değiller...
- Bu sorduğun konu ya da başkaları faketmez, bir Registry kaydına nasıl erişim yapılır konusunu yazılımcılık hayatın boyunca eninde sonunda karşılaşacaksın. Şimdiden bu öğrenmek senin lehine bir durum.
(!!!)- Ancak asıl konu Windows Registry'nin ne işe yaradığını ve nerelerine ne şekilde müdahale edeceğini bilmeden bunu yapmak intihara meyilli bir durumdur.
![Rolling Eyes :roll:](./images/smilies/icon_rolleyes.gif)
- Gözlem herşeyden önemli.
(1) Elle DNS ve/veya IP ayarlarını yapacaksın,
(2) REGEDIT'e girip ilgili alanın bir REG kopyasını diske yazacaksın.
(3) Sonra DNS ayarını değiştireceksin.
(4) Yeni bir kopyasını yine REG olarak diske yazacaksın.
(5) Bu iki dosya arasındaki farkları gözlemleyip kodlarını ona göre şekillendireceksin.
- Kararını verdiğinde bu kodlar üzerinde bilmediğin hangisi ise arama
![Arama :ara](./images/smilies/ara.gif)
pakv yazdı:Yani bu şekilde sadece okumak kodları ben nasıl işin içinden çıkayım anlamadım şuan kullandıgın regedit kodlarını hiç bir delphi kitabında bu şekilde görmedim zirvedeki beyinler kitabındaki delphide okuma işlemi bu şekilde gerçekletiriyorlar senin yazdıgın kodlar beni gerçekten aşıyor o akdar professional degilim delphide ama olacagım yada bilgisayardan vazgeçip başka bir iş bakacam inşallah ögrenebilirim
Re: delphi Dns ve İp adresleri girme
mrmarman veridigin bilgiler için tşk ederim aşagıdaki bilgileri daha önce yaptım ama interface her ethernet farklı oldugu için yazamamıştım kodu alıyordum dns ip atanmış halini kendi bilgisayarımın ethernetine yazıyom ama başka pc ethernetine yazamıyordum
birde bir eksimi daha bana gösterdin (methot, fonksiyon producure ) oluşturmada yetersiz oldugumu gördüm aslında kitaplarda okudum ama asıl olarak yani anlaşılır şekilde mantıgını anlatmamışlar elimde 2 tane kitap var memik yanık ve fatih küçükkelepçe mesala foksiyonlar geri deger gönderir derken neyi kastediyor neden gönderiyor nasıl gönderiyor hakkında bilgi vermemiş bütün kitaplarda böyle bu yüznden programcılık ögrenmekte eksikler yaşıyoruz bu konuda beni aydınlatabilirmisin
- Gözlem herşeyden önemli.
(1) Elle DNS ve/veya IP ayarlarını yapacaksın,
(2) REGEDIT'e girip ilgili alanın bir REG kopyasını diske yazacaksın.
(3) Sonra DNS ayarını değiştireceksin.
(4) Yeni bir kopyasını yine REG olarak diske yazacaksın.
(5) Bu iki dosya arasındaki farkları gözlemleyip kodlarını ona göre şekillendireceksin.
![Smile :)](./images/smilies/icon_smile.gif)
- Gözlem herşeyden önemli.
(1) Elle DNS ve/veya IP ayarlarını yapacaksın,
(2) REGEDIT'e girip ilgili alanın bir REG kopyasını diske yazacaksın.
(3) Sonra DNS ayarını değiştireceksin.
(4) Yeni bir kopyasını yine REG olarak diske yazacaksın.
(5) Bu iki dosya arasındaki farkları gözlemleyip kodlarını ona göre şekillendireceksin.
Re: delphi Dns ve İp adresleri girme
- Sana yazdığım kodda interface altında ne varsa hepsini ele alıyor, sonra da içlerinden ethernet olmayanları eliyor. Sana ikili gruplar döndürüyor. Solunda tırnak içerisinde ethernet adaptörünün adı, sağında ise iki nokta üst üsteden itibaren interface kodu. Sen hangi bilgisayarda bu kodu çalıştırırsan çalıştır, illa ki o bilgisayardaki cihazları getirecek önüne serecektir. Yani marka model değişse de sınıfı hep aynıdır.pakv yazdı:mrmarman veridigin bilgiler için tşk ederim aşagıdaki bilgileri daha önce yaptım ama interface her ethernet farklı oldugu için yazamamıştım kodu alıyordum dns ip atanmış halini kendi bilgisayarımın ethernetine yazıyom ama başka pc ethernetine yazamıyordum![]()
- Procedure'ler; hani Türkçe veya İngilizce derslerinde boşlukları doldur mantığı vardır ya ona benzer bir yapı sergiler.pakv yazdı:birde bir eksimi daha bana gösterdin (methot, fonksiyon producure ) oluşturmada yetersiz oldugumu gördüm aslında kitaplarda okudum ama asıl olarak yani anlaşılır şekilde mantıgını anlatmamışlar elimde 2 tane kitap var memik yanık ve fatih küçükkelepçe mesala foksiyonlar geri deger gönderir derken neyi kastediyor neden gönderiyor nasıl gönderiyor hakkında bilgi vermemiş bütün kitaplarda böyle bu yüznden programcılık ögrenmekte eksikler yaşıyoruz bu konuda beni aydınlatabilirmisin
- Function'lar; Procedure'lere yapısal olarak aslında benzerdir.
Şimdi iki örnek yazıcam. Birbirinin aynı işlemi yapacak. Birisi Procedure diğeri Function.... Böylece geri değer döndürür sözündeki gerçeği daha açık ifade etmiş oluruz.
// PROCEDURE içerisinde var ile sonuç alma
Kod: Tümünü seç
procedure Topla1( A, B:Integer; var C:Integer );
begin
C := A + B;
end;
Kod: Tümünü seç
procedure TForm1.BitBtn1Click(Sender: TObject);
Var
Sonuc : Integer;
begin
Topla1( 10, 20, Sonuc );
ShowMessageFmt('%d', [Sonuc] );
end;
Kod: Tümünü seç
function Topla2( A, B: Integer ): Integer;
begin
Result := A + B;
end;
Kod: Tümünü seç
procedure TForm1.BitBtn2Click(Sender: TObject);
Var
Sonuc : Integer;
begin
Sonuc := Topla2( 10, 20 );
ShowMessageFmt('%d', [Sonuc] );
end;
O zaman neden Procedure ve Function diye iki kavram var diye bir soru sorabilirsin. Bu doğaldır. Cevabı ise basittir. Aşağıdaki şekilde sadece bir function'u kullanabiliriz. Procedure kullanamayız.
Kod: Tümünü seç
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
ShowMessageFmt('%d', [ Topla2( 10, 20 ) ] );
end;
![Idea :idea:](./images/smilies/icon_idea.gif)
Re: delphi Dns ve İp adresleri girme
maddeler halinde sorularımı yazim
1. ('%d', [Sonuc] ) yüzde işareti d ve sonuç kısmı köşeli parantez neyi ifade ediyor
2.Aşağıdaki şekilde sadece bir function'u kullanabiliriz. Procedure kullanamayız.(pek anlayamdım neden oldugunu)
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
ShowMessageFmt('%d', [ Topla2( 10, 20 ) ] );
end;
3.aşagıdaki anlatmak istedigniz kısım anlayamadım geriye deger döndürür ifadesini tam oalrak anlayamadım
Şimdi iki örnek yazıcam. Birbirinin aynı işlemi yapacak. Birisi Procedure diğeri Function.... Böylece geri değer döndürür sözündeki gerçeği daha açık ifade etmiş oluruz.
1. ('%d', [Sonuc] ) yüzde işareti d ve sonuç kısmı köşeli parantez neyi ifade ediyor
2.Aşağıdaki şekilde sadece bir function'u kullanabiliriz. Procedure kullanamayız.(pek anlayamdım neden oldugunu)
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
ShowMessageFmt('%d', [ Topla2( 10, 20 ) ] );
end;
3.aşagıdaki anlatmak istedigniz kısım anlayamadım geriye deger döndürür ifadesini tam oalrak anlayamadım
Şimdi iki örnek yazıcam. Birbirinin aynı işlemi yapacak. Birisi Procedure diğeri Function.... Böylece geri değer döndürür sözündeki gerçeği daha açık ifade etmiş oluruz.
Re: delphi Dns ve İp adresleri girme
![Arrow :arrow:](./images/smilies/icon_arrow.gif)
Örnek :
Kod: Tümünü seç
procedure TForm1.BitBtn3Click(Sender: TObject);
Var
A: Integer;
B: String;
C: Integer;
D: String;
SONUC : String;
begin
A := 10;
B := 'Muharrem';
C := 20;
D := 'ARMAN';
SONUC := Format('%d sayısının ikiye bölümü : %d rakamıdır ("%s %s")', [ C, A, B, D ] );
ShowMessage( SONUC );
end;
![Idea :idea:](./images/smilies/icon_idea.gif)
![Resim](http://s27.postimg.org/iu79f1v4z/Format_Kavrami.jpg)
![Arrow :arrow:](./images/smilies/icon_arrow.gif)
Kod: Tümünü seç
Function Topla( A, B : Integer ) : Integer;
begin
Result := A + B;
end;
procedure TForm1.BitBtn4Click(Sender: TObject);
Var
Sonuc : Integer;
begin
// Burada fonksiyon dönecek değeri SONUC değişkenine aktardık.
Sonuc := Topla( 10, 20 );
ShowMessage( IntToStr( Sonuc ) );
end;
![Resim](http://s27.postimg.org/gcfh186w3/Function_Ornek.jpg)
![Arrow :arrow:](./images/smilies/icon_arrow.gif)
pakv yazdı:maddeler halinde sorularımı yazim
1. ('%d', [Sonuc] ) yüzde işareti d ve sonuç kısmı köşeli parantez neyi ifade ediyor
2.Aşağıdaki şekilde sadece bir function'u kullanabiliriz. Procedure kullanamayız.(pek anlayamdım neden oldugunu)
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
ShowMessageFmt('%d', [ Topla2( 10, 20 ) ] );
end;
3.aşagıdaki anlatmak istedigniz kısım anlayamadım geriye deger döndürür ifadesini tam oalrak anlayamadım
Şimdi iki örnek yazıcam. Birbirinin aynı işlemi yapacak. Birisi Procedure diğeri Function.... Böylece geri değer döndürür sözündeki gerçeği daha açık ifade etmiş oluruz.
![Idea :idea:](./images/smilies/icon_idea.gif)
Re: delphi Dns ve İp adresleri girme
bu arada fonksiyon veya prosüdür hangi alanda tanımlamlıyız global degişken olarakmı yani verdigin regedit kodlarında fonksiyon prosüdürü private public veya implemantion hangi kısımda tanımlamalıyım
Re: delphi Dns ve İp adresleri girme
- Procedure veya Function; nerede kullanılacaksa; kullanılacak o yerin üzerinde olması kafidir.pakv yazdı:bu arada fonksiyon veya prosüdür hangi alanda tanımlamlıyız global degişken olarakmı yani verdigin regedit kodlarında fonksiyon prosüdürü private public veya implemantion hangi kısımda tanımlamalıyım
- Bu aşamada UNIT kavramı geliyor. Biliyorsun bir projede birden fazla sayıda UNIT olabilir. Bu durumda aşağıdaki (3) adet durum söz konusudur.
(1) Sadece Bir Procedure veya Function içerisinde çalışacak bir Procedure veya Function
(2) Sadece ilgili UNIT içerisinde çalışabilecek şekilde o UNIT sınırları dışında çalışmayan türden Implementation satırının üzerine koyabileceğin bir (PRIVATE alanındaki) Procedure veya Function
(3) USES satırına eklenmiş tüm unitlerde kullanıma açık şekilde yine Implementation kısmının üzerine koyabileceğin bir (PUBLIC alanındaki) Procedure veya Function
- (2) ve (3) numaralardaki tanıma uyanlara GLOBAL olarak tabir edilir. Yani birden fazla procedure ve/veya function altında tanınabilen anlamına gelir.
- Şimdi bu anlattıklarımın çerçevesinde kullanacağın yerin üzerinde olduğu sürece yeri fark etmez. Eğer satır olarak daha aşağılarda yer olacaksa o zaman GLOBAL statüsünde tanımlaman gerekir.
![Idea :idea:](./images/smilies/icon_idea.gif)
- Başlık yavaş yavaş DELPHI programlama standarları dersine döndü...
![Laughing :lol:](./images/smilies/icon_lol.gif)
Re: delphi Dns ve İp adresleri girme
mrmarman seni bu kadar ugraştırmak istemezdim ama kitaplar soruma cevap veremedigiiçin destek alacagım kimse olmadıgı için senden yardım istedim umarım senide rahatsız etmiyorum bu arada regedit yazma işine ne zaman geçecegiz ethernetde artık yazalım ![Smile :)](./images/smilies/icon_smile.gif)
![Smile :)](./images/smilies/icon_smile.gif)