Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
delphi 7 inputbox a girilenlerin showmessage ile nasıl listelerim acill
#1
Sad 
merhabalar , delphi 7 kitabında 79 a kadar işledik ve hocamız böle bi kod verdi ve bize bir adet daha buton ekleyip burdan girilen verilerin o butona basınca showmessage ile listelememizi istedi lütfen yardımcı olabilir misiniz ?? elimde olan kod bu diğer butonu nasıl yapıcam 


type
musteri=record
adisoyadi:AnsiString;adresi:AnsiString;
urun:AnsiString;fiyati:Currency;

end;

procedure TForm1. Button1Click (Sender: TObject);
var
i:integer;
yeni:Array [0..2] of musteri;
begin
for i:=0 to 2 do
begin
yeni[i]. adisoyadi:=InputBox ('Ad','Musteri','');
yeni[i]. adresi:=InputBox ('Adres','Musteri','');
yeni[i]. urun:=InputBox ('Urün','Musteri','');
yeni[i]. fiyati:=StrToCurr (InputBox ('Fiyat','Musteri',''));

end;
end.
Cevapla
#2
Bunun yanıtını biz veririz vermesine de size iyilik etmiş olmayız. Onun yerine burada ne yapılmak istendiğini anlatmaya çalışayım.
Amaç ekrandan kişi bilgilerini alıp topluca işleme tâbi tutmak.
Kişi bilgileri 4 adet, o kişinin Adı ve soyadı, Adresi, Ürün ve Fiyat.
Bu bilgileri biz normalde veri tabanındaki tablolarda tutarız. Fakat öğretmen sizin henüz veri tabanı bilmediğinizi düşünerek bu verileri bellekteki bir dizide tutacak şekilde bir program yazmış.
Bu durumda dizinin 3 adetlik (sıfırıncı, birinci ve ikinci) elemanlarının her birinin içinde musteri adlı yukarıda tanımlanan record (kayıt) tutuluyor. Program çalıştığında girilen bilgiler bu dizide şu şekilde yer alacak.

                  Kayıt alanları       
                  =============================================================
Dizi indisi     adisoyadi                           adresi                               urun                                                fiyati
======   ================= ================= ================= =========
      0          yeni[0]. adisoyadi               yeni[0]. adresi                    yeni[0]. urun                         yeni[0]. fiyati
      1          yeni[1]. adisoyadi               yeni[1]. adresi                    yeni[1]. urun                         yeni[1]. fiyati
      2          yeni[2]. adisoyadi               yeni[2]. adresi                    yeni[2]. urun                         yeni[2]. fiyati

Verilen kodlar bu diziyi doldurmak için yazılmış. Amacımız bu diziyi tuşa bastığınızda ShowMessage(s); ile yazdırmak. Peki bunun için ne yapacaksınız. s değişkeninin içine girilen bilgileri sırayla koymanız gerekecek.

Bunun için gerekli kodları oluşturmayı deneyin. Takıldığınız yerde buradan sorabilirsiniz.
Cevapla
#3
procedure TForm1. Button1Click (Sender: TObject);
var
i:integer;
yeni:Array [0..2] of musteri;
begin
for i:=0 to 2 do
begin
yeni[i]. adisoyadi:=InputBox ('Ad','Musteri','');
yeni[i]. adresi:=InputBox ('Adres','Musteri','');
yeni[i]. urun:=InputBox ('Urün','Musteri','');
yeni[i]. fiyati:=StrToCurr (InputBox ('Fiyat','Musteri',''));
end;
// cevap
MEMO1.Clear; // memoyu temizliyoruz
MEMO1.Lines.ADD(' ADISOYADI '+ ' --- ' + ' ADRESI ' +' --- '+ ' URUN'+' --- '+'FİYATI' );  // burası sütun başlık.
for i:=0 to 2 do
begin
MEMO1.Lines.Add(YENI[I].adisoyadi + '   '+ YENI[I].ADRESI + '   ' +  YENI[I].URUN   + '   '+FLOATTOSTR(YENI[I].FIYATI) ); // bu ksımda hafızadan verileri çağırıp memoya yaz
END;
//--
END;

Sorunuzun cevabı tekrar kodun içinde.
Cevapla
#4
(06-12-2021, Saat: 10:58)COMMANDX Adlı Kullanıcıdan Alıntı:
procedure TForm1. Button1Click (Sender: TObject);
var
i:integer;
yeni:Array [0..2] of musteri;
begin
for i:=0 to 2 do
begin
yeni[i]. adisoyadi:=InputBox ('Ad','Musteri','');
yeni[i]. adresi:=InputBox ('Adres','Musteri','');
yeni[i]. urun:=InputBox ('Urün','Musteri','');
yeni[i]. fiyati:=StrToCurr (InputBox ('Fiyat','Musteri',''));
end;
// cevap
MEMO1.Clear; // memoyu temizliyoruz
MEMO1.Lines.ADD(' ADISOYADI '+ ' --- ' + ' ADRESI ' +' --- '+ ' URUN'+' --- '+'FİYATI' );  // burası sütun başlık.
for i:=0 to 2 do
begin
MEMO1.Lines.Add(YENI[I].adisoyadi + '   '+ YENI[I].ADRESI + '   ' +  YENI[I].URUN   + '   '+FLOATTOSTR(YENI[I].FIYATI) ); // bu ksımda hafızadan verileri çağırıp memoya yaz
END;
//--
END;

Sorunuzun cevabı tekrar kodun içinde.

"ShowMessage" ile nasıl listeleriz demiş sanki.  Eğer yanlış anlamadıysam alternatif olabilir diye yazıyorum.


procedure TForm1. Button1Click (Sender: TObject);
var
i:integer;
mesaj : String ; 
yeni:Array [0..2] of musteri;
begin
for i:=0 to 2 do
begin
yeni[i]. adisoyadi:=InputBox ('Ad','Musteri','');
yeni[i]. adresi:=InputBox ('Adres','Musteri','');
yeni[i]. urun:=InputBox ('Urün','Musteri','');
yeni[i]. fiyati:=StrToCurr (InputBox ('Fiyat','Musteri',''));
end;


// cevap

for i:=0 to 2 do
begin
    Mesaj := inttoStr(i+1)+'.Ad Soyad : ' + yeni[i].adisoyadi + #13+ inttostr(i+1)+'.Adres : ' + yeni[i].adres + #13 + inttostr(i+1)+'.Ürün : ' + yeni[i].urun + #13 + inttostr(i+1)+'.Fiyat : ' + yeni[i].fiyat + #13 ;
 end;
Showmessage(mesaj);
//--
END;
Cevapla
#5
(07-12-2021, Saat: 09:25)Bay_Y Adlı Kullanıcıdan Alıntı:
(06-12-2021, Saat: 10:58)COMMANDX Adlı Kullanıcıdan Alıntı:
procedure TForm1. Button1Click (Sender: TObject);
var
i:integer;
yeni:Array [0..2] of musteri;
begin
for i:=0 to 2 do
begin
yeni[i]. adisoyadi:=InputBox ('Ad','Musteri','');
yeni[i]. adresi:=InputBox ('Adres','Musteri','');
yeni[i]. urun:=InputBox ('Urün','Musteri','');
yeni[i]. fiyati:=StrToCurr (InputBox ('Fiyat','Musteri',''));
end;
// cevap
MEMO1.Clear; // memoyu temizliyoruz
MEMO1.Lines.ADD(' ADISOYADI '+ ' --- ' + ' ADRESI ' +' --- '+ ' URUN'+' --- '+'FİYATI' );  // burası sütun başlık.
for i:=0 to 2 do
begin
MEMO1.Lines.Add(YENI[I].adisoyadi + '   '+ YENI[I].ADRESI + '   ' +  YENI[I].URUN   + '   '+FLOATTOSTR(YENI[I].FIYATI) ); // bu ksımda hafızadan verileri çağırıp memoya yaz
END;
//--
END;

Sorunuzun cevabı tekrar kodun içinde.

"ShowMessage" ile nasıl listeleriz demiş sanki.  Eğer yanlış anlamadıysam alternatif olabilir diye yazıyorum.


procedure TForm1. Button1Click (Sender: TObject);
var
i:integer;
mesaj : String ; 
yeni:Array [0..2] of musteri;
begin
for i:=0 to 2 do
begin
yeni[i]. adisoyadi:=InputBox ('Ad','Musteri','');
yeni[i]. adresi:=InputBox ('Adres','Musteri','');
yeni[i]. urun:=InputBox ('Urün','Musteri','');
yeni[i]. fiyati:=StrToCurr (InputBox ('Fiyat','Musteri',''));
end;


// cevap

for i:=0 to 2 do
begin
    Mesaj := inttoStr(i+1)+'.Ad Soyad : ' + yeni[i].adisoyadi + #13+ inttostr(i+1)+'.Adres : ' + yeni[i].adres + #13 + inttostr(i+1)+'.Ürün : ' + yeni[i].urun + #13 + inttostr(i+1)+'.Fiyat : ' + yeni[i].fiyat + #13 ;
    ShowMessage(Mesaj);  

END;
//--
END;

Evet, aynen
Ha show messacce, ha Memo1 den versacce.
Ne farkediyye? 
showmessage(memo1. text) ; olsa olamaz mı Bilo, Maho aşık olamaz mı, bi çikküfte bile yaptırmiyürsüz, yine de canın sağola.
Her zaman test amaçlı memo kullanırım. 
Show message dank dunk dink gibi hede hödö  nedeniyle pek kullanışsız
Cevapla
#6
(07-12-2021, Saat: 09:25)Bay_Y Adlı Kullanıcıdan Alıntı:
(06-12-2021, Saat: 10:58)COMMANDX Adlı Kullanıcıdan Alıntı:
procedure TForm1. Button1Click (Sender: TObject);
var
i:integer;
yeni:Array [0..2] of musteri;
begin
for i:=0 to 2 do
begin
yeni[i]. adisoyadi:=InputBox ('Ad','Musteri','');
yeni[i]. adresi:=InputBox ('Adres','Musteri','');
yeni[i]. urun:=InputBox ('Urün','Musteri','');
yeni[i]. fiyati:=StrToCurr (InputBox ('Fiyat','Musteri',''));
end;
// cevap
MEMO1.Clear; // memoyu temizliyoruz
MEMO1.Lines.ADD(' ADISOYADI '+ ' --- ' + ' ADRESI ' +' --- '+ ' URUN'+' --- '+'FİYATI' );  // burası sütun başlık.
for i:=0 to 2 do
begin
MEMO1.Lines.Add(YENI[I].adisoyadi + '   '+ YENI[I].ADRESI + '   ' +  YENI[I].URUN   + '   '+FLOATTOSTR(YENI[I].FIYATI) ); // bu ksımda hafızadan verileri çağırıp memoya yaz
END;
//--
END;

Sorunuzun cevabı tekrar kodun içinde.

"ShowMessage" ile nasıl listeleriz demiş sanki.  Eğer yanlış anlamadıysam alternatif olabilir diye yazıyorum.


procedure TForm1. Button1Click (Sender: TObject);
var
i:integer;
mesaj : String ; 
yeni:Array [0..2] of musteri;
begin
for i:=0 to 2 do
begin
yeni[i]. adisoyadi:=InputBox ('Ad','Musteri','');
yeni[i]. adresi:=InputBox ('Adres','Musteri','');
yeni[i]. urun:=InputBox ('Urün','Musteri','');
yeni[i]. fiyati:=StrToCurr (InputBox ('Fiyat','Musteri',''));
end;


// cevap

for i:=0 to 2 do
begin
    Mesaj := inttoStr(i+1)+'.Ad Soyad : ' + yeni[i].adisoyadi + #13+ inttostr(i+1)+'.Adres : ' + yeni[i].adres + #13 + inttostr(i+1)+'.Ürün : ' + yeni[i].urun + #13 + inttostr(i+1)+'.Fiyat : ' + yeni[i].fiyat + #13 ;
    ShowMessage(Mesaj);  

END;
//--
END;

Ancak ShowMessage'ın döngü dışında, sonrasında olması gerekiyor.
Cevapla
#7
(07-12-2021, Saat: 21:10)mustafaozpinar Adlı Kullanıcıdan Alıntı:
(07-12-2021, Saat: 09:25)Bay_Y Adlı Kullanıcıdan Alıntı: "ShowMessage" ile nasıl listeleriz demiş sanki.  Eğer yanlış anlamadıysam alternatif olabilir diye yazıyorum.


procedure TForm1. Button1Click (Sender: TObject);
var
i:integer;
mesaj : String ; 
yeni:Array [0..2] of musteri;
begin
for i:=0 to 2 do
begin
yeni[i]. adisoyadi:=InputBox ('Ad','Musteri','');
yeni[i]. adresi:=InputBox ('Adres','Musteri','');
yeni[i]. urun:=InputBox ('Urün','Musteri','');
yeni[i]. fiyati:=StrToCurr (InputBox ('Fiyat','Musteri',''));
end;


// cevap

for i:=0 to 2 do
begin
    Mesaj := inttoStr(i+1)+'.Ad Soyad : ' + yeni[i].adisoyadi + #13+ inttostr(i+1)+'.Adres : ' + yeni[i].adres + #13 + inttostr(i+1)+'.Ürün : ' + yeni[i].urun + #13 + inttostr(i+1)+'.Fiyat : ' + yeni[i].fiyat + #13 ;
    ShowMessage(Mesaj);  

END;
//--
END;

Ancak ShowMessage'ın döngü dışında, sonrasında olması gerekiyor.
Doğru söylüyorsunuz. Teşekkürler
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi - ödevim var yardımcı olur musunuz ? kanjey 4 2.705 16-12-2020, Saat: 09:42
Son Yorum: Mr.Developer
  Levhadaki sıcaklık dağılımının delphi ile belirlenmesi mcgrns 11 9.366 15-01-2019, Saat: 12:21
Son Yorum: mcuyan



Konuyu Okuyanlar: 1 Ziyaretçi