Formu Tasıma engeli

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
abdulkadir
Kıdemli Üye
Mesajlar: 489
Kayıt: 13 Eyl 2003 09:10
Konum: istanbul
İletişim:

Formu Tasıma engeli

Mesaj gönderen abdulkadir »

S.A

Form2.Showmodal olarak actıgım bir formun içinden
Form3.showform3 ü acıyorum
ama form2.tasınılabiliyorken form3 yi tasıyamıyorum

her 2 formda border BsNone
her 2 formda image nesnelerini tutamaç olarak kullanıyorum

Kod: Tümünü seç

procedure TForm3.Image1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  ReleaseCapture;
  Form3.Perform(WM_SysCommand, $F012, 0);
end;
form3 yi acmadan önce

form2.modalresult:=mrok;
Form3.show;

ile form2 kapatsamda yine sonuc degişmiyor
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Merhaba..

- Bence kodları kopyala yapıştır ederken bir hata yapmışsın. Bahsettiğin şekilde bir senaryo oluşturup denedim olmasını istediğin gib çalışıyor.

- AnaForm (Form1) üzerine iki yeni form (Form2 ve Form3) açtım .
- Form2 ve From3'ün BorderStyle özelliklerini bsNone yaptım..
- Form2 ve Form3'e birer TImage nesnesi ekledim.
- Her bir formdaki TImage nesnesinin OnMouseDown olaylarına tutamaç kodunu yerleştirdim.

:arrow: Şimdi önerimi getiriyorum. Kopyala yapıştır ile hata yapıp yapmadığını test için aşağıda vereceğim kodu, istisnasız değiştirmeden her iki form üzerindeki Image Nesnelerinin OnMouseDown olaylarına yaz, bakalım fark olacak mı ...

- Yani Form2 veya Form3 olarak sen vermeyip, hangi forma dahil olduğunu bilen akıllı :wink: nesneler olarak Image nesnelerinin kendisinin bu işi yapmasını sağlamış olursun....

Kod: Tümünü seç

  ReleaseCapture;
  TImage(Sender).Parent.Perform(WM_SysCommand, $F012, 0);
Resim
Resim ....Resim
abdulkadir
Kıdemli Üye
Mesajlar: 489
Kayıt: 13 Eyl 2003 09:10
Konum: istanbul
İletişim:

Mesaj gönderen abdulkadir »

öncelikle ilginize tesekkür ederim hocam

verdiginiz örnekte image nesnesini form içinde tasıyor
ancak formda hareket yok

kodları yeniden gözden gecirdim ama hataya rastlayamadım.

Tekrar tesekkür ederim.
abdulkadir
Kıdemli Üye
Mesajlar: 489
Kayıt: 13 Eyl 2003 09:10
Konum: istanbul
İletişim:

Mesaj gönderen abdulkadir »

yeni bir proje baslattım
3 adet form ile yukarda anlattıgım işlemi sorun
yasamadan gerceklestirdim

(her 3 formuda modal modda border bsnone iken image nesnelerinde tasıyabiliyorum)

demek sorun benim projeden ama bir bakayım
birseyleri devre dısı bırakıp deneyeyim

kolay gelsin.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Tekrar merhaba...
abdulkadir yazdı:verdiginiz örnekte image nesnesini form içinde tasıyor
ancak formda hareket yok
- Verdiğim koda parent dediğim halde sadece Image nesnesini taşıyor diyorsunuz. Ya kodları doğru aktarmadınız, ya da Image nesnesi aslında direkt forma değil, bir panel veya başka nesne üzerine bağlı... Bu detayı hesaba katmadım doğal olarak. :lol:

- Eski kodunuzda kontrol etmeniz gereken tek nokta, Form2 üzerindeki Image nesnesinin onMouseMove olayında Form2.Perform(..., Form3 üzerindeki Image nesnesinin OnMouseMove olayında Form3.Perform(... şeklinde o forma kendi formuna atıfta bulunup bulunmadığınızı teyid etmek şeklinde olacak...
Resim
Resim ....Resim
abdulkadir
Kıdemli Üye
Mesajlar: 489
Kayıt: 13 Eyl 2003 09:10
Konum: istanbul
İletişim:

Mesaj gönderen abdulkadir »

hocam tesekkür ederim sorunu anladım

form adı Form_log_Oku iken ben

Kod: Tümünü seç

var
  LogForm: TForm_log_Oku;
begin
  LogForm := TForm_log_Oku.Create(self);
  LogForm.Show;          
end;
söyle deyiştirince düzelti sorun kalmadı

Kod: Tümünü seç

begin
  Form_log_Oku := TForm_log_Oku.Create(self);
  Form_log_Oku.Show;
end;
teseekkür eder basarılar dilerim.
Cevapla