Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Alakasız satırların programa etkisi
#1
Merhabalar,
Uygulamamda kullandığım bir fonksiyonun son satırlarında değerleri takip etmek için Memo ya bilgi olarak aktarıyorum.

(Kodu mantığı bozmayacak şekilde sadeleştirdim.)

Sorun yok:
function cc(c0 : TPointF; ................ sa1 : Single; out yx, xy : TPointF; ) : Integer;
var i0, i1, i2, i3 : single; //..........
begin
//....................
       if a and b then c := True;
       Form1.Memo1.Lines.Add(yx.X.ToString+'_'+xy.X.ToString);
       Form1.Memo1.Lines.Add(i0.ToString+'_'+i3.ToString);
       Form1.Memo1.Lines.Add(i1.ToString+'_'+i2.ToString);
   end;
end;
Bu şekilde kodu derleyip çalıştırırsam sorun yok.

Memoya bilgi aktarımını geçici süre durdurmak için aşağıdaki şekilde ilgili 3 satırı açıklama satırına döndürdüğümde foksiyon yanlış değer dönüyor olacak ki uygulama sıkıntı yaratıyor.

Sıkıntılı:
function cc(c0 : TPointF; ................ sa1 : Single; out yx, xy : TPointF; ) : Integer;
var i0, i1, i2, i3 : single; //..........
begin
//....................
       if a and b then c := True;
//       Form1.Memo1.Lines.Add(yx.X.ToString+'_'+xy.X.ToString);
//       Form1.Memo1.Lines.Add(i0.ToString+'_'+i3.ToString);
//       Form1.Memo1.Lines.Add(i1.ToString+'_'+i2.ToString);
   end;
end;
 Normal şartlarda bir sorun yaratmaz görünüyor. Ancak öyle değil.

 Bakın aşağıda sadece iki değerin aktarılmasından vazgeçtim ve yine sıkıntı yaşattı.
Sıkıntılı:
function cc(c0 : TPointF; ................ sa1 : Single; out yx, xy : TPointF; ) : Integer;
var i0, i1, i2, i3 : single; //..........
begin
//....................
       if a and b then c := True;
       Form1.Memo1.Lines.Add(yx.X.ToString+'_'+xy.X.ToString);
       Form1.Memo1.Lines.Add(i0.ToString+'_'+i3.ToString);
       Form1.Memo1.Lines.Add('_');
   end;
end;

Yani bu açıklama satırları kodların çalışmasını engelliyor. Bunun nasıl olduğunu anlamış değilim.

// Memo1.Lines.Add('xyzzz'); if a=b then c; şeklinde bir satırda iki kod satırı olsa kazara siliyorum diyeceğim. Ancak böyle bir durum söz konusu değil. Eğer kodlama yapısında bir hata yapmadıysam BUG görünüyor.

 Sorunu bulmak için biraz vakit alacağından öncelikle buraya yazdım. Bu şekilde bir sorunla karşılaştınız mı? Belki benden kaynaklıdır bu sorunları yaşamamak için ne önerirsiniz.






Daha önce benzer sorunu çok önceleri MikroPascal ile yaşamıştım.

//Kod1:
//.....
a:=5;
if a=5 then b:=10;
//........



//Kod2:
//........
a:=5;
a:=a;
if a=5 then b:=10;
//........


Sizce kod1 ve kod2'de b değeri kaç? Normal şartlarda her ikisinde b:=10 ancak MikroPascalda bazı durumlarda BUG oluşuyordu ve iki satır arasına Kod2'deki gibi herhangi bir kod yazarak bu BUG aşıyordum. Bu olayın ne zaman hangi satırda olacağı ise piyangoydu. Farkedebilirsen sac baş yolmaktan kurtuluyordun.
Ağlarsa kablosuz ağlar, gerisi yerel ağlar...
Cevapla


Bu Konudaki Yorumlar
Alakasız satırların programa etkisi - Yazar: engerex - 28-10-2016, Saat: 17:57
Alakasız satırların programa etkisi - Yazar: barutali - 28-10-2016, Saat: 18:11
Alakasız satırların programa etkisi - Yazar: esistem - 28-10-2016, Saat: 18:36
Alakasız satırların programa etkisi - Yazar: edo - 28-10-2016, Saat: 20:18
Alakasız satırların programa etkisi - Yazar: engerex - 28-10-2016, Saat: 20:55
Alakasız satırların programa etkisi - Yazar: barutali - 28-10-2016, Saat: 21:06
Alakasız satırların programa etkisi - Yazar: engerex - 28-10-2016, Saat: 21:25
Cvp: Alakasız satırların programa etkisi - Yazar: barutali - 28-10-2016, Saat: 21:38
Alakasız satırların programa etkisi - Yazar: engerex - 30-10-2016, Saat: 22:25



Konuyu Okuyanlar: 1 Ziyaretçi