mesajlar

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
beginer
Üye
Mesajlar: 16
Kayıt: 27 Oca 2004 01:40

mesajlar

Mesaj gönderen beginer »

delphide messagedlg fonksiyonunda ekrana gelen mesajda sağ üstteki çarpı(kapat) butonuna tıklayarak ona göre sonuç döndürebilirmiyiz..örnek : OK butonuna tıklandığında mrOk sonucunun dönmesi gibi..teşekkürler..
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

o zaman tıklanmayan butona göre işlem yap. Mesela OK ve Cancel varsa, Cancel'a tıklanmamışsa işlem yap.

Kolay gelsin.
beginer
Üye
Mesajlar: 16
Kayıt: 27 Oca 2004 01:40

Mesaj gönderen beginer »

usta şimdi benim şöyle bir sorunum var : delphi ile yaptığım bir exe file var..bu file a tıklayınca bir pencere içerisinde web sayfasını Twebbrowser ile açıyorum..eğer makinada internet bağlantısı yoksa 'bağlantınız yok' gibilerden hata mesajı verdiriyorum..yalnız hata mesajı geldikten sonra pencere içerisinde web sayfasının gelmesini istemiyorum..yapamadığım şey burası..mesaj geldikten sonra programın kapanmasını istiyorum..bir sürü yöntem denedim olmadı..yardım edermisiniz..
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Merhaba;

Twebbrowser componenti olan Formunu kapatmayı denedinizmi?

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.
beginer
Üye
Mesajlar: 16
Kayıt: 27 Oca 2004 01:40

Mesaj gönderen beginer »

bakın şöyle birsey yaptım :

procedure TForm1.FormShow(Sender: TObject);
begin
if IsUserOnline = false then
if MessageDlg('İnetnet Bağlantınız Yok !!!',MtError,[mbOk],0)=mrOk then close
else
begin
HookID := SetWindowsHookEx(WH_MOUSE, MouseProc, 0, GetCurrentThreadId());
Webbrowser1.Navigate('http://www.google.com');
end;
end;

yukarıdaki close formu kapatmıyor..
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

if IsUserOnline = false then
begin
messagedlg...
Close;
else
....

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

Mesaj gönderen husonet »

Merhaba;

Arkadaşın kodu verdiği şekilde çalıştırmaya çalıtım IsUserOnline = false hata aldım uses'e ne eklemem gerekli acaba.

İyi Çalışmalar.

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ı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

project source kısmında formlar create edilmeden

Kod: Tümünü seç

program MyProg;

uses
  Forms,Dialogs,
  form1 in 'unit1.pas' {Form1};
{$R *.RES}

//fonksiyonu buraya yazman gerek yada en azından burada 
//deklare etmen gerek

function IsUserOnline:Boolean
begin
//////
end;

begin
  if IsUserOnline = false then
  begin 
    MessageDlg('İnternet Bağlantınız Yok !!!'+#13#10+
                       'Program Kapatılacak.',MtError,[mbOk],0);
    Halt(0);
  end;
  //diger durumda program calısacak

  Application.Initialize;
  Application.CreateForm(TFrmAna, FrmAna);
  Application.CreateForm(TDM, DM);
  Application.Run;
end.
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

huseyin hocam sanırım o ozel bir fonksiyon
benzer islevi yerine getiren bir fonksiyon asagıda

Kod: Tümünü seç

function IsConnectedToInternet: Boolean;
var
  dwConnectionTypes: Integer;
begin
  try
    dwConnectionTypes := INTERNET_CONNECTION_MODEM +
      INTERNET_CONNECTION_LAN +
      INTERNET_CONNECTION_PROXY;
    if InternetGetConnectedState(@dwConnectionTypes, 0) then
      Result := true
    else
      Result := false;
  except
    Result := false;
  end;
end;
ama bir yerel aga baglı olup internete baglı olmayan bilgisayarda da internete baglıymıs gibi gosteriyor...
en iyi test yolu bence google a ping atmak:)
ÜŞENME,ERTELEME,VAZGEÇME
ardahan
Üye
Mesajlar: 144
Kayıt: 26 Oca 2004 05:17
Konum: İstanbul - Kocaeli - Ardahan
İletişim:

Mesaj gönderen ardahan »

Kod: Tümünü seç

Function ConnectionKind :boolean;
  var
    flags: dword;
  begin
    Result := InternetGetConnectedState(@flags, 0);
    if Result then
    begin
      if (flags and INTERNET_CONNECTION_MODEM) = INTERNET_CONNECTION_MODEM then Form1.EdtConType.Text:= 'Modem';
      if (flags and INTERNET_CONNECTION_LAN) = INTERNET_CONNECTION_LAN then Form1.EdtConType.Text:= 'LAN';
      if (flags and INTERNET_CONNECTION_PROXY) = INTERNET_CONNECTION_PROXY then Form1.EdtConType.Text:= 'Proxy';
      if (flags and INTERNET_CONNECTION_MODEM_BUSY)=INTERNET_CONNECTION_MODEM_BUSY then Form1.EdtConType.Text:= 'Modem Meşgul';
    end;
  end;
Eğer Result false ise internet bağlantısı yok demektir.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Gökmen Hocam ve Ardahan Hocam Teşekkürler maalesef net olayın'a Delphi de biraz yabancı kaldım. Şu an bende Google Pink atıyorum. :lol:

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ı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

@beginer ın sorusundan anladığım kadarıyla,
MessageDLG ile açılan form modal bir formdur. Forma sadece Ok butonu konulmuş ve buna basılırsa program kapatılıyor, ama çarpıya basılırsa program devam ediyor onun istediği ise çarpıdanda basılsa program kapansın.
eğer bu dlg form çarpıdan kapatılırsa mrCancel result ı döndürür.

diğer arkadaşların yazdıkları daha profesyonel ve daha sağlam yöntemler.

Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Selamlar.

- Yaptığınız fonksiyonların istediğiniz işlemleri yapmamakta direndiği yerlerde kendi kontrol fonksiyonlarınızı yazıp sonucu görerek nerede yanlış yaptığınızı tespit edin.

- Yukarda verdiğiniz örnekten yola çıkarak aşağıdaki şekilde bir modifikasyon yaparak, kullanıcının OK dışında bir şekilde mesajı kapatmayı başardığında dönen sonucu trace ediyoruz.

Kod: Tümünü seç

Var
  Degisken : Integer;
begin
  Degisken := MessageDlg('İnetnet Bağlantınız Yok !!!',MtError,[mbOk],0);
  If Degisken = mrOk
    then close
    else ShowmessageFmt('%d', [degisken]);
end;
- Benim bulduğum değer 2 yani mrCancel çıktı. Yani köşedeki çarpı butonuna basınca da Alt+F4 tuş kombinasyonuyla mesajı kapatsa da sonuç 2 çıkıyor. Demek ki mrOk yanında sonucun bir de 2 yani mrCancel olup olmadığını kontrol ederseniz ihtimal kaçırmadan işleminiz yapılacaktır.

- Yani kodunuzu şöyle güncelleyin.

Kod: Tümünü seç

procedure TForm1.FormShow(Sender: TObject);
begin
  if IsUserOnline = false then
  Case MessageDlg('İnetnet Bağlantınız Yok !!!',MtError,[mbOk],0) of
  mrOk, 2 : close; // mrCancel de denebilir.
  else
  begin
    HookID := SetWindowsHookEx(WH_MOUSE, MouseProc, 0, GetCurrentThreadId());
    Webbrowser1.Navigate('http://www.google.com');
  end;
  end; // Case
end;
Resim
Resim ....Resim
Cevapla