Allians bulunamadığı zaman alınan hata yerine- showmessage

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Allians bulunamadığı zaman alınan hata yerine- showmessage

Mesaj gönderen conari »

Girilen data ismi allians larda yok sa bulunamadı mesajı veriyor dogal olarak.

Bunu önleyerek bir showmessage ile nasıl cevap döndürebiliriz.
o mesajı vermesin direk showmessage gelsin??

Teşekkür.

İyi çalışmalar..
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

ApplicationEvents bileşenini incele derim.

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Önerin için Sağol fakat delphinin helpinde bu bilesenle ilgili fazla bir bilgi yok yada ben anlamadım .Örnek bir kod var ise makbule geçer

Kolay gelsin..
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Kod: Tümünü seç

  if pos('hata',e.Message)<>0 then 
  begin 
    application.MessageBox('hata meydana gelmistir..','Dikkat',MB_OK+MB_ICONERROR); 
  end; 

vb...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Burada kullanılan e.message olayını anlayamadım hoca ..

ayrıca bunu onavtive ne koysam yeterli olurmu yoksa onmessage mi koymam lazım..
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Kod: Tümünü seç

procedure TMainForm.ApplicationEvents1Exception(Sender: TObject;
  E: Exception);
e parametresi

kolay gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
ikut

Re: Allians bulunamadığı zaman alınan hata yerine- showmessa

Mesaj gönderen ikut »

conari yazdı:Girilen data ismi allians larda yok sa bulunamadı mesajı veriyor dogal olarak.

Bunu önleyerek bir showmessage ile nasıl cevap döndürebiliriz.
o mesajı vermesin direk showmessage gelsin??

Teşekkür.

İyi çalışmalar..
Neden Alias kullanma gereği duyuyorsunuz anlamadım. VT pathini dinamik olarak bulmanız ve değiştirmeniz mümkün. Yok BDE kullanacağım diyorsanız bilinki Borland BDE nin cenaze törenini çoktan yaptı. Kısaca artık Alias sız günlere merhaba demenin vaktidir. Çünkü bu sadece size extra yük getiriyor kurulum aşamasında.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Huso hoca saol ama bu hatayı göstermiyor. fakst show message da gelmiyor. ve İçeri girip datayı boş getiriyor..

İkut'a:
Database benim olmadıgı için..
Yani bir yazılım ın database ine baglanıp başka raporlar v.s. çekiyorum ..
ondan...

kolay gelsin..
Kullanıcı avatarı
fatihtolgaata
Üye
Mesajlar: 382
Kayıt: 04 Mar 2004 09:46
Konum: K.çekmece / İstanbul
İletişim:

Mesaj gönderen fatihtolgaata »

Eğer exception ise (debug anında delphi break oluyorsa), try/except bloğu ile halledersin:

Kod: Tümünü seç

try
  //Aliası değiştirme kodları
except
  ShowMessage('Hata var');
end;
Eğer gelen hatayı da almak istiyorsan:

Kod: Tümünü seç

try
  //Aliası değiştirme kodları
except on E:Exception do
  ShowMessage('Hata var. Gelen mesaj şöyle:' + #13 + E.Message);
end;
Eğer hatanın tipini biliyorsan ve sadece o tip bir hata geldiğinde göstereceksen mesela EFOpenError gelince başka bir şey EAbstractError gelince başka bir mesaj göstermesini istiyorsan:

Kod: Tümünü seç

try
  //Aliası değiştirme kodları
except 
  on E:EFOpenError do
    ShowMessage('Dosya açma hatası. Gelen mesaj şöyle:' + #13 + E.Message);
  on E:EAbstractError do
    ShowMessage('Abstract hatası. Gelen mesaj şöyle:' + #13 + E.Message);
end;
gibii....

Edited: Bir de unutmadan, eğer debug yapıyorsan, except bloğuna yazdığın kodlar delphi hatayı kendisi gösterdikten çalışır. Yani mesaj kutusu delphiden sonra çıkar. Ama debug yapmıyorsan sadece senin mesajın gözükür.

vesselam.
end;
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Teşekkür..

Kod: Tümünü seç

try 
  //Aliası değiştirme kodları 
except on E:Exception do 
  ShowMessage('Hata var. Gelen mesaj şöyle:' + #13 + E.Message); 
end;
İşimi çözdü..

Bir de exe'nin birden fazla çalıştırılmasını nasıl sağlayabilirim. Hocalar..
:lol: :D :roll:
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Çalıştırılmaması olacaktı pardon..

Kolay gelsin.. :roll:
Kullanıcı avatarı
fatihtolgaata
Üye
Mesajlar: 382
Kayıt: 04 Mar 2004 09:46
Konum: K.çekmece / İstanbul
İletişim:

Mesaj gönderen fatihtolgaata »

bunu ayrı bir konu olarak yazsaydın iyi olurdu. Bir de bu büyük ihtimalle forumda geçmiş bir koudur. ilk önce :ara arama yapsa idin iyi olurdu. Cevap aşağıdadır:

Projenin kodlarına geç(Project'e sağ tuşla tıkla, View Source de)

Aşağıdaki fonksiyonu ekle

Kod: Tümünü seç

function WndProcEnumerate (hwnd: THandle; 
  Param: Cardinal): Bool; stdcall; 
var 
  ClassName, WinModuleName: string; 
  WinInstance: THandle; 
begin 
  Result := True; 
  SetLength (ClassName, 100); 
  GetClassName (hwnd, PChar (ClassName), Length (ClassName)); 
  ClassName := PChar (ClassName); 
  if ClassName = TMainForm.ClassName then 
  begin 
    SetLength (WinModuleName, 200); 
    WinInstance := GetWindowLong (hwnd, GWL_HINSTANCE); 
    GetModuleFileName (WinInstance, 
      PChar (WinModuleName), Length (WinModuleName)); 
    WinModuleName := PChar(WinModuleName);
    if WinModuleName = ModuleName then 
    begin 
      FoundWnd := Hwnd; 
      Result := False;
    end; 
  end; 
end; 
Ardından begin/end. bloğunu aşağıdaki şekilde düzenle. Sana uymayan kısımlarını değiştirirsin:

Kod: Tümünü seç

begin 
  hMutex:=CreateMutex(nil,False,'CashAdvanceProMutex'); 
  if WaitForSingleObject(hMutex,0)<>wait_TimeOut then 
  begin 
     Application.Initialize; 
     //Buraya formların crete kodlarını yerleştir.
     Application.Run; 
 end 
 else 
  begin 
      SetLength(ModuleName,200); 
      GetModuleFileName (HInstance, 
      PChar(ModuleName),Length(ModuleName)); 
      ModuleName := PChar(ModuleName);
      EnumWindows(@WndProcEnumerate, 0); 
      if FoundWnd <> 0 then 
      begin 
          if not IsWindowVisible(FoundWnd) then 
          PostMessage(FoundWnd,wm_User,0,0); 
          SetForegroundWindow(FoundWnd); 
      end; 
   end; 
end.
işi görür umarım.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

sağol ayrı başlık ta yazdım ve cevap gelmişti ordaki işlem işimi gördü teşekkür. ama bunları da kaynak olarak saklayacağım..
Cevapla