Ceviz Forum

Geri Dön   Ceviz Forum > Programlama > Pascal / Delphi / Delphi.NET

Cevapla
 
LinkBack Seçenekler
Eski 15/04/2008, 19:12   #1 (permalink)
Yangın Her Aşkın Sonu
 
young_ottoman Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 04/2007
Yer: Istanbul
Mesaj: 165
Varsayılan programı modullere bolme

merhaba

yaptıgım programda hem exe ler cok sısmesın hemde modul mantıgı olması ıcın exe lerı ayırmak ıstıyorum

ornegın cari modulunu calıstıran exe baska stok modulunu calıstıran exe baska bı dosya olacak

ayrıca ana menu dısında bu exe lerin calıstırılamaması lazım

bunu nasıl yapabılırım? dezavantajları olurmu?

sımdıden tesekkurler

young_ottoman hatta değil   Alıntı Yaparak Yanıtla
Eski 16/04/2008, 00:48   #2 (permalink)
Üye
 
Caylaq Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 12/2007
Yer: DELPHI LAND
Mesaj: 642
Varsayılan

Selam Otto,

Güzel bir soruydu.

Bu yazı Delphi türkiye sitesinden Abdulkadir adlı üyeden alıntıdır.

Umarım işine yarar


Kolay gelsin




Alıntı:
S.A
Uzun zaman dan beri merak ettigim bir şeyi bugün yaptım
bu kadar basit olacagını hiç düsünmemiştim
ve sizlerle paylaşmak istedim

programımızı acarken degişik parametrelerle acmak
yani masa üstüne ekledigimiz kısayol şöyle iken
C:\delphi_deneme\AKL_LOG_KAYIT\AFT_MAIN.exe

biz söyle acalım ve istedigimiz procedure yi işletelim.
C:\delphi_deneme\AKL_LOG_KAYIT\AFT_MAIN.exe \A


yeni bir proje olusturup 3 tane form ekleyelim
Project1 {projenin adı}
Unit1 Form1
Unit2 Form2
Unit3 Form3

delphi project menüsünden View Source yi tıklayalım
ve kaynak kodu asagıdaki gibi düzenleyelim

Kod:
 
program Project1;
uses
Forms,
SysUtils,
Windows,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {Form3};
{$R *.res}
var
s: string;
begin
Application.Initialize;
 
s := UpperCase(ParamStr(1));
 
if pos('/A', s) > 0 then
begin
Application.CreateForm(TForm1, Form1);
end
else if pos('/B', s) > 0 then
begin
Application.CreateForm(TForm2, Form2);
end
else if pos('/C', s) > 0 then
begin
Application.CreateForm(TForm3, Form3);
end
else
begin { Parametre yoksa default formu acın }
Application.CreateForm(TForm1, Form1);
{ Veya programı sonlandırın }
//Application.Terminate
end;
Application.Run;
end.
sonra form1'e 3 tane Button ekleyelim ve asagıdaki gibi kodu düzenleyelim
NOT:Bu işlem sart degil program içinden test etmek içindir.

Kod:
 
unit Unit1;
 
interface
 
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
 
var
 
Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var
S: string;
begin
S := Application.ExeName;
Application.Terminate;
WinExec(PChar(S + ' /A'), SW_SHOWNORMAL);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var
S: string;
begin
S := Application.ExeName;
Application.Terminate;
WinExec(PChar(S + ' /B'), SW_SHOWNORMAL);
end;
 
procedure TForm1.Button3Click(Sender: TObject);
var
S: string;
begin
S := Application.ExeName;
Application.Terminate;
WinExec(PChar(S + ' /C'), SW_SHOWNORMAL);
end;
 
end.
form1 haricindeki Diger formlara hiç bir sey eklemedim hiç birsey yazmadım.

Ayrıca masaüstüne bu program için 3 tane kısayol olusturup linklerini düzenleyin
bendeki Path bu C:\delphi_deneme\Delphi_Test\
sizdeki gibi düzenleyin

// C:\delphi_deneme\Delphi_Test\Project1.exe /A
// C:\delphi_deneme\Delphi_Test\Project1.exe /B
// C:\delphi_deneme\Delphi_Test\Project1.exe /C

