Veri Gönderen Procedure Yapmak ?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
ByDeniS
Üye
Mesajlar: 144
Kayıt: 03 Oca 2009 12:24
Konum: My Computer

Veri Gönderen Procedure Yapmak ?

Mesaj gönderen ByDeniS »

Arkadaşalar herkeze selamlar ve şimdiden teşekkürler.

Bayağı araştırmama rağmen bulamadım birşey. Ya araştırma yöntemim yanlış yada bulamamam normal.

Sorum : Manuel olarak oluşturduğumuz procedure'lerden nasıl veri yollayabiliriz.

Örneğin :

Test diye bir procedure oluşturdum. Ben bunu Test(Veri1,Veri2,Veri3); diye kullandığımda her virgülden sonraki viriyi procedure aktarıp procedurde ona göre alıp işlem yapmak istiyorum.

Mesela :

Resim seç diye bir procedure yaptım varsayalım.

ResimSec(LoadEdilecekMateryal,ResimKodu,ResimYolu);
ResimSec(image1,Mavi,'Dosyalar\Resimler\Mavi.bmp');

Şeklinde ve bunu procedure'içerisinde alıp.

procedure ResimSec();
Begin
//veri1 = materyali alacak
//veri2 = Kodu alacak
//veri3 = yolu olacak
//veri1 materyaline veri2 koduna göre veri3 dizinindeki resmi yükleyecek
End;


Umarım anlatabilmişimdir. Saygılar.
·•· Bilgi Güçtür ! Bu Gücü Hisset ! ·•·
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Veri Gönderen Procedure Yapmak ?

Mesaj gönderen thelvaci »

Bir procedure geçilen parametrenin tekrar geriye dönemesini sağlayan "var" tanımından mı bahsediyorsunuz ? Tam olarak anlayamadım. Biraz daha izah edebilir misiniz ?
Kullanıcı avatarı
ByDeniS
Üye
Mesajlar: 144
Kayıt: 03 Oca 2009 12:24
Konum: My Computer

Re: Veri Gönderen Procedure Yapmak ?

Mesaj gönderen ByDeniS »

Bir procedure oluşturdum anlatmaya çalıştığım şekilde yaptım ve bu provedureyi combobox'un chaning eventine koydum diyelim. Ve seçilen iteme göre chaningde işlettim varsayalım.

Örneğin :

if Combobox.itemindex = 0 Then
Begin
ResimSec(image1,Mavi,'Dosyalar\Resim\Mavi.bmp');
End
Else if Combobox.itemindex = 1 Then
Begin
ResimSec(image1,Yesil,'Dosyalar\Resim\Yesil.bmp');
End

şeklinde procedure verileri yolladıktan sonra gelen verileri sırasıyla işleticem. İlk gelen veri resimin yükleneceği image materyalini belirliyor ikinci veri resmin kıs kodunu veriyor. Ve devamında procedure içinde o koda göre if ve else if ile resmi ilk verideki materyale yükleticem. Bahsettiğim örnekten bu şekilde açıklayabilirim sanırım.
·•· Bilgi Güçtür ! Bu Gücü Hisset ! ·•·
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Veri Gönderen Procedure Yapmak ?

Mesaj gönderen thelvaci »

ResimSec isimli procedure'niz de parametre olmayacak mı ? Sizin istediğiniz ResimSec procedure'si

procedure ResimSec(const Image : TImage; const Color : TColor; const FileName : String);
begin
if not FileExists(FileName) then raise Exception.Create('Belirtilen dosya bulunamadı.!');

if Assigned(Image) then
Image.Picture.LoadFromFile(FileName);
end;
..
..
case ComboBox1.ItemIndex of
0 : ResimSec(Image1, clBlue, 'c:\Mavi.bmp');
1 : ResimSec(Image2, clRed , 'c:\Kirmizi.bmp');
end;
..
..

gibi görünüyor. Bu ResimSec içinde tam olarak ne yapmak istiyorsunuz ?
qamyoncu
Üye
Mesajlar: 266
Kayıt: 12 Tem 2008 04:30

Re: Veri Gönderen Procedure Yapmak ?

Mesaj gönderen qamyoncu »

Kod: Tümünü seç

procedure Deneme(Test1: String; var Test2: Integer; var Test3: Char);
begin
..
if DogruCevap=False then
Test2:=2
else
Test2:=5;
..
..
end;

/////////////////////

