Gizli formu ekrana getirme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Gizli formu ekrana getirme
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...
Formu visible:= false yaparak gizliyorum, fakat formun tekrar exe'ye tıklandığında yeni bir form değilde gizlenen formu nasıl ekrana getirebilirim...
- fesiharslan
- Üye
- Mesajlar: 591
- Kayıt: 20 Eki 2006 11:37
- Konum: Erzurum
- İletişim:
Re: Gizli formu ekrana getirme
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.
Daha sonra formu her açmak istediğinizde Visible özelliğini True, kapatmak istediğinizde ise False yapın.
Örneğin;
Formu göster:
Formu gizle:
Bu yapıda formunuz tekrar tekrar oluşmaz, yalnızca bir defa oluşur. Daha sonra sadece gizlenir ve gösterilir.
İyi çalışmalar..
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;
Örneğin;
Formu göster:
Kod: Tümünü seç
Form2.visible:= True;
Kod: Tümünü seç
Form2.visible:= False;
İyi çalışmalar..
Re: Gizli formu ekrana getirme
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
Re: Gizli formu ekrana getirme
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...
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...
- greenegitim
- Üye
- Mesajlar: 713
- Kayıt: 28 Nis 2011 10:33
- Konum: İstanbul
Re: Gizli formu ekrana getirme
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!
Re: Gizli formu ekrana getirme
Teşekkür ederim, form ekranın sağına ve transparan yapılarak şimdilik çözüldü...
Re: Gizli formu ekrana getirme
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
Re: Gizli formu ekrana getirme
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.
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.
Re: Gizli formu ekrana getirme
Merhaba !
Bence en kestirme sizin probleminiz şu şekilde çözülür :
1- Forma aşağıdaki procedure yi ekleyin :
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
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