ve test edin her kısayol programı farklı bir form ile acacak
ben örnek olsun diye form actırıyorum siz baska procedure ler işletirsiniz artık.

NOT:Bu örnekleme Delphi7 de Test edildi.

sevgiler.
Caylaq hatta değil   Alıntı Yaparak Yanıtla
Eski 16/04/2008, 18:05   #3 (permalink)
Yangın Her Aşkın Sonu
 
young_ottoman Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 04/2007
Yer: Istanbul
Mesaj: 165
Varsayılan

Alıntı:
Caylaq, mesajından alıntı: Mesajı Gör
Selam Otto,

Güzel bir soruydu.

Bu yazı Delphi türkiye sitesinden Abdulkadir adlı üyeden alıntıdır.

Umarım işine yarar


Kolay gelsin
caylaq kardes yazıdakı konu cok guzel fakat tam benım ıstedıgım sey degıl

buradakı yazıda bır .exe dosyasına parametreler verılerek acılması saglanıyor

benım ıstedıgım program modullerını parcalamak cari icin cari.exe stok icin stok.exe gıbı

ana menuden cari.exe calıstırılnca cari modulu gelecek stok.exe calıstırılınca stok modulu gelecek

yanı programdakı bolumler ayrı ayrı dosyalarda tutulmus olacak program tek bır exe dosyasından olusmayacak

bunu nasıl yapabılırım? dezavantajları olurmu ?
young_ottoman hatta değil   Alıntı Yaparak Yanıtla
Eski 16/04/2008, 19:00   #4 (permalink)
Üye
 
Caylaq Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 12/2007
Yer: DELPHI LAND
Mesaj: 642
Varsayılan

Otto, bilmiyorum bu konuda daha önce hiç çalışmam olmamıştı

Ama senden ricam eğer cevabını bulursan bizimle paylaşman.

Kolay gelsin
__________________
Soru Sormadan Önce:
http://forum.ceviz.net/announcement.php?f=27&a=55





Sigarayı BIRAKMANIN YOLLARI.......!
http://www.yesilay.org.tr/sigara_nasil_birakilmali.asp
Caylaq hatta değil   Alıntı Yaparak Yanıtla
Eski 24/04/2008, 15:03   #5 (permalink)
Üye
 
Caylaq Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 12/2007
Yer: DELPHI LAND
Mesaj: 642
Varsayılan

Otto Merhaba,

Bu konuda güzel bir bilgi elde ettim.

Aşağıdaki mesaj Delphiturkiye.com sitesindeki Sn. Şaban Şahin Akman Hocamın mesajıdır.


Alıntı:
Rapor.exe'niz sadece belli bir parametrede çalışsın. Parametre, komut satırından veya program yazarken çalıştırma kodundan (winexec gibi) kullanılabilir. Mesela .txt uzantılı bir dosyaya çift tıklayınca notepad.exe bu dosyayı açacağını parametresinden anlar. Çift tıklanan dosya c:\dene.txt dosyası ise komut olarak notepad.exe'ye c:\dene.txt parametresi eklenir. Bunu deneyerek te görebilirsin. Mesela Başlat->Çalıştır'ı aç ve notepad.exe c:\dene.txt yaz. Eğer c:\dene.txt dosyan varsa not defteri programı içinde bu dosya açılacaktır. Bunu Kod:
WinExec('notepad.exe "c:\dene.txt"',SW_SHOWNORMAL);
şeklindeprogram koduyla da yapabilirsin.

Burada Rapor.exe için özel bir parametre değeri seçmen gerekiyor. Mesela sadece /liste parametresi alırsa çalışsın aksi halde "bu program bu şekilde çalıştırılamaz" gibisinden bir mesaj verdirelim. Rapor.exe yi çalıştırırken Kod:
S:=ExtractFilePath(Application.ExeName)+'Rapor.exe ';//<-Proje ile aynı klasöredeyse
WinExec(PChar(Format('%s "/liste"',[s])),SW_SHOWNORMAL);
ile çalıştırmaya çalışalım. Tabi burada önemli nokta Rapor.exe aldığı parametreyi tespit edip ona göre işlem yapmalı. Bu işlem için de Rapor.dpr dosyasına gerekli kontrolü eklemek olacaktır. Kod:
program Rapor;

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