..
var
GeriDoncekDeger: Integer;
GerDoncekChar: Char;
begin
Deneme('Deneme123', GeriDonecekDeger, GerDoncekChar);
end;
Böylelikle GeriDonecekDeger ve Char proceduredeki herhangi bir döngüye göre değişir.
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
Kullanıcı avatarı
ByDeniS
Üye
Mesajlar: 144
Kayıt: 03 Oca 2009 12:24
Konum: My Computer

Re: Veri Gönderen Procedure Yapmak ?

Mesaj gönderen ByDeniS »

iki cevap içinde teşekkür ederim ama yetersiz oldu benim için.

Gelen ilk değer bir itemi teşkil edicek örneğin Deneme(image1);

image1 geldiyse ilk değer bunu ekstra ekstra uzatmayarak image1'i alıp form üzerindeki image1 diye bir item varsa yüklemeyi ona yapacak.

Yani tekrar bir örnek vericek olursam.

Procedure işletme kısmı

procedure Deneme();
Begin
item1.picture.loadfromfile:=(item2);
End

Procedure gönderimide şu şekilde

Deneme(item1,item2);

item1 yerine = image1 yada image2 vs vs...
item2 yerine = 'C:\Mavi.bmp' yada 'D:\Mavi.jpg' vs vs...

item1 işlem yapılacak form üzerindeki bir itemi teşkil etmeli.
·•· Bilgi Güçtür ! Bu Gücü Hisset ! ·•·
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Veri Gönderen Procedure Yapmak ?

Mesaj gönderen aslangeri »

s.a.
Arkadaşım ne yapmak istediğini tam olarak ifade edemediğin kanaatindeyim.
Deneme(item1,item2); şeklinde bir kullanım için procedurenin parametrelerini ona göre ayarlaman lazım.
eğer parametreye bazen değer gönderecek bazen değer göndermeyeceksende parametreyi ona göre ayarlaman, varsayılan değerleri ona göre vermen lazım.
öncelikle hiç bilmeyen kişilere ne yapmak istediğini anlat.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
qamyoncu
Üye
Mesajlar: 266
Kayıt: 12 Tem 2008 04:30

Re: Veri Gönderen Procedure Yapmak ?

Mesaj gönderen qamyoncu »

Kod: Tümünü seç

procedure Deneme(Item1: TImage; Item2: String);
var
i: Integer;
begin
for i := 0 to Form1.ComponentCount-1 do
  begin
    if (Form1.Components[i] is TImage) then
      begin
        if (Form1.Components[i] as TImage)=Item1 then
          item1.picture.loadfromfile(Item2);
          exit;  
      end;
  end;
end;
end;
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Veri Gönderen Procedure Yapmak ?

Mesaj gönderen thelvaci »

qamyoncu yazdı:

Kod: Tümünü seç

procedure Deneme(Item1: TImage; Item2: String);
var
i: Integer;
begin
for i := 0 to Form1.ComponentCount-1 do
  begin
    if (Form1.Components[i] is TImage) then
      begin
        if (Form1.Components[i] as TImage)=Item1 then
          item1.picture.loadfromfile(Item2);
          exit;  
      end;
  end;
end;
end;
Form üzerinde dönüp Item1'i aratmanıza ve bulmanıza gerek yoktu verdiğiniz örnekte. Sanırım dalgınlık olmuş.
Kullanıcı avatarı
ByDeniS
Üye
Mesajlar: 144
Kayıt: 03 Oca 2009 12:24
Konum: My Computer

Re: Veri Gönderen Procedure Yapmak ?

Mesaj gönderen ByDeniS »

Teşekkürler arkadaşlar cevaplarınız için. Tam sonuca hala ulaşamadım sanırım istediğimide anlatamıyorum bu yüzden bırakın kalsın herkeze teşekkürler.
·•· Bilgi Güçtür ! Bu Gücü Hisset ! ·•·
qamyoncu
Üye
Mesajlar: 266
Kayıt: 12 Tem 2008 04:30

Re: Veri Gönderen Procedure Yapmak ?

Mesaj gönderen qamyoncu »

thelvaci yazdı:
qamyoncu yazdı:

Kod: Tümünü seç

procedure Deneme(Item1: TImage; Item2: String);
var
i: Integer;
begin
for i := 0 to Form1.ComponentCount-1 do
  begin
    if (Form1.Components[i] is TImage) then
      begin
        if (Form1.Components[i] as TImage)=Item1 then
          item1.picture.loadfromfile(Item2);
          exit;  
      end;
  end;
end;
end;
Form üzerinde dönüp Item1'i aratmanıza ve bulmanıza gerek yoktu verdiğiniz örnekte. Sanırım dalgınlık olmuş.

di mi... :)
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
Cevapla