Merhaba,
Öncelikle değişken isimleri her ne kadar istenildiği gibi tanımlanabilse da anlamlı ve okunduğunda açıklayıcı olmasında çok fayda vardır. En basitinden 3 ay sonra uygulamaya eklendi/değişiklik yapmak gerektiğinde daha kolay hatırlamaya yardımcı olur. Sizin uygulamanızdaki Form isimlerini bu anlamda daha anlaşılır yapmakta fayda var.
Aynı şekilde "myq, mq: TMyQuery;" şeklinde tanımlamaktan ziyade kullanım amacına uygun isimler (örn: QueryAge, QueryTotals, vb) vermek daha güzel olacaktır.
Sorunuza gelince, Windows sistemi eski DOS zamanlarından kalan standart parametre kullanımını devam ettirir. Bu anlamda parametreleri tanımlamak için önlerine "-" veya "/" işaretleri koyulur. Eğer bu standarda uymak isterseniz Delphi içindeki hazır fonksiyonlardan da faydalanabilirsiniz.
Program komut satırından "My.Exe -1" veya "My.Exe -2" veya "My.Exe /2" şeklinde çalıştırılır. Buna uygun olarak parametreyi tespit etmek için şu kodu kullanabilirsiniz.
Kod: Tümünü seç
uses
System.SysUtils;
// Delphi 7 için "SysUtils" olmalı
procedure TForm4.FormCreate(Sender: TObject);
begin
if FindCmdLineSwitch('1') then Application.CreateForm(TForm35, Form35);
if FindCmdLineSwitch('2') then Application.CreateForm(TForm27, Form27);
end;
Ancak burada şuna dikkat etmek gerekli. Eğer uygulama komut satırından "My.Exe /1 /2" şeklinde çalıştırılır ise bu defa yukarıdaki kod her iki formu da oluşturacaktır.
İyi çalışmalar.