{$R *.res}

begin
if (ParamCount>1) and (ParamStr(1)='/list') then begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
.
.
.
Application.Run;
end else Application.MessageBox('Bu programı bu şekilde çalıştıramazsınız.','Uyarı',0);
end.
gibi bir kontrolle programın birinci sırada aldığı parametreyi dikkate alabilirsin. Ayrıca ParamStr(1)='/list' string kıyaslamasında eşittir yerine sametext (SameText(ParamStr(1),'/list') şeklinde)fonksiyonu kullanarak kıyaslama yaparsan büyük küçük ayrımı dikkate alınmaz ve parametrede büyük har kullanılsa bile program çalışır. Ayrıca AnsiSameText Türkçe harlerde de düzgün çalışmaktadır ama sadece i-ı ayrımı yüzünden bu harf için doğru sonuç vermemektedir. Kolay gelsin.

_________________
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
__________________
Soru Sormadan Önce:
http://forum.ceviz.net/announcement.php?f=27&a=55





Sigarayı BIRAKMANIN YOLLARI.......!
http://www.yesilay.org.tr/sigara_nasil_birakilmali.asp
Caylaq hatta değil   Alıntı Yaparak Yanıtla
Eski 26/04/2008, 00:10   #6 (permalink)
Kodlarım, Canlarım...
 
cemaliozan Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 05/2005
Yer: » Delphi Bölümü «
Mesaj: 1,677
Varsayılan

Exe leri resource olarak birleştirebilir veya DLL olarak tasarlayabilirsin. Burada Bir Örnek anlatım var...
__________________
Haberbox | Tek Sevgi | Genel Seçimler | Magice Book | Yerel Seçimler
Yaşamaya Değer Bir Hayattan, Sevmeye Değer Bir Aşktan, Dostluğa Değer Bir Arkadaşlıktan Asla Vazgeçmeyin...
cemaliozan hatta değil   Alıntı Yaparak Yanıtla
Eski 27/04/2008, 08:13   #7 (permalink)
...Sanat insan içindir...
 
burhanmt Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 10/2004
Mesaj: 283
Varsayılan

Young ottoman detaya girip isi zorlastirma. Parametre yontemi hem stabil hem de en rahat yontem. Ben cok sik kullaniyorum. Microsoft bile bircok programinda parametreler ile anlastiriyor programlarini.





Alıntı:
young_ottoman, mesajından alıntı: Mesajı Gör
caylaq kardes yazıdakı konu cok guzel fakat tam benım ıstedıgım sey degıl

buradakı yazıda bır .exe dosyasına parametreler verılerek acılması saglanıyor

benım ıstedıgım program modullerını parcalamak cari icin cari.exe stok icin stok.exe gıbı

ana menuden cari.exe calıstırılnca cari modulu gelecek stok.exe calıstırılınca stok modulu gelecek

yanı programdakı bolumler ayrı ayrı dosyalarda tutulmus olacak program tek bır exe dosyasından olusmayacak

bunu nasıl yapabılırım? dezavantajları olurmu ?
__________________

"..."
burhanmt hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Seçenekler

Mesaj Yazma Hakları
Yeni mesajgöndermezsiniz
Cevap yazamazsınız
Dosya ekleyemezsiniz
Mesajınızı düzenleyemezsiniz

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu açana göre Forum Cevap En Son Mesaj
FCK editor metin bolme islemi NetBoard PHP 1 05/04/2008 14:03
degiskendeki: uzun bir cumleyi parcalara bolme [DooMsDaY] PHP 7 07/05/2007 21:36
Sayfayi Bolme babyface Web Tasarım 16 29/04/2007 23:11
Case ve Bolme... xam PHP 10 26/06/2006 22:30
Bolme isleminde kalan aksuvar ASP 7 22/11/2004 09:53


Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 00:01.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv |


Forum Yazılımı: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net