Gizli formu ekrana getirme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Serhat
Üye
Mesajlar: 203
Kayıt: 27 Tem 2014 11:10

Gizli formu ekrana getirme

Mesaj gönderen Serhat »

Selam;

Formu visible:= false yaparak gizliyorum, fakat formun tekrar exe'ye tıklandığında yeni bir form değilde gizlenen formu nasıl ekrana getirebilirim...
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Gizli formu ekrana getirme

Mesaj gönderen fesiharslan »

Merhaba;
Herhangi bir değişiklik yapmadıysanız, Projede bulunan tüm formlar bir defaya mahsus olmak üzere otomatik oluşturulacaktır.
Formunuz açılışta otomatik oluşuyorsa, ana formunuzun OnShow olayında diğer formu gizlerin.

Kod: Tümünü seç

Form2.visible:= False;
Daha sonra formu her açmak istediğinizde Visible özelliğini True, kapatmak istediğinizde ise False yapın.

Örneğin;
Formu göster:

Kod: Tümünü seç

Form2.visible:= True;
Formu gizle:

Kod: Tümünü seç

Form2.visible:= False;
Bu yapıda formunuz tekrar tekrar oluşmaz, yalnızca bir defa oluşur. Daha sonra sadece gizlenir ve gösterilir.

İyi çalışmalar..
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Gizli formu ekrana getirme

Mesaj gönderen Lord_Ares »

Eğer yanlış anladıysam özür dilerim ama , formları visable = false yapmaktansa gizlemek için Form1.hide ve form1.show daha doğru olmaz mı. Şu kısmı tam anlayamadığım için sizi yanlış anlamış olabilirim. Eğer ilk çalışma anından bahsediyorsanız , proje yöneticisinden ilk açıldığında hangi formların create edileceğini seçebilirsiniz.
tekrar exe'ye tıklandığında
Kullanıcı avatarı
Serhat
Üye
Mesajlar: 203
Kayıt: 27 Tem 2014 11:10

Re: Gizli formu ekrana getirme

Mesaj gönderen Serhat »

Selam;

Projede tek bir form var; bir butonda işlemleri yaptırıyorum ve işlem sonunda form gizleniyor; Fakat gizli olan formu kullanıcı tekrar aktif etmek istediğininde exe ikinci kez tıkladığında ikinci yeni bir program ortaya çıkıyor; ben programın ikinci kez değilde gizli olan uygulama ortaya çıksın istiyorum...
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: Gizli formu ekrana getirme

Mesaj gönderen greenegitim »

System traye almayı deneyebilirsin bilgisayarın sağ altına küçülür daha sonra http://www.tankado.com/delphide-mutex-k ... ru-yontem/ bu link yardımcı olur kullanıcıya sağ altan tekrar açabilirsiniz gibi
Mücadele güzelleştirir!
Kullanıcı avatarı
Serhat
Üye
Mesajlar: 203
Kayıt: 27 Tem 2014 11:10

Re: Gizli formu ekrana getirme

Mesaj gönderen Serhat »

Teşekkür ederim, form ekranın sağına ve transparan yapılarak şimdilik çözüldü...
10.Köy
Üye
Mesajlar: 54
Kayıt: 29 Ara 2015 07:41

Re: Gizli formu ekrana getirme

Mesaj gönderen 10.Köy »

Memo nesnesine gizli formun görünüyor olduğu bilgisini verip not.text dosyasına kaydettirip tekrar açılan .exe açılışta buradaki bilgiye göre en son acik formunuzu getirebilirsiniz. Daha iyi fikirler vardır ama ben bu şekilde yapabilirdim bahsettiğinizi, başarılar kolay gelsin
m_yaprakci

Re: Gizli formu ekrana getirme

Mesaj gönderen m_yaprakci »

Kod: Tümünü seç

program Project1;

uses
  Forms, Windows,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}
var
  PreviousHandle : THandle;
begin
  PreviousHandle := FindWindow('TForm1','Form1'); 
  if PreviousHandle = 0 then
  begin
    Application.Initialize;
    Application.CreateForm(TForm1, Form1);
    Application.Run;
  end
  else
    SetForegroundWindow(PreviousHandle);
end.
Formun onactivate eventina
if form1.visible=false then form1.visible:=true yazman da gerekebilir.

//--------------

bir diğer örnek (mantık aynı)

Kod: Tümünü seç

program Project1;

uses
  Forms,Windows,Dialogs,
  Unit1 in 'Unit1.pas' {TestForm};

{$R *.RES}

const APPLICATION_TITLE = 'TestForm';

var HWnd: THandle;
    pc : PChar;

begin
  pc := PChar(APPLICATION_TITLE);
  HWnd := FindWindow('TTestForm', pc);
  if Hwnd = 0 then
    begin
       Application.Initialize;
       Application.CreateForm(TTestForm, TestForm);
       Application.Run;
       Application.Title := APPLICATION_TITLE;
    end
  else
     begin
        showmessage('APPLICATION_TITLE + 'uygulamasının yalnızca bir örneği çalışabilir.');
        SetForegroundWindow(HWnd);
     end;
end.
bu kodları "view unit"e tıklayıp uygulamanızın .DPR dosyasına yazacaksınız. örn: Project1
erolturk
Üye
Mesajlar: 14
Kayıt: 13 May 2016 04:49

Re: Gizli formu ekrana getirme

Mesaj gönderen erolturk »

Merhaba !

Bence en kestirme sizin probleminiz şu şekilde çözülür :

1- Forma aşağıdaki procedure yi ekleyin :

Kod: Tümünü seç

procedure goster;
.
.
.
procedure TForm1.goster;
begin
  if not Assigned(Form1) then
    Application.CreateForm(TForm1, Form1);

    Form1.Show;
end;

2- Ana menüden Project->Options->Forms den auto-create forms kısmındaki Form1 çift tıklayıp Available Forms kısmına geçirin. Böylelikle form1 otomatik olarak create edilmeyecek.

3- Form1 i çağıracağın ana formdaki butonun onClick ine Form1.goster; yazman yeterli
Cevapla