editleri çalışma anında hareket ettirmek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
zayfin
Üye
Mesajlar: 24
Kayıt: 19 Haz 2003 07:04
Konum: istanbul
İletişim:

editleri çalışma anında hareket ettirmek

Mesaj gönderen zayfin »

selam
her hangi bir edit i kullanıcının isteği yere hareket ettiriyorum
kod aşağıda
******************************
procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const
sc_DragMove=$F012;
begin
ReleaseCapture;
edit1.perform(WM_SYSCOMMAND, sc_DragMove, 0);
end;
************************************

ancak sorun şu ki çalışma anında kullanıcının isteği sayıda edit üreteceğim.
bu yüzden bu kod işlemez oluyor bunun çözümü var mı?
kullanıcı istediği edit i istediği yere taşıya bilecek.
teşekkürler
teşekkürler
sağlıcakla kalın
Kullanıcı avatarı
eduran
Üye
Mesajlar: 52
Kayıt: 03 Tem 2003 04:02

nesne taşıma

Mesaj gönderen eduran »

selam. gönderdiğiniz koddaki;

edit1.perform(WM_SYSCOMMAND, sc_DragMove, 0); kısmı anladığım kadarıyla sadece edit1 `i taşıyor. Bu yüzden üretilen diğer edit nesnelerini taşımıyor.

bunun için ortak bir procedure yazmalıyız üretilecek bütün edit nesnelerini taşımak için. ve bu procedure deki bu kısmı da;
(sender as tedit).perform(WM_SYSCOMMAND, sc_DragMove, 0); diye değiştirmeliyiz. üretilecek edit nesnesinin onmousedown olayını da bu procedure`e bağlamalıyız.

kısacası demek istediğim şöyle:

Kod: Tümünü seç

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
   with tedit.Create(self) do
   begin
      parent:=self;
      top:=y;
      left:=x;
      OnMouseDown:=erkan;
   end;
end;

procedure TForm1.erkan(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const
   sc_DragMove=$F012;
begin
   ReleaseCapture;
   (sender as tedit).perform(WM_SYSCOMMAND, sc_DragMove, 0);
end;
iyi çalışmalar.
Kullanıcı avatarı
zayfin
Üye
Mesajlar: 24
Kayıt: 19 Haz 2003 07:04
Konum: istanbul
İletişim:

Mesaj gönderen zayfin »

hocam saol
kod işe yaradı ama !
insanlar nefislerinden dolayı sürekli daha fazlasını isterler.
kodu uyguladığımda aynı anda sadece bir edit i hareket ettirebiliyorum.

şöyle bişey olabilir mi?

biz tasarım anında delphi de her hangi bir edit veya comboyu yada hepsini seçip hareket ettirebiliyoruz istediğimiz sayıda.

kullanıcınında bunu yapmasını istiyorum mümkün mü?

teşekkürler.
teşekkürler
sağlıcakla kalın
Kullanıcı avatarı
eduran
Üye
Mesajlar: 52
Kayıt: 03 Tem 2003 04:02

Mesaj gönderen eduran »

selam. yapmak istediğinizi anladım fakat ben de nasıl olacağını bilmiyorum. biraz denedim ancak başarılı olamadım.
(sender as tedit).perform(WM_SYSCOMMAND, sc_DragMove, 0); sadece bir edit`i taşımak için. döngüye aldığım da olmuyor. sanırım bu gibi işler için componentler falan vardır. kolay gelsin.. iyi çalışmalar...
Cevapla