Dizi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Laz61
Üye
Mesajlar: 135
Kayıt: 03 Eki 2007 11:51
Konum: Almanya

Dizi

Mesaj gönderen Laz61 »

Arkadaslar Merhaba

Dizilerle hic calismadigimi belirtmeliyim. Gelebilecek itirazlarida önlemis olayim.

Ben takriben 50 tane karakter icerebilecek olan bir dizi tanimlamak istiyorum: Örnek: 'a' '(' '25' 'F' 'ÿ' '€' vs.. Karakterler bir küme gibi ardarda gelen karakterler degil.
Bu karakterleride, Örnek: if edit1.Text='a' then
Showmessage ('Merhaba'); gibi kontrol etmek istiyorum. Yardimci olursaniz sevinirim.

Hosca kalin
Hayat tüm olumsuzluklara rağmen yaşamaya değer.
fiko19
Üye
Mesajlar: 73
Kayıt: 07 Oca 2009 11:39

Re: Dizi

Mesaj gönderen fiko19 »

şu şekildemi bi kontrol edin

var a,b,c... : variant;

begin
if edit1.text = 'a' then
begin
showmessage('Merhaba');
end
else
begin
if edit1.text = 'b' then
begin
showmessage('Güle Güle');
end
else
showmessage('Hoşgeldiniz');
end;
end;


bu mu size lazım olan
Laz61
Üye
Mesajlar: 135
Kayıt: 03 Eki 2007 11:51
Konum: Almanya

Re: Dizi

Mesaj gönderen Laz61 »

Merhabalar

Cok özür dilerim, soruyu yanlis ve hatali sordum.

Ben Editte görüntülenecek olan her karaktare ayri ayri kod yazmaktansa, 50 karakterlik bir dizi tanimlayip, bu dizinin herhangi bir karakteri görüntülendiginde onu kontrol etmek istiyordum

yani dizi, dizinin harhangi bir karakteri görütülendiginde kontrol etmek.

Sorunum diziyi olusturup, dizideki karakterleri kontrol.

Hosca kalin
Hayat tüm olumsuzluklara rağmen yaşamaya değer.
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: Dizi

Mesaj gönderen adelphiforumz »

S.A.
eğer dizilerle daha önceden çalışmadıysan aklıma gelen bir kaç farklı yol
1. istediğin değerleri bir listbox içerisine at sonra indexof komutu ile içinde ara varsa index numarası yoksa -1 döner
2. yine istediğin değerleri bir string içine at Pos komutu ile ara varsa bulunduğu yer yoksa 0 döner.
3. illa dizi ile yapacaksan ve değerler sabit ise Const Array tanım yap yok dinamik ise
type
DiziRec=Record
Kod:Integer;
Tanim:String;
end;

var
Dizi: array of DiziRec;
I, DiziBoyu:Integer;

proc dizi doldur.....
begin
DiziBoyu := 5;
SetLength(Dizi, DiziBoyu); // dizi boyutunu dinamik olarak belirle
Dizi[0].Kod := 1;
Dizi[0].Kod := 1;
end

proc dizide varmı...
begin
for i := 0 to (DiziBoyu - 1) do
begin
if Dizi.Kod = 1234 Then
..........
end;
end;
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Laz61
Üye
Mesajlar: 135
Kayıt: 03 Eki 2007 11:51
Konum: Almanya

Re: Dizi

Mesaj gönderen Laz61 »

Merhabalar

ilginiz icin tsk. ederim. Tavsiyelerinizden bir fikir edindim. Umarim sorunu cözerim.

Hosca kalin
Hayat tüm olumsuzluklara rağmen yaşamaya değer.
Laz61
Üye
Mesajlar: 135
Kayıt: 03 Eki 2007 11:51
Konum: Almanya

Re: Dizi+listbox

Mesaj gönderen Laz61 »

Merhabalar

Sorunu büyük oranda cözdüm. Bir noktaya takildim.

procedure TForm1.Edit1Change(Sender: TObject);
begin
if listbox1.Items.indexof(Edit1.Text)>=0 then
listbox1.itemindex:=Listbox1.items.indexof(edit1.text);

if listbox2.Items.indexof(Edit1.Text)>=0 then
listbox2.itemindex:=Listbox2.items.indexof(edit1.text);
end;
end.

Edit1'den girdigim metni, listbox1 ve listbox2'ye ait olan Edit2 ve Edit3'te nasil gösterebilirim. Yani heriki listbox'a mesaj edit1'den gitmeli.

Hosca kalin

Selamlar
Hayat tüm olumsuzluklara rağmen yaşamaya değer.
Laz61
Üye
Mesajlar: 135
Kayıt: 03 Eki 2007 11:51
Konum: Almanya

Re: Dizi

Mesaj gönderen Laz61 »

Merhabalar

Sorumun cevabini ugrasmalarim neticesinde su sekilde cözdüm. Kodu calistirdim hatasiz calisiyor. umarim faydalim olur. Tavsiyelerinizi acigim.

Hosca kalin

Kod: Tümünü seç

procedure TForm1.Edit1Change(Sender: TObject);
var a,b: Integer;

begin

for a := 0 to (ListBox1.Items.Count - 1) do
for b := 0 to (ListBox2.Items.Count - 1) do

begin
if Edit1.text=ListBox1.Items.Strings[a] then
Edit2.text:=edit1.text;

if Edit1.text=ListBox2.Items.Strings[b] then
Edit3.text:=edit1.text;


if listbox1.Items.indexof(Edit1.Text)>=0 then
listbox1.itemindex:=Listbox1.items.indexof(edit1.text);

if listbox2.Items.indexof(Edit1.Text)>=0 then
listbox2.itemindex:=Listbox2.items.indexof(edit1.text);
end;
end;
end.
Not(aslangeri):kodlarımızı code tagı içerisine alırsak daha okunaklı olur.
Hayat tüm olumsuzluklara rağmen yaşamaya değer.
Cevapla