07-07-2017, Saat: 19:42
(07-07-2017, Saat: 19:32)cengaver Adlı Kullanıcıdan Alıntı:(07-07-2017, Saat: 13:49)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: Merhaba, ben Delphi Seattle kullanıyorum. Dolayısı ile private üyelere erişim iznim mevcut. Private erişimi kapatmaları iyi olmamış. Ama her zaman başka çözümler vardır. Tabii efektif midir tartışılabilir. Sizin için şöyle küçük bir örnek hazırladım:
TDataSetHelper = class helper for TDataSet public procedure UpDown(CurIndex, NewIndex: Integer); end; { TDataSetHelper } procedure TDataSetHelper.UpDown(CurIndex, NewIndex: Integer); type TMoveBufferProc = procedure(ACurIndex, ANewIndex: Integer) of object; var P : TMoveBufferProc; begin TMethod(P).Code := @TDataSet.MoveBuffer; TMethod(P).Data := Self; P(CurIndex, NewIndex); end; procedure TForm1.Button1Click(Sender: TObject); begin dxMemData1.UpDown(1, 2); // dxMemData1 TdxMemData türündedir. end;
Yada RTTI ile de erişilebilir, tabii onu da kısıtlamadılar ise. Hiç birisi olmuyor ise, o zaman DB.pas proje klasörüne kopyalanır ve gönül rahatlığı ile kullanılır. (Tabii sadece onu kopyalamak yetmeyebilir, "compiled with differen unit" hatası verirse diğer unitleri de kopyalamak icap eder.)
TUNIQuery nesnesiyle kodu denediğimde herhangi bir tepki vermedi, denememi XE7'de yaptım.
Grid'i Refresh etmeniz gerekebilir.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...