auto-create forms ve sınıf çağırma hakkında

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Rew33
Üye
Mesajlar: 70
Kayıt: 10 Tem 2009 02:28

auto-create forms ve sınıf çağırma hakkında

Mesaj gönderen Rew33 »

Kod: Tümünü seç

type
  TOpenQuery = Class(TThread)
  Public
    constructor Create(Q: TUniQuery);
  protected
    tQry: TUniQuery;
    tSQL: String;
    procedure Execute; override;
  end;

{ TOpenQuery }

constructor TOpenQuery.Create(Q: TUniQuery);
begin
  inherited Create(False);
  FreeOnTerminate := True;
  tQry := Q;

end;

procedure TOpenQuery.Execute;
begin
  inherited;
  Screen.Cursor := crAppStart;
  with tQry do
  Begin
    Open;
   "<forum.Edit1.Text := '2';>" //Aynı Forum daki Edite mesaj vermekistiyorum
  End;
  Screen.Cursor := crDefault;
end;
yukarıdaki gibi bir sınıfım var ve bu sınıfı

Kod: Tümünü seç

var
  T: TOpenQuery;
begin
T := TOpenQuery.Create(uniquery);
end;
şeklinde çağırıyorum buraya kadar sorun yok ama bu formu "auto-create forms" bölümünden alıp "available forms" bölümüne atıp
formu mainformdan

Kod: Tümünü seç

var
  Form: TF_FrmEditor; //Diğer formum ve uses satırında tanımlı
begin
  Application.CreateForm(TF_FrmEditor, Form);
//  Form := TF_FrmEditor.Create(Application);  //bunu da denedim
  Form.Q_Editor.Connection := UniConnection1;
  Form.Show;
bu şekilde çağırdığımda
formu create ediyor ama procedure TOpenQuery.Execute; metodunda "<>" içerisindeki kodda hata veriyor
ama sınıfın tanımlı olduğu formu mainform veya "auto-create forms" bölümüne atarsam aynı kodla program çalışıyor.
bu arada kodun yaptığı işlem ise sınıfa parametreyle gönderdiğim UniQuery' i thread içinde açıyor ve bu sayede UniQuery açılırken geçen sürede program donmuyor
Kimseye hiçbir şey öğretemem, sadece onların düşünmelerini sağlayabilirim.
SOKRATES
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: auto-create forms ve sınıf çağırma hakkında

Mesaj gönderen Battosai »

Thread dışından olan bileşen ve değişkenleri direk thread içine yazıp çağırmak zaten doğru bir yöntem değil...Bu hususta yanılmıyorsam forumda kullanım örnekleri olacaktı...yada bu linkten detaylı thread kullanımını öğrenebilirsin...
http://www.tugrulhelvaci.com/?p=443
Kullanıcı avatarı
Rew33
Üye
Mesajlar: 70
Kayıt: 10 Tem 2009 02:28

Re: auto-create forms ve sınıf çağırma hakkında

Mesaj gönderen Rew33 »

Battosai yazdı:Thread dışından olan bileşen ve değişkenleri direk thread içine yazıp çağırmak zaten doğru bir yöntem değil...Bu hususta yanılmıyorsam forumda kullanım örnekleri olacaktı...yada bu linkten detaylı thread kullanımını öğrenebilirsin...
benim sorunum thread kullanımında değil gibi geliyor çünkü thread tanımladığım formu mainform veya "auto-create forms" bölümüne atarsam kod çalışıyor,bana daha çok hata bu sınıfın tanımlı olduğu formu oluşturmada hata var gibi geliyor

--
hatanın neden oluştuğunu buldum ama çözemedim. Sorun aslında thread sınıfının tanımlı olduğu formu ana forumdan çağırış şeklimden kaynaklanıyor

Kod: Tümünü seç

Var
  FF: sınıfın tanımlı olduğu unit;
begin
  FF := TUnit.Create();
  FF.Q_Editor.Connection := UniConnection1;
  FF.Show;
ben FF diye bir değişken tanımlayıp bu ff i create edip bu şekilde çağırıyorum ,sorunda burdan kaynaklanıyor thread içerisinden erişmek istediğim nesne aslında ff in içerisinde oluyor ama yazdığım kodda sınıfın tanımlı olduğu forma bağlı olduğu için o şekilde yazıyorum.kısacası runtime'da thread sınıfının tanımlı olduğu formdan bir nesne oluşturup bunu create edince ilk mesajda belirttiğim yerde hata alıyorum.sebebide bu forumdan türettiğim formdan kaynaklanıyor.
biraz uzun oldu ama kısaca özetlemek gerekirse ben çalışma zamanında bir forumdan başka bir forum nasıl oluştururum ve yazdığım kodlar bu oluşturduğum yeni nesnede hata vermeden nasıl çalışır.
Kimseye hiçbir şey öğretemem, sadece onların düşünmelerini sağlayabilirim.
SOKRATES
Cevapla