Merhaba arkadaşlar,
1.) Bir fonksiyon yazmak istiyorum, yazdığım fonksiyonun içinde combobox'tan bilgi almak istiyorum ama bir türlü ne combobox'ı gördü nede global olarak tanımladığım değişkenleri gördü. Fonksiyonun içinde hem global olarak tanımladığım değişkenleri hemde comboboxı nasıl görebilirim?
2.) Bir fonsiyona 2 veya daha fazla değişken göndermek istiyorum ve fonksiyon içinde bunları işleme tabi tuttup sonucu tekrardan istediğim tipte göndermek istiyorum. Böyle bir fonsiyonun kabaca kodlarını yazabilir misiniz?
(Göndereceğim değişkenler integer veya string olabilir)
Teşekkür ederim.
İyi çalışmalar
Fonksiyonlar
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Fonksiyonlar
Mağrur olma padişahım senden büyük Allah var.
1. Sorunuza cevap:
Hazırladığınız fonksiyonu form sınıfının oraya da koymalısınız ki diğer nesneler ile iletişim kursun. Ben "yerogren" diye basit bir fonksiyon hazırladım ve şu şekilde "tform1" sınıfına dahil ettim:
Şimdi bunu program içinde oluştururken de şu şekilde olacak:
Dikkat ettiyseniz baştaki "Tform1.yerogren" şeklinde kullandım. Boylece
"combobox1" nesnesiyle etkileşimli kullanabilirsiniz.
Meselâ:
şeklinde. Ben bir form oluşturdum ve combobox'a "Ali-Ahmet- Hasan-Veli" gibi girdiler girdim. Bu fonksiyon ile Veli'nin hangi kayıtta tutulduğunu görebiliyorsunuz.
2.Sorunuza gelecek olursak, fonksiyon ile birden fazla değer için benim bildiğim 2 yöntem var.
1.si pointer kullanımı
2.si var şeklinde fonksiyon içinde başka bir değişken tanımlaman.
1. yöntem biraz karşık olduğundan 2.yöntemi göstermek istiyorum:
Dikkat ettiyseniz deger1 'i var başlayarak tanımladım. Böylece bu değişkene de bilgi gönderimi yapabilirim. Bunu çoğaltabilirsin de.
Yalnız bunu kullanırken de kullanacağınız prosüdür veya fonksiyonun başında
var ile aynı tipte başka bir değişken tanımlayarak kullanacaksınız.
Şöyle:
Kolay gelsin.
Hazırladığınız fonksiyonu form sınıfının oraya da koymalısınız ki diğer nesneler ile iletişim kursun. Ben "yerogren" diye basit bir fonksiyon hazırladım ve şu şekilde "tform1" sınıfına dahil ettim:
Kod: Tümünü seç
Unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
ComboBox1: TComboBox;
Edit1: TEdit;
Button1: TButton;
{ Tform sınıfına dahil ediyorum hazırladığım fonksiyonu }
Function yerogren(unsur:string):byte;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Kod: Tümünü seç
Function Tform1.yerogren(unsur:string):byte;
Begin
result:=combobox1.Items.IndexOf(unsur)
end;
"combobox1" nesnesiyle etkileşimli kullanabilirsiniz.
Meselâ:
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.text:=inttostr(yerogren('Veli'));
end;
2.Sorunuza gelecek olursak, fonksiyon ile birden fazla değer için benim bildiğim 2 yöntem var.
1.si pointer kullanımı
2.si var şeklinde fonksiyon içinde başka bir değişken tanımlaman.
1. yöntem biraz karşık olduğundan 2.yöntemi göstermek istiyorum:
Kod: Tümünü seç
Function bilgial(unsur,aranacak:string; var deger1:integer):boolean;
Begin
if pos(aranacak,unsur)<>0 then result:=true
else
result:=false;
deger1:=pos(aranacak,unsur);
end;
Yalnız bunu kullanırken de kullanacağınız prosüdür veya fonksiyonun başında
var ile aynı tipte başka bir değişken tanımlayarak kullanacaksınız.
Şöyle:
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
deger:integer; // ayrı olarak integer bir veri tanımladım.
begin
// yukarıda integer tipinde tanımladığım "deger" değişkenine bilgial fonksiyonunda kullanarak değer yollattırıyorum.
if bilgial(edit1.text,'@',deger)=true then
showmessage(inttostr(deger));
end;
S.A.
1. comboboxların önüne formun adını referans göstererek kullanabilirsiniz. yada bakınız üstteki cevap.
2.
bu procedure de newstr değişkeni geriye dönen bir değer .(geriye göndermek istediğiniz değerin önüne var yazıyoruz.
Bu işlemi function ile de yapılabilir.
bu örnek kullanışlı değil kullanımı görmen açısından yazdım şöyle daha kullanışlı olur
kullanımları
umarım anlaşılır bişeyler olmuştur.
iyi çalışmalar.
1. comboboxların önüne formun adını referans göstererek kullanabilirsiniz.
Kod: Tümünü seç
form1.combobox1
2.
Kod: Tümünü seç
Procedure strekle(var newstr:strnin; eklenecek:string);
begin
newstr:=newstr+' '+eklenecek;
end;
Bu işlemi function ile de yapılabilir.
Kod: Tümünü seç
Function strekle(var newstr:string; eklenecek:string):boolean;
begin
result:=false;
newstr:=newstr+' '+eklenecek;
result:=true;
end;
Kod: Tümünü seç
Function strekle(newstr, eklenecek:string):string;
begin
result:=newstr+' '+eklenecek;
end;
Kod: Tümünü seç
var
a,b:string;
begin
a:='merhaba';
b:='dünya';
//1.Procedure
strekle(a,b);
showmessage(a);
//1.function
if strekle(a,b) then showmessage(a);
//2.function
showmessage(strekle(a,b));
iyi çalışmalar.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim