formül hazırlama
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
formül hazırlama
merhaba arkadaşlar , excel tarzı bi ekrandan verileri aldırtarak kullanıcıya formül hazırlatıyorum. Bu formulü program içinde kullanmam gerekiyor. Ancak hazırlanan formülü kopyala yapıştır yapıp çalıştırdığım zaman çalışırken program içinde çalışmıyor. Zannedersem tip dönüşümünden kaynaklanan bir hata var ama sorunu çözemedim.
Ne yapabilirim?
kod aşagıda ;
uz:= Length(dbedit73.text);
i:=1;
while i<=uz do
begin
edit:=copy(dbedit73.Text,i,1);
if edit='F' then
begin
text:=copy(dbedit73.Text,i,3);
if text='F1A' then
Hesapla:= hesapla+Edit3.Text;
if text='F1B' then
Hesapla:= hesapla+Edit3.Text;
i:=i+3;
end
else
begin
if (edit = '*') or (edit='/') then
begin
ozelkarakter:=edit;
hesapla:=hesapla+edit;
end
ELSE begin
if (ozelkarakter='*') or (ozelkarakter='/') then
begin
Hesapla:= hesapla+edit;
ozelkarakter:='';
end
else hesapla:=hesapla+edit;
end;
i:=i+1;
end;
end;
edit4.Text:='floattostr('+hesapla+')';
edit4.text 'deki veriyi çalıştıramadım (İşlem sonucunu göremiyorum)
Ne yapabilirim?
kod aşagıda ;
uz:= Length(dbedit73.text);
i:=1;
while i<=uz do
begin
edit:=copy(dbedit73.Text,i,1);
if edit='F' then
begin
text:=copy(dbedit73.Text,i,3);
if text='F1A' then
Hesapla:= hesapla+Edit3.Text;
if text='F1B' then
Hesapla:= hesapla+Edit3.Text;
i:=i+3;
end
else
begin
if (edit = '*') or (edit='/') then
begin
ozelkarakter:=edit;
hesapla:=hesapla+edit;
end
ELSE begin
if (ozelkarakter='*') or (ozelkarakter='/') then
begin
Hesapla:= hesapla+edit;
ozelkarakter:='';
end
else hesapla:=hesapla+edit;
end;
i:=i+1;
end;
end;
edit4.Text:='floattostr('+hesapla+')';
edit4.text 'deki veriyi çalıştıramadım (İşlem sonucunu göremiyorum)
merhaba;
Yukarıdaki alanı muhtemelen double bir değişken gibi gözüküyor.
tırnaklarda yanlışlık var...Böyle olması lazım...
* Diğer hatalar için adım adım gitsen daha iyi olur...
iyi günler...
Kod: Tümünü seç
edit4.Text:='floattostr('+hesapla+')';
Kod: Tümünü seç
hesapla
tırnaklarda yanlışlık var...Böyle olması lazım...
Kod: Tümünü seç
edit4.Text:=floattostr(hesapla);
iyi günler...
O zaman sonucu şöyle görebilirsin;
Daha iyisi onunla hiç uğraşmayıp,
en güzeli bulunduğun satıra F5 ile BreakPoint koyarak,programın nerde hata verdiğini,değişkenlerin hangi değerleri aldığını öğrenebilirsin.
iyi günler...
Kod: Tümünü seç
edit4.Text:=hesapla;
en güzeli bulunduğun satıra F5 ile BreakPoint koyarak,programın nerde hata verdiğini,değişkenlerin hangi değerleri aldığını öğrenebilirsin.
iyi günler...
//edit float tipinde bi değişken ve edit4.text teki veriyi kopyalayıp çalıştırdıgımda sonuç dogru, ama edit4.text ten veriyi aşagıdaki gibi alıp kullanamıyorum.
edit:=strtofloat(DBEdit4.Text)*4+strtofloat(DBEdit4.Text)*5;
edit5.text:=floattostr(edit);
programı adım adım calıştırdım sonuç alamadım .Yardımlarınız için teşekkürler.
edit:=strtofloat(DBEdit4.Text)*4+strtofloat(DBEdit4.Text)*5;
edit5.text:=floattostr(edit);
programı adım adım calıştırdım sonuç alamadım .Yardımlarınız için teşekkürler.
Selam,
Görebildigim kadar cok hatan var, ilk hata son satirda basliyor
edit4.Text:='floattostr('+hesapla+')'; böyle bir sey asla calismaz.
floattostr, float degerini stringe cevirir. FloatTostr(234.24) gibi yada
var
Doubledeger: Double;
StringDeger : string;
begin
StringDeger := FloatTostr(Double);
showmessage('Degerin text olarak gösterilmesi ' + StringDeger);
end;
Diger hatan oparandlari bulmakla devam ediyor.
oparantlari düzgün secmediginden.
Delphinin demosunda Hesapmakinesi örnegi olmasi lazim. Ordaki örnegi bir incele.
ozelkarakter:=edit;
hesapla:=hesapla+edit;
Bu durumda Floattostr calismaz. Cünkü string'in icindekiler sadece rakam degil.
Görebildigim kadar cok hatan var, ilk hata son satirda basliyor
edit4.Text:='floattostr('+hesapla+')'; böyle bir sey asla calismaz.
floattostr, float degerini stringe cevirir. FloatTostr(234.24) gibi yada
var
Doubledeger: Double;
StringDeger : string;
begin
StringDeger := FloatTostr(Double);
showmessage('Degerin text olarak gösterilmesi ' + StringDeger);
end;
Diger hatan oparandlari bulmakla devam ediyor.
oparantlari düzgün secmediginden.
Delphinin demosunda Hesapmakinesi örnegi olmasi lazim. Ordaki örnegi bir incele.
ozelkarakter:=edit;
hesapla:=hesapla+edit;
Bu durumda Floattostr calismaz. Cünkü string'in icindekiler sadece rakam degil.
En son miskin tarafından 12 Ağu 2005 02:38 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
miskin
Ve Tanri, bütün kullarini davul edecek
Ve Tanri, bütün kullarini davul edecek

1. Kodlarını foruma verirken herkesin kullandığı yöntemi kullan.
2. böyle bir kod yazılmaz burası yanlış bir defa bunu bunuda bu şekilde yazabilmen ve sonuç alabilmen için hesapla değişkeninin float tipinde bir sayı olması lazım.
3. bu tip kodlarda begin kullan derim sorunsuz olur.
4. Özellikle if then kullanırken beginlerin ve end leri çok iyi kontrol etmen lazım. bir de hata alıyorsan hatanı da yazarasan iyi olur.Kolay gelsin.
2.
Kod: Tümünü seç
edit4.Text:='floattostr('+hesapla+')';
Kod: Tümünü seç
edit4.Text:=floattostr(hesapla);
3.
Kod: Tümünü seç
text:=copy(dbedit73.Text,i,3);
if text='F1A' then
Hesapla:= hesapla+Edit3.Text;
if text='F1B' then
Hesapla:= hesapla+Edit3.Text;
4. Özellikle if then kullanırken beginlerin ve end leri çok iyi kontrol etmen lazım. bir de hata alıyorsan hatanı da yazarasan iyi olur.Kolay gelsin.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
dilruba yazdı:textin içerigi mesela su şekilde
strtofloat(DBEdit4.Text)*4+strtofloat(DBEdit4.Text)*5
formulü ise F1A*4+F1B*5 gibi
Kod: Tümünü seç
procedure Denklem;
var
F1Faktor, F2Faktor : Double;
Islem, F1AIslemi, F1BIslemi : Char;
Pozisyon: integer;
Formul: string;
begin
Formul := 'F1A*4+F1B*5 ';
Pozisyon := Pos(F1A, Formul);
F1AIslemi := Formul[Pozisyon +3];
F1Faktor := FindNextSayi(Formul, Pozisyon +3);
Pozisyon := FindNextIslem(Formul, Pozisyon +3);
Islem := Formul[Pozisyon];
F1BIslem := Formul[Pozisyon +3];
F1AFaktor := FindNextSayi(Formul, Pozisyon +3);
Sonuc(.....)
end;
miskin
Ve Tanri, bütün kullarini davul edecek
Ve Tanri, bütün kullarini davul edecek
