Çalışma Anında (Runtime Design) Nesne Yer Değiştirme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Çalışma Anında (Runtime Design) Nesne Yer Değiştirme

Mesaj gönderen pro_imaj »

Merhaba Arkadaşlar;

Çalışma zamanında formdaki editleri Mause ile tutup sürükleyip yerini değiştirmek istiyorum. Bunu yaparken de component kullanmadan (Dexexpress vs) yapmak istiyorum nasıl yapabilirim?

Teşekkürler.
İyi çalışmalar.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Re: Çalışma Anında (Runtime Design) Nesne Yer Değiştirme

Mesaj gönderen pro_imaj »

Teşekürler thelvacı.

Birşeyler buldum.
aşağıdaki kodu nasıl düzenleyebilirim acaba?

(TUniButton(Sender).Name).Width := StrToInt(UniNumberEdit1.Text);

.Width yazan yerde hata alıyorum yazamazsın diyor?
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Çalışma Anında (Runtime Design) Nesne Yer Değiştirme

Mesaj gönderen thelvaci »

Sanırım gözünüzden kaçmış. Aşağıdaki şekilde yapabilirsiniz:

Kod: Tümünü seç

(Sender as TUniButton).Width := StrToInt(UniNumberEdit1.Text);
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Re: Çalışma Anında (Runtime Design) Nesne Yer Değiştirme

Mesaj gönderen pro_imaj »

Teşekkürler @thelvacı

Peki hocam;
İlgili nesnenin adını bir Edit ten alsam nasıl yazmam gerekiyor.

''+Edit1.Text+''.width := StrToInt(UniNumberEdit1.Text);

Yardımlarınız için çok teşekkür ederim.
Çok büyük bir eksikliği tamamlıyorsunuz.

Saygılarımla
Teşekkürler.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Çalışma Anında (Runtime Design) Nesne Yer Değiştirme

Mesaj gönderen thelvaci »

Kod: Tümünü seç

var
   AControl : TControl;
 begin
   AControl := FindComponent(Edit1.Text);
   
   if AControl <> nil then
     AControl.Width := 100;
 end;
gibi bir kod işinize yarar sanırım.
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Re: Çalışma Anında (Runtime Design) Nesne Yer Değiştirme

Mesaj gönderen pro_imaj »

Hata alıyorum ama sanırım anlatamadım.

Herhangi bir nesneye tıkladığım o nesnenin ne olduğunu Edit1.Text'e yazıyorum.

Sonrada yapmak istediğim şu
Bir butona bastığımda Edit1.Text teki değer benim işlem yaptırmak istediğim componentin adı.

O componentin formdaki Height değerini değiştirmek.

Teşekkürler.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: Çalışma Anında (Runtime Design) Nesne Yer Değiştirme

Mesaj gönderen G.Arkas »

Hocam merhaba,

Edit yada hangi componenti taşıyacaksanız onun mousedown eventine

Kod: Tümünü seç

  ReleaseCapture;
  Edit1.perform(WM_SYSCOMMAND, $F012, 0);// Component değişirse ismi değiştirin.


yazarak taşıyabilirsiniz. Kitlemek isterseniz parent vermeniz yeterli olur.
Resim
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Re: Çalışma Anında (Runtime Design) Nesne Yer Değiştirme

Mesaj gönderen pro_imaj »

Hocam Ekteki Proje dosyasında;

Üstteki Edit1 e tıklayın. Tıkladığınızda Component adı Edit2 ye yazılacak.

Sonrasında da butona bastığınızda (Burasını yapmaya çalışıyorum) Edit2 deki component adı ne ise onun Width değerini 100 yapmak istiyorum.

Zaman ayırdığınız için teşekkür ederim.
Dosya ekleri
Orn.rar
(65.14 KiB) 68 kere indirildi
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Çalışma Anında (Runtime Design) Nesne Yer Değiştirme

Mesaj gönderen thelvaci »

pro_imaj yazdı:Hata alıyorum ama sanırım anlatamadım.

Herhangi bir nesneye tıkladığım o nesnenin ne olduğunu Edit1.Text'e yazıyorum.

Sonrada yapmak istediğim şu
Bir butona bastığımda Edit1.Text teki değer benim işlem yaptırmak istediğim componentin adı.

O componentin formdaki Height değerini değiştirmek.

Teşekkürler.
Aldığınız hata mesajı nedir ?
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Re: Çalışma Anında (Runtime Design) Nesne Yer Değiştirme

Mesaj gönderen pro_imaj »

thelvaci yazdı:
pro_imaj yazdı:Hata alıyorum ama sanırım anlatamadım.

Herhangi bir nesneye tıkladığım o nesnenin ne olduğunu Edit1.Text'e yazıyorum.

Sonrada yapmak istediğim şu
Bir butona bastığımda Edit1.Text teki değer benim işlem yaptırmak istediğim componentin adı.

O componentin formdaki Height değerini değiştirmek.

Teşekkürler.
Aldığınız hata mesajı nedir ?
[dcc32 Error] Unit1.pas(35): E2010 Incompatible types: 'TControl' and 'TComponent'
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Çalışma Anında (Runtime Design) Nesne Yer Değiştirme

Mesaj gönderen thelvaci »

O zaman şu şekilde değiştirin kodu:

Kod: Tümünü seç

var
  AComponent : TComponent;
begin
  AComponent := FindComponent(Edit1.Text);
  
  if AComponent <> nil then
    if AComponent is TControl then // InheritsFrom'da kullanabilirsiniz.
      TControl(AComponent).Width := 100;
end;
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Re: Çalışma Anında (Runtime Design) Nesne Yer Değiştirme

Mesaj gönderen pro_imaj »

Ekli dosyayı indirebilir misiniz hocam.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Çalışma Anında (Runtime Design) Nesne Yer Değiştirme

Mesaj gönderen thelvaci »

Siz ne yapmaya çalışıyorsunuz ? Button1Click metodunuzun altındaki kod hatalı. Button'a bastığınızda edit'in genişliğini arttırmaya çalışmıyor musunuz ? Eğer öyle ise; Edit2.Text.Width nedir ?

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text.Width := '100'
end;

procedure TForm1.Edit1Click(Sender: TObject);
begin
Edit2.Text := (TEdit(Sender).name );
end;

procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
Edit1.perform(WM_SYSCOMMAND, $F012, 0);
end;
Kodunuz şuna benzer olmalı:

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
  AComponent : TComponent;
begin
  /*
     Edit2.Text 'in içinde Edit1 yazıyor ise aşağıdaki kod Edit1'in genişliğini 100 yapar;
     Edit2.Text 'in içinde Button1 yazıyor ise aşağıdaki kod Button1'in genişliğini 100 yapar...
  */
  AComponent := FindComponent(Edit2.Text);
  
  if AComponent <> nil then
    if AComponent is TControl then
      TControl(AComponent).Width := 100;
end;
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Re: Çalışma Anında (Runtime Design) Nesne Yer Değiştirme

Mesaj gönderen pro_imaj »

Hocam tam istediğim gibi yapmışsınız.

Teşekkür ederim elinize sağlık.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Cevapla