MDI form ve kullanıcı Girişi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

MDI form ve kullanıcı Girişi

Mesaj gönderen ALUCARD »

Arkadaşlar Merhaba;

MDI formla başlayan ve child formlarla devam eden bir projem var.
MDI form üzerinde ToolBar ve Main menu var. kullanıcı giriş formunu bir türlü oluşturamıyorum.

Aslında daha önceleri bir yerde okumuştum ve aslında am işimi gören bir çözüm bulmuştum ama şimdi bulamıyorum.

tahminen şöyle çalışıyordu.

Form styli normal olan bir kullanıcı formu vardı. bu formu ana ünitte çalıştırılıyordu ondan sonra MDI form çalıştırıyordu diye htırlıyorum ama tam nasıl olduğunu bulamadım.

Kod: Tümünü seç


begin
Application.Initialize;
Application.CreateForm(TWinModul, WinModul); //proje datamodulu
 
//işte bu arada kullanıcı formunun açılıp kapanması gerekiyor. 

Application.CreateForm(TMainFormF, MainFormF); // proje Ana form MDI Form 
Application.Run;

 end.

inşallah derdimi anlatabilmişimdir.
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Re: MDI form ve kullanıcı Girişi

Mesaj gönderen ender_arslanturk »

Bu konu nedense kolay gibi görünmesine karşılık biraz karışık gibi..

Ama şöyle de yapabilirsiniz. MdiForm açılır ve siz içerisinden peşine showmodal form açarak kullanıcı girişi isteyebilirsiniz. Sizin problemi biraz çözememenizin sebebi sanırsam öncelik sonralık sırası.. Yani sadece "auto create form" da mdi olarak kullanacağınız form olması geri kalanını siz create ederek öncelik atayabilirsiniz.
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Re: MDI form ve kullanıcı Girişi

Mesaj gönderen ALUCARD »

hocam autocreatte sadece datamodul ve mdi form var.

mdi formun oncreate olayında kullanıcı formunu create ediyorum. ama bu seferde mdi forma dönemiyorum.
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: MDI form ve kullanıcı Girişi

Mesaj gönderen mrmarman »

Fikrimi soracak olursanız, mdi değil fsNormal olan form autocreate'de olmalı. Çünkü bu aşamayı geçemeyen mdş formu görememeli. Yanlış mıyım?
Resim
Resim ....Resim
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Re: MDI form ve kullanıcı Girişi

Mesaj gönderen ender_arslanturk »

:!:

http://www.viserayazilim.com.tr/DelphiM ... rojesi.rar :idea:

Linkte ki örnek projeyi indirip kullanabilirsiniz. :wink:
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Re: MDI form ve kullanıcı Girişi

Mesaj gönderen ALUCARD »

bu güzel örnek için teşekkür ederim @ender_arslanturk
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Re: MDI form ve kullanıcı Girişi

Mesaj gönderen ender_arslanturk »

rica ederim. Basit bir örnek sadece..
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: MDI form ve kullanıcı Girişi

Mesaj gönderen mrmarman »

Merhaba.

- Başlık eskimeden yukarıda bahsettiğim metodun nasıl uygulandığını örnek proje ile makale halinde hazırlamıştım. (farklı bir metoddur) İlerleyen zamanlarda ihtiyacı olan mutlaka olacaktır.

(1) @ender_arslanturk'ün metodda Açılış (Login) formu da bir MDIForm türünden olduğundan bahsi geçen sorun bertaraf ediliyor.

(2) Örnekleyeceğim metodda ile, önce fsNormal bir form create ediyoruz, bu form kontrollerinden geçilirse MDIform ondan sonra create ediliyor. Yoksa application hiç RUN edilmiyor. Yani kontrollerden geçilmezse MDIform hiç oluşturulmadan proje kapatılıyor. :idea:

bkz. bu link...
Resim
Resim ....Resim
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Re: MDI form ve kullanıcı Girişi

Mesaj gönderen ender_arslanturk »

mrmarman yazdı: bkz. bu link...
link açılmıyor.
theSinan

Re: MDI form ve kullanıcı Girişi

Mesaj gönderen theSinan »

muharrem hocamdan allan razı olsun
sorunumu çözmüştü

form7 kullanıcı Giriş Formu
Formstyle = fsNormal

//---------------
Form1 AnaForm
FormStyle = fsMDIForm


Project1.cpp dosyamda main fonksiyonu aşağıdadır
kendine göre ayarlıyabilirsin
tabiki


Kod: Tümünü seç

#include "Unit7.h"
#include "Unit1.h"

int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
{



	try
	{


Application->Initialize();
TStyleManager::TrySetStyle("Aqua Graphite");
TForm7 *Form7 = new TForm7(Application);
		Form7->Name = "Form7";
	  int result= Form7->ShowModal();


	delete Form7;


	if( result == mrOk )
		{

		Application->MainFormOnTaskBar = true;

		Application->CreateForm(__classid(TForm1), &Form1);
		Application->Run();
		}

	}
	catch (Exception &exception)
	{
		Application->ShowException(&exception);
	}
	catch (...)
	{
		try
		{
			throw Exception("");
		}
		catch (Exception &exception)
		{
			Application->ShowException(&exception);
		}
	}
	return 0;
}


eger sisteme giriş yapan kullanıcın bilgileri id isim gibi
ana forma aktarmak istersen
ben şöyle yaptım

giriş formundan
kullanici_no,
isim
visiblesi false editler koydum
kullanıcı giriş yaptıkdan sonra
giriş yapa kullanıcı no ve isimlerini o editlere atadım

project1.cpp içinde

Kod: Tümünü seç

String sKullanici_No;
	String sIsim ;




//---------------------------------------------------------------------------
int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
{



	try
	{


Application->Initialize();
TStyleManager::TrySetStyle("Aqua Graphite");
TForm7 *Form7 = new TForm7(Application);
		Form7->Name = "Form7";
	  int result= Form7->ShowModal();
	  sKullanici_No = Form7->kullanici_no->Text;
	  sIsim = Form7->isim->Text ;

	delete Form7;


	if( result == mrOk )
		{

		Application->MainFormOnTaskBar = true;

		Application->CreateForm(__classid(TForm1), &Form1);
		Form1->dxStatusBar1->Panels->Items[2]->Text = "Kullanıcı : "+sIsim;
		Form1->kullanici_no->Text =   sKullanici_No;
		Application->Run();
		}

	}
	catch (Exception &exception)
	{
		Application->ShowException(&exception);
	}
	catch (...)
	{
		try
		{
			throw Exception("");
		}
		catch (Exception &exception)
		{
			Application->ShowException(&exception);
		}
	}
	return 0;
}
Cevapla