2 adet soru... Timer ve Listview üzerine...

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
tachibana
Üye
Mesajlar: 21
Kayıt: 18 Nis 2005 06:48

2 adet soru... Timer ve Listview üzerine...

Mesaj gönderen tachibana »

Merhaba arkadaşlar sizlere içinden çıkamadığım 3 adet soru yöneltmek istiyorum.

1 - Timer ın intervalini bir matematik işlemi sonucu belirlemek istiyorum, fakat bütün kodları yazdıktan sonra Incopatible Types Integer and extended hatası alıyorum. Örnek kodu aşağıda...

Kod: Tümünü seç

var
artisa : integer;
artisb : integer;
begiN;
artisa := (SAATUCRETSAATUCRETI.AsVariant / 3600) ;
artisb := 50000 / artisa; ---->> Hata verdiği nokta..
UCRETTIMER.Interval := artisb;
end;
2 - Forma koyduğum Listview de bir item seçili iken programı kapattığım zaman "Access violation at address..." hatası alıyorum. Bunuda anlayamadım.
Resim
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

merhaba;
1.sorunuzun cevabı :
Timer in interval özelliği Integer tipli yani Tamsayı tipli bir değişkendir yaptığınız bölmenin sonucu kayan noktalı çıkınca bu sorunla karşılaşırsınız önelemek için çıkan sonucun tam olan kısmını almanızı öneririm yani

Kod: Tümünü seç

artisa := (SAATUCRETSAATUCRETI.AsVariant div 3600) ;
artisb := 50000 div artisa;
şeklinde kullanmalısınız.

2.Sorunuzun cevabı :
benzer bir sorunla bende karşılaşmıştım aşağıdaki topic i incelmenizi öneririm.
viewtopic.php?t=8557&highlight=listview

iyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
tachibana
Üye
Mesajlar: 21
Kayıt: 18 Nis 2005 06:48

Mesaj gönderen tachibana »

Çok teşekkürler... 1. sorunu hallettim fakat 2. sorun verdiğin linkle çok farklı. Sen boşyere tıklayınca hata alıyomuşun ben iteme tıklıyom fakat kapatırken bu hatayı alıyorum.
Resim
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

Bence tekrar gözden geçirmenizde yarar var sonuçta access violation hatası basit bir hata değil.bu arada kodlarıda yazarsanız vs. daha bilgilendirirsiniz arkadaşları bizlerde daha iyi bir şekilde cevaplamış oluruz tecrübemizde artar hep birlikte.kolay gelsin.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

merhaba,
form kapanırken çalışan olaylarda bir sıkıntı olabilir kontrol ettinizmi?
Volkan KAMADAN
www.polisoft.com.tr
tachibana
Üye
Mesajlar: 21
Kayıt: 18 Nis 2005 06:48

Mesaj gönderen tachibana »

listviewin onselect olayında bir sürü kod var. Bir kısmını göndereyim

Kod: Tümünü seç

LABEL1.Caption := LISTVIEW1.ItemFocused.Caption ;
QUERY1.Close;
QUERY1.SQL.Clear;
QUERY1.SQL.Add('SELECT * FROM KONTROL.DB');
QUERY1.SQL.ADD('WHERE PCAD =:AD');
QUERY1.ParamByName('AD').AsSTRING := LISTVIEW1.ItemFocused.Caption;
QUERY1.Open;[/quote]
Bunlar var

[quote]
IF ListView1.ItemFocused.ImageIndex = 0 then
begin
HSBK.Enabled := TRUE;
SRU.Enabled := FALSE;
KLLK.Enabled := TRUE;
PCKAPAT.Enabled := TRUE;
SPEEDBUTTON1.Enabled := FALSE;
SPEEDBUTTON2.Enabled := TRUE;
end;
[/quote]

Ayrıca bunlarda var...
Resim
metinkorkmaz
Üye
Mesajlar: 46
Kayıt: 25 May 2005 09:08
Konum: izmir

Mesaj gönderen metinkorkmaz »

IF ListView1.ItemFocused.ImageIndex = 0 then
Sorun bu kısımda olabilir.
if listview1.itemfocused <> nil then
veya
if assigned(listview1.itemfocused) then

gibi kontrol koyarsan yerinde olur. Herhangi bir seçim varsa çalışan kısım, sanırım seçim olmayınca hata veriyor. Yapman gereken seçili maddeyi kullanmadan önce ona deger atanıp atanmadıgını tesbit etmektir. Aksi halde nil olan (yani atama yapılmamış) bir degere ulaşamaya çalışır ve hata ile karşılaşırsın.
tachibana
Üye
Mesajlar: 21
Kayıt: 18 Nis 2005 06:48

Mesaj gönderen tachibana »

metinkorkmaz yazdı:
IF ListView1.ItemFocused.ImageIndex = 0 then
Sorun bu kısımda olabilir.
if listview1.itemfocused <> nil then
veya
if assigned(listview1.itemfocused) then

gibi kontrol koyarsan yerinde olur. Herhangi bir seçim varsa çalışan kısım, sanırım seçim olmayınca hata veriyor. Yapman gereken seçili maddeyi kullanmadan önce ona deger atanıp atanmadıgını tesbit etmektir. Aksi halde nil olan (yani atama yapılmamış) bir degere ulaşamaya çalışır ve hata ile karşılaşırsın.
Olay sadece ondan ibaret değil ama aynı şekilde imageindex = 1 ikende hata veriyor.
Resim
metinkorkmaz
Üye
Mesajlar: 46
Kayıt: 25 May 2005 09:08
Konum: izmir

Mesaj gönderen metinkorkmaz »

Breakpointleri kullanarak (hatanın verildigi düşündügün yerin başına) programı kapattıgında adım adım ilerleyip tam olarak hatanın nerede oldugunu tespit etmeye çalış.

Access violation genel olarak atama yapılmamış nesneler kullanınca ortaya çıkar. Örnegin free ile temizledigin bir nesnenin özelliklerini kullanmaya devam etmek istersen yine access violation ile karşılaşırsın.
Kullanıcı avatarı
Opt2000
Üye
Mesajlar: 216
Kayıt: 09 Tem 2003 10:04

OnSelect Olayında problem olmalı

Mesaj gönderen Opt2000 »

Selam,
Anladığım kadarı ile OnSelect olayında bir problem olabilir. OnSelect olayında parametre olarak Selected diye bir değişken var. Bu değişkeni kontrol ederek Focused Item'a ulaşmalısın. Çünkü ListView'in içi temizlendiğinde, OnSelect tekrar çalışır ve Selected False olarak gelir.
Cevapla