Listview evenst

FireMonkey ve Mobil uygulama (iOS, Android, Windows Phone) ile ilgili sorularınızı bu foruma sorabilirsiniz.
Cevapla
Kullanıcı avatarı
dogan
Üye
Mesajlar: 173
Kayıt: 17 Eki 2014 10:11

Listview evenst

Mesaj gönderen dogan »

İyi günler;

Listview herhangi bir satırda tıkladığımda veya 3 saniye beklediğinde Rectangle devreye almak istiyorum fakat MouseMove ve DblClick kafasına göre işlem yapıyor, evenst neden işlem yaptıramıyorum?...


Üç sefer showmessage arka arkaya ekrana geldi:

Kod: Tümünü seç

procedure TForm1.ListView1MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Single);
begin
  showmessage('deneme');
end;
Aktif olmadı:

Kod: Tümünü seç

procedure TForm1.ListView1DblClick(Sender: TObject);
begin
  showmessage('deneme');
end;
En son dogan tarafından 23 May 2016 09:56 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Lşstview evenst

Mesaj gönderen fesiharslan »

Merhaba;
ListView nesnesinin OnItemClick olayına,

Kod: Tümünü seç

procedure TForm1.ListView1ItemClick(const Sender: TObject; const AItem: TListViewItem);
begin
  ShowMessage(AItem.Text);
end;
yazmanız yeterlidir.

Aşağıda yaptığım örnek uygulamada SQLite veri tabanına bağlanıyor ve ürün listesini ListView nesnesinde gösteriyor.
Örnek içeriği: Veri tabanı bağlantısı, kayıtları ListView'de gösterme ve Listeden bir kaydı tıklayıp seçme.
Link;
https://mega.nz/#!qdNQ2JQK!4qInzp-8xyg5 ... 3bPPSeq1zk
madrobbie20
Üye
Mesajlar: 8
Kayıt: 17 May 2016 04:33

Re: Lşstview evenst

Mesaj gönderen madrobbie20 »

MErhaba Fesih Bey
projem için yaptığınız örnek programdan faydalanmayı düşünüyorum.Yapacağım program iki adet formdan oluşuyor
ilk formda listview lerde kayıt adları olacak bastığımda ikinci forma ayrıntılar için gidicek

ikinci formda
Kayıt Adı (listview de gösterilen)
Şifre
gibi verileri girebileceğim editler olacak veritabanına kayıt yapıcak
Böyle bir uygulama yapmaya çalışıyorum.Yardımcı olabilirseniz sevinirim
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Lşstview evenst

Mesaj gönderen fesiharslan »

madrobbie20 yazdı:MErhaba Fesih Bey
projem için yaptığınız örnek programdan faydalanmayı düşünüyorum.Yapacağım program iki adet formdan oluşuyor
ilk formda listview lerde kayıt adları olacak bastığımda ikinci forma ayrıntılar için gidicek

ikinci formda
Kayıt Adı (listview de gösterilen)
Şifre
gibi verileri girebileceğim editler olacak veritabanına kayıt yapıcak
Böyle bir uygulama yapmaya çalışıyorum.Yardımcı olabilirseniz sevinirim
Hangi aşamasında sorun yaşıyorsunuz. Yardımda bulunacağım kısım konusunda biraz daha detaylı soru sorarsanız, bilgim dahilinde yardımcı olmaya çalışırım.
madrobbie20
Üye
Mesajlar: 8
Kayıt: 17 May 2016 04:33

Re: Lşstview evenst

Mesaj gönderen madrobbie20 »

SQllite kullanarak İki formdan oluşan parolaları saklayan bir program yapmaya çalışıyorum.
İkinci formda bulunan editlerden
KAyıt adı
Şifre
Mail
Telefon
Not gibi bilgileri girdiğimde veritabanına kayıdı yapıp ilk formda yer alan listbox'a Kayıt Adı ekleyecek.
Daha sonra listboxta ki kayıt adı'na bastığımda daha önceden kayıt edilen bilgileri gösterecek.
ikinci formdan sadece kayıt adı bilgisini stringle form1 e taşıyıp listbox'ta gösterdim.Diğer bilgileri nasıl kayıt edip göstereceğimi sormak istiyorum.
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Lşstview evenst

Mesaj gönderen fesiharslan »

Merhaba;
madrobbie20 yazdı:SQllite kullanarak İki formdan oluşan parolaları saklayan bir program yapmaya çalışıyorum.
İkinci formda bulunan editlerden
KAyıt adı
Şifre
Mail
Telefon
Not gibi bilgileri girdiğimde veritabanına kayıdı yapıp ilk formda yer alan listbox'a Kayıt Adı ekleyecek.
Daha sonra listboxta ki kayıt adı'na bastığımda daha önceden kayıt edilen bilgileri gösterecek.
ikinci formdan sadece kayıt adı bilgisini stringle form1 e taşıyıp listbox'ta gösterdim.Diğer bilgileri nasıl kayıt edip göstereceğimi sormak istiyorum.
Uygulamanızda 2 form kullanmayın. Yalnızca tek formunuz (Ana form) olsun.
1- Forma bir adet TabControl yerleştirin.
2- TabControl'e 2 adet TabItem ekleyin. 1. TabItem ana ekranınız, 2. TabItem ise detay ekranınız olacak. Detay ekranında SQLite veri tabanına kayıt yapabilirsiniz.

Not: Kayıt işlemini gerçekleştirdikten sonra, ilk Tab'da yer alan kayıt listenizi güncellemeyi unutmayın.

3- Uygulamanın ilk açılışında TabControl'ün aktif Tab'ını TabItem1 yapın.
Bunun için Formun OnShow olayına aşağıdaki kodu yazabilirsiniz.

Kod: Tümünü seç

TabControl1.ActiveTab:=TabItem1;
4- TabControl sekmelerini gizleyin.
Bunun için formun OnCreate olayına aşağıdaki kodu
yazmanız yeterli olacaktır.

Kod: Tümünü seç

TabControl1.TabPosition:=TTabPosition.None;
5- Detay Tab' dan ana ekrana (Ana Tab'a) Geri dönmek için ise (Ana formunuz TabItem1) , Detay Tab'a bir buton yerleştirin ve OnClick olayına aşağıdaki kodu yazın.

Kod: Tümünü seç

TabControl1.ActiveTab:=TabItem1;
6- Detay kayda gitmek için (TabItem1'den TabItem2'ye gitmek) Kayıt listenizin (ListView) OnItemClick olayına aşağıdaki kodu yazın.

Kod: Tümünü seç

TabControl1.ActiveTab:=TabItem2;
İyi çalışmalar.
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Lşstview evenst

Mesaj gönderen brs »

Selam fesiharslan, anlamak için soruyorum, bir kaç yazınızda okudum ikinci bir form olusturmayin diyorsunuz? Birden fazla form oluşturmanın ne gibi bir sıkıntısı olabilir...
En son brs tarafından 21 May 2016 02:14 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Lşstview evenst

Mesaj gönderen brs »

Ben birden fazla form oluşturuyorum nedeni ise küçük ekranda sıkıntı olması ve çok sayıda buton olması kod satır sayısı gibi nedenlerden..
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
madrobbie20
Üye
Mesajlar: 8
Kayıt: 17 May 2016 04:33

Re: Lşstview evenst

Mesaj gönderen madrobbie20 »

teşekkür ediyorum çok yararlı oldu benim için hemen deniyorum dediklerinizi
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Lşstview evenst

Mesaj gönderen fesiharslan »

A.s. @brs;
brs yazdı:Selam fesiharslan, anlamak için soruyorum, bir kaç yazınızda okudum ikinci bir form olusturmayin diyorsunuz? Birden fazla form oluşturmanın ne gibi bir sıkıntısı olabilir...
Form yapısının TabControl'e göre daha kompleks ve property sayısının fazla olmasından dolayı, cihaz kaynaklarını daha fazla kullanacaktır. Küçük projelerde (yalnızca master detay yapılarında) herzaman tavsiyem bu olacaktır. Malum mobil platform daha esnek bir yapı ister. Bunun haricinde bir sakıncası yok. Detay işlemler için 2. Form da kullanılabilir.
brs yazdı:Ben birden fazla form oluşturuyorum nedeni ise küçük ekranlarfa sıkıntı olması ve çok sayıda buton olması kod satır sayısı gibi nedenlerden..
Birden fazla form'un tabiki avantajları da çoktur. Sizin de belirttiğiniz gibi projeyi parçalı (modüler) hale getirerek, daha etkin ve hızlı güncelleme (destek vermenizi) yapabilmenizi sağlar.
madrobbie20
Üye
Mesajlar: 8
Kayıt: 17 May 2016 04:33

Re: Lşstview evenst

Mesaj gönderen madrobbie20 »

fesiharslan yazdı:Merhaba;
madrobbie20 yazdı:SQllite kullanarak İki formdan oluşan parolaları saklayan bir program yapmaya çalışıyorum.
İkinci formda bulunan editlerden
KAyıt adı
Şifre
Mail
Telefon
Not gibi bilgileri girdiğimde veritabanına kayıdı yapıp ilk formda yer alan listbox'a Kayıt Adı ekleyecek.
Daha sonra listboxta ki kayıt adı'na bastığımda daha önceden kayıt edilen bilgileri gösterecek.
ikinci formdan sadece kayıt adı bilgisini stringle form1 e taşıyıp listbox'ta gösterdim.Diğer bilgileri nasıl kayıt edip göstereceğimi sormak istiyorum.
Uygulamanızda 2 form kullanmayın. Yalnızca tek formunuz (Ana form) olsun.
1- Forma bir adet TabControl yerleştirin.
2- TabControl'e 2 adet TabItem ekleyin. 1. TabItem ana ekranınız, 2. TabItem ise detay ekranınız olacak. Detay ekranında SQLite veri tabanına kayıt yapabilirsiniz.

Not: Kayıt işlemini gerçekleştirdikten sonra, ilk Tab'da yer alan kayıt listenizi güncellemeyi unutmayın.

3- Uygulamanın ilk açılışında TabControl'ün aktif Tab'ını TabItem1 yapın.
Bunun için Formun OnShow olayına aşağıdaki kodu yazabilirsiniz.

Kod: Tümünü seç

TabControl1.ActiveTab:=TabItem1;
4- TabControl sekmelerini gizleyin.
Bunun için formun OnCreate olayına aşağıdaki kodu
yazmanız yeterli olacaktır.

Kod: Tümünü seç

TabControl1.TabPosition:=TTabPosition.None;
5- Detay Tab' dan ana ekrana (Ana Tab'a) Geri dönmek için ise (Ana formunuz TabItem1) , Detay Tab'a bir buton yerleştirin ve OnClick olayına aşağıdaki kodu yazın.

Kod: Tümünü seç

TabControl1.ActiveTab:=TabItem1;
6- Detay kayda gitmek için (TabItem1'den TabItem2'ye gitmek) Kayıt listenizin (ListView) OnItemClick olayına aşağıdaki kodu yazın.

Kod: Tümünü seç

TabControl1.ActiveTab:=TabItem2;
İyi çalışmalar.
Fesih Bey Dediğiniz Gibi Yaptım gayet guzel de oldu tekrardan tesekkur ederim .sqlite database Baglantısı aşağıdaki gibi yapmaya calısıyorum amacım editlerdeki verilerin tamamını veritabanına kaydetmek ve edit1 deki veriyi de listview de gostermek.Edit1 deki veriyi veritabanına kaydedip listview de gösterdikten sonra diğer edittekileri veritabanına kaydetmeden FİREDAC Phys SQLite ERROR:database is locked
hatası alıyorum bu sorunu nasıl aşabilirim?

FDQueryInsert.ParamByName('Name').AsString := Edit1.Text;
FDQueryInsert.ParamByName('Password').AsString := Edit2.Text;
FDQueryInsert.ParamByName('Mail').AsString := Edit3.Text;
FDQueryInsert.ExecSQL();
FDTableTask.Refresh;
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Lşstview evenst

Mesaj gönderen fesiharslan »

Rica ederim.
FIREDAC Phys SQLite ERROR:database is locked
hatası, Aynı anda bir veri tabanına, birden fazla uygulama bağlanmak istendiğinde ortaya çıkar.
Siz büyük bir ihtimalle bir veri tabanı yönetim aracı ile veri tabanına bağlı iken, uygulama arayüzünde FDConnection bağlantısını da aktifleștirmeye çalıştığınızda bu hata oluşuyor.
Çözüm için; veri tabanı ile diğer harici uygulamaların bağlantısını kesin. Daha sonra tasarım anında FDConnection'ı aktifleștirin.
madrobbie20
Üye
Mesajlar: 8
Kayıt: 17 May 2016 04:33

Re: Lşstview evenst

Mesaj gönderen madrobbie20 »

Teşekkür Ederim Fesih Bey Çok yardımcı oluyorsunuz
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Lşstview evenst

Mesaj gönderen fesiharslan »

Rica ederim.
Formdaki asıl bulunma amacım bildiklerimi paylaşmak.
İyi çalışmalar...
Cevapla