Çalışma zamanında oluşturulan formun kontrolü

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Okann
Üye
Mesajlar: 81
Kayıt: 09 Tem 2010 02:55

Çalışma zamanında oluşturulan formun kontrolü

Mesaj gönderen Okann »

Merhaba arkadaşlar,

Çalışma zamanında form oluşturuyorum. eğer form daha önceden oluşturulmuşsa formu öne getirmek istiyorum fakat yapamadım. kodlarım aşağıdaki gibi yardımcı olursanız çok sevinirim.

Kod: Tümünü seç

var
  Form1: TForm1;
  ID: Integer;
  ACaption: String;

procedure TForm1.btnChangeItemClick(Sender: TObject);
var
  AOwnerForm: TForm;
  I: Integer;
begin
  with GridEMUHACCView.Controller do
  begin
    for I := 0 to SelectedRowCount - 1 do
    begin
      ID := SelectedRows[I].Values[GridEMUHACCViewLOGICALREF.Index];
      ACaption := SelectedRows[I].Values[GridEMUHACCViewCODE.Index];
    end;
  end;
  if FindWindow(nil, PWideChar('Malzeme - ' + ACaption)) = 0 then
  begin
    AOwnerForm := TForm2.Create(Self);
    AOwnerForm.Caption := 'Malzeme - ' + ACaption;
    AOwnerForm.Position := poMainFormCenter;
    AOwnerForm.Show;
  end else
end;
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2381
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Çalışma zamanında oluşturulan formun kontrolü

Mesaj gönderen freeman35 »

if assigned()then .bringtofront;
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Çalışma zamanında oluşturulan formun kontrolü

Mesaj gönderen Lord_Ares »

findwindow ile pencere isimleri arasında formunuzu arıyorsunuz. Findwindow eğer pencereyi bulursa size bir handle numarası döndürür. Sizde bu handle numarasını kullanarak formunuzu öne getirebilirsiniz.
Örneğin
SetForegroundWindow(Handle numarası);
Okann
Üye
Mesajlar: 81
Kayıt: 09 Tem 2010 02:55

Re: Çalışma zamanında oluşturulan formun kontrolü

Mesaj gönderen Okann »

Teşekkür ederim yardımınız için. dediğiniz gibi yapınca istediğim oldu.

Kod: Tümünü seç

  HWND := FindWindow(nil, PWideChar('Malzeme - ' + ACaption));
  if FindWindow(nil, PWideChar('Malzeme - ' + ACaption)) = 0 then
  begin
    AOwnerForm := TForm2.Create(Self);
    AOwnerForm.Caption := 'Malzeme - ' + ACaption;
    AOwnerForm.Position := poMainFormCenter;
    AOwnerForm.Show;
  end else
  begin
    ShowWindow(HWND, SW_SHOWDEFAULT); // minimize ise
    SetForegroundWindow(HWND);
  end;
Cevapla