Dbgridde kopyala-Yapıştır

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
kelaynak2
Üye
Mesajlar: 135
Kayıt: 30 Haz 2003 02:18

Dbgridde kopyala-Yapıştır

Mesaj gönderen kelaynak2 »

Edit1.CopyToClipboard;
edit1.PasteFromClipborad;

komutlarını Dbgrid için Popup menüden nasıl kullanabilirim.
Diyelimki Dbgridde bir alandaki metni seçtiğim kopyalama ve yapıştırma komutlarını vermek istiyorum.
Dbgride popup menü atamazsam windowsun özelliği ile kopyala-yapıştır popupda zaten geliyor.Fakat ben bir popup atamak zorundayım ve aynı popupun altına kopyala-Yapıştırı koymak istiyorum
Selamlar.
Akin_Delphi
Üye
Mesajlar: 163
Kayıt: 06 Nis 2006 12:22

Re: Dbgridde kopyala-Yapıştır

Mesaj gönderen Akin_Delphi »

kelaynak2 yazdı:Edit1.CopyToClipboard;
edit1.PasteFromClipborad;

komutlarını Dbgrid için Popup menüden nasıl kullanabilirim.
Diyelimki Dbgridde bir alandaki metni seçtiğim kopyalama ve yapıştırma komutlarını vermek istiyorum.
Dbgride popup menü atamazsam windowsun özelliği ile kopyala-yapıştır popupda zaten geliyor.Fakat ben bir popup atamak zorundayım ve aynı popupun altına kopyala-Yapıştırı koymak istiyorum
Selamlar.
Standart Action'lar kullanabilirsiniz. ActionList bileşeninde standart actionlar arasında Copy, Cut, Paste standart eylemleri var. Ancak anladığım kadarıyla sizin yapmaya çalıştığınız şey komple kaydı kopyalamak. Oldukça karmaşık olabilir.

Saygılar ve Başarılar
Kullanıcı avatarı
kelaynak2
Üye
Mesajlar: 135
Kayıt: 30 Haz 2003 02:18

Mesaj gönderen kelaynak2 »

Akin_Delphi

Yapmak istediğim kopmple kaydı değil bir alanın fareyle seçilmiş textini kopyalamak
dbgrid1.Columns.Grid.Fields[0].CopyToClipboard;
dbgrid1.Columns.Grid.Fields[0].PasteFromClipboard;
gibi birşey.
Kullanıcı avatarı
kelaynak2
Üye
Mesajlar: 135
Kayıt: 30 Haz 2003 02:18

Mesaj gönderen kelaynak2 »

Çözümünü
http://www.panix.com/~mmowens/delphi/oldtip.shtml linkinden buldum.

SendMessage(GetFocus, WM_COPY, 0, 0); {Copy selection to clipboard}

SendMessage(GetFocus, WM_PASTE, 0, 0); {Replace selection with clipboard contents}

SendMessage(GetFocus, WM_CLEAR, 0, 0); {Clear selection}

SendMessage(GetFocus, EM_UNDO, 0, 0); {Undo last operation}

Şimdi Sorunum cell içindeki belli bir kelime seçili ise popupdaki kopyala aktif olsun, değilse pasif olsun?
Biraz araştırınca aşağıdaki kodla olduğunu buldum,Saygılar.

Kod: Tümünü seç

procedure TForm1.PopupMenu1Popup(Sender: TObject);
type
  Tsecim = record
    StartPos, EndPos: Integer;
  end;
var
result:integer;
Secim: Tsecim;
begin
 SendMessage(GetFocus, EM_GETSEL, Longint(@Secim.StartPos), Longint(@Secim.EndPos));
   Result := Secim.EndPos - Secim.StartPos;
   pkopyala.Enabled:=result> 0;
end;
Cevapla