Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Classım ile birlikte Listview Elemanlarımın yok olması
#1
Nerede Enteresan şey olur beni bulur  Tongue

MyRDPClient adında bir classım var,
Formumda ListViewim var bu ListViewde uzak masaüstü yapabildiğim sunucu listesi var, üzerine çift tıklayınca onun bilgilerini alıp MyRDPClient create edip bağlantıyı sağlıyorum. MyRDPClient parentim ListView

Bağlantıyı bitirdiğimde MyRDPClient  Free ve Nil yapıyorum. rdp sonlanıyor listem geri geliyor.

Fakat Free ve Nil yaptıktan sonra log atması için bir procedure yazmıştım onu çalıştırdım. bu sefer listem geri dönmedi, herhalde proceduremde hata var dedim sildim. yine de dönmüyor. rdp sonlanıyor ama Listviewimdeki elemanlar kayıp.

Uygulamayı sildim yeniden yazdım yine Rdp sonlanıp listeme geri döndüm. Belki başka bir yerde hata yapmışımdır dedim procedureyi yeniden yazdım hoppala yine aynı. Listviewimdeki elemanlar görünüp kayboluyor.

Acaba parenti ListView seçtiğim için midir dedim panel koydum listvieve tıklıyorum panelde uzak rdp sağlanıyor, bağlantı sonlandırıyorum yine listvievim gidiyor yani benim MyRDPClient ile ListView parent bağlantısını koparsam bile MyRDPClient mi free edince ListView elemanlarım gidiyor.

Bu neden olabilir ?
WWW
Cevapla
#2
Kodunu görebilir isek daha isabetli yorum yapabiliriz sanırım güzel kardeşim.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#3
Gündüz iş yerinde okuduğumda soruyu anlayamamıştım. Şimdi eve geldim, sakin kafa ile tekrar okudum: yine anlayamadım Sad
There's no place like 127.0.0.1
WWW
Cevapla
#4
(19-09-2016, Saat: 22:06)SimaWB Adlı Kullanıcıdan Alıntı: Gündüz iş yerinde okuduğumda soruyu anlayamamıştım. Şimdi eve geldim, sakin kafa ile tekrar okudum: yine anlayamadım Sad

Normal Abi bende anlayamadım Smile
Bakın şimdi böyle bir listvievim (rdp bağlantı bilgisayarlarım) var
kEMgEm.png

Listemden bağlanacağım sunucuya dbclik yapınca rdp yapıyor işimi hallediyorum.
1NpkVD.png

İşim bitip bağlantıyı sonlandırınca listem yok oluyor
ZY5VZA.png

şimdi ilk mesajı okursanız daha anlaşılır olur...

Proje kodlarını ekledim.


Ek Dosyalar
.zip   MSRDP.zip (Dosya Boyutu: 165,06 KB / İndirme Sayısı: 12)
WWW
Cevapla
#5
Öncelikle sana tavsiyem; imkanın el verdiği ölçüde lokal değişkenler kullan. Sadece tek bir fonksiyon içinde kullanılacak bir değişkeni muhakkak o fonksiyon içinde tanımla. (list: Tlistitem; değişkeni gibi)
Form1'in fonksiyonları içinde kullanılacak bir değişkeni Form1'in private bölümünde tanımla.(MyRDPClient, maxsure, second, gerisayim vs...)
Kısacası interface bölümünün var bloğunu zorunlu olmadıkça kullanma.

MyRDPClient'in bir event'i içinde MyRDPClient'i Free ediyorsun. Bu da yanlış bir kullanım.
Kodlarını yanlış yorumlamadıysam her seferinde senin MyRDPClient'i Free ve nil yapmana gerek yok. Sadece disconnect yeterli. Madem 
if NOT Assigned(MyRDPClient) then

   MyRDPClient := TMsRdpClient7NotSafeForScripting.Create(self);
ile bir kez create ediyorsun o zaman sadece bir kez Free etmelisin. Form'un OnClose yada OnDestroy'unda olabilir.
There's no place like 127.0.0.1
WWW
Cevapla
#6
Merhaba,
Kodlarınızı incelemedim, yalnızca ekran görüntüsünden yola çıkarak yorum yapıyorum; Sunucu Listesi ve Uzak Bağlantı sekmeleriniz ayrı ayrı olmasına rağmen, Sunucu Listesi ile Uzak Bağlantını işlemlerinin her ikisini de aynı sekmede (Uzak Bağlantı ) görüntülüyorsunuz.
Görüntüler üst üste geldiğine ve siz alt kısımda kalan taşıyıcı kontrolleri yok ettiğinizde doğal olarak en üstte ve altta kalan tüm Objeler de yok olacaktır.
Cevapla
#7
(20-09-2016, Saat: 09:29)SimaWB Adlı Kullanıcıdan Alıntı: Öncelikle sana tavsiyem; imkanın el verdiği ölçüde lokal değişkenler kullan. Sadece tek bir fonksiyon içinde kullanılacak bir değişkeni muhakkak o fonksiyon içinde tanımla. (list: Tlistitem; değişkeni gibi)
Form1'in fonksiyonları içinde kullanılacak bir değişkeni Form1'in private bölümünde tanımla.(MyRDPClient, maxsure, second, gerisayim vs...)
Kısacası interface bölümünün var bloğunu zorunlu olmadıkça kullanma.

MyRDPClient'in bir event'i içinde MyRDPClient'i Free ediyorsun. Bu da yanlış bir kullanım.
Kodlarını yanlış yorumlamadıysam her seferinde senin MyRDPClient'i Free ve nil yapmana gerek yok. Sadece disconnect yeterli. Madem 
if NOT Assigned(MyRDPClient) then

   MyRDPClient := TMsRdpClient7NotSafeForScripting.Create(self);
ile bir kez create ediyorsun o zaman sadece bir kez Free etmelisin. Form'un OnClose yada OnDestroy'unda olabilir.

el verdiği ölçüde lokal değişkenler kullan -------- listi sonradan yukarı aldım belki bir ilgisi olabilir diye,

MyRDPClient'in bir event'i içinde MyRDPClient'i Free ediyorsun. Bu da yanlış bir kullanım. ----- Haklısın,

Peki listem neden yok oluyor olabilir ?

(20-09-2016, Saat: 09:34)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Merhaba,
Kodlarınızı incelemedim, yalnızca ekran görüntüsünden yola çıkarak yorum yapıyorum; Sunucu Listesi ve Uzak Bağlantı sekmeleriniz ayrı ayrı olmasına rağmen, Sunucu Listesi ile Uzak Bağlantını işlemlerinin her ikisini de aynı sekmede (Uzak Bağlantı ) görüntülüyorsunuz.
Görüntüler üst üste geldiğine ve siz alt kısımda kalan taşıyıcı kontrolleri yok ettiğinizde doğal olarak en üstte ve altta kalan tüm Objeler de yok olacaktır.

Ama Hocam bahsettiğim gibi parentimi listviewe değil de panele bağlasam ve üst üste değil yan yana koysam, yine de listviewvimi temizliyor.

Uygulamayı ilk yazdıgımda sıkıntı olmuyor ne zaman ki disconnect eventime bir procedure yazayım bu hale geliyor ve düüzeltemiyorum durumu
WWW
Cevapla
#8
RDPconnect içinde Aktif'i çağırıyorsun ve Aktif içinde ListView1.Clear yapıyorsun. Bu durumda ListView1'in temizlenmesi normal değil mi?
There's no place like 127.0.0.1
WWW
Cevapla
#9
(20-09-2016, Saat: 09:48)SimaWB Adlı Kullanıcıdan Alıntı: RDPconnect içinde Aktif'i çağırıyorsun ve Aktif içinde ListView1.Clear yapıyorsun. Bu durumda ListView1'in temizlenmesi normal değil mi?

Orada temizleyip yeniden çekeyim bari diye kod yazmıştım ve silmiştim ondan artık kalmış sonu kaldırsamda sonuç değişmiyor
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Fonksiyona gönderdiğim parametrelerin değişken olması ssmr 10 6.167 04-12-2021, Saat: 13:07
Son Yorum: CesuR
  PasLibVlc siyah ekran olması Atomkarınca 5 1.721 08-03-2021, Saat: 20:00
Son Yorum: Atomkarınca
  Listview içinde arada dilo 5 4.094 23-12-2020, Saat: 17:09
Son Yorum: Jakarta2
  ListView Bileşeninde Seçili Satırın Veri Tabanından Silinmesi bünyamin68 5 3.897 25-11-2019, Saat: 21:44
Son Yorum: BGNew
  Listview vsicon stilde tek ekrana sığdırma delhici 1 1.484 08-10-2019, Saat: 18:28
Son Yorum: mustafaozpinar



Konuyu Okuyanlar: 1 Ziyaretçi