Açılış formunda garip bir durum

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
comfort
Üye
Mesajlar: 214
Kayıt: 28 Ara 2004 06:37
Konum: İzmir
İletişim:

Açılış formunda garip bir durum

Mesaj gönderen comfort »

arkadaşlar programımın açılışında ana formdan önce şifre formu geliyor eğer şifre doğruysa anaformum açılıyor.fakat sifre formunu kapatırken close edersem tüm uygulamam kapanıyor hide edersemde ana formumu minimize ettiğimde görev çubuğuna değilde windowsun başlat düğmesinin üstüne minimize oluyor.Kafayı yedim çözemedim yardımcı olun lütfen...
Kullanıcı avatarı
Query
Üye
Mesajlar: 363
Kayıt: 29 Ara 2003 05:13

Mesaj gönderen Query »

Muhtemelen açılış formun Main Form olarak tanımlıdır.

Bence şifre formunu açılış formundan farklı bir form yap açılıştan sonra şifre formuna yönlendir.
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

Project ----> Options'tan Auto Create Forms'da ki herşeyi Available Forms'a at. Şifre kontrolünü bir database üzerinden yapıyorsan DataModule'ün auto Create Forms'da kalsın bitek.
Project.dpr dosyasının kodları :

Kod: Tümünü seç

program Keramet;

uses
  Forms,
  udm in 'UDM.PAS' {dm: TDataModule},
  ugenel in 'UGENEL.PAS' {frmgenel};

var
islem:Integer;


{$R *.res}

begin
  Application.Initialize;
  Application.Title := 'Uygulama';
  Application.CreateForm(Tdm, dm);
  frmsifre:=Tfrmsifre.Create(nil);
  repeat
  islem:=frmsifre.ShowModal;
  if islem=2 then
  begin
    frmsifre.Free;
    halt;
  end;
  until islem=1;
  Application.CreateForm(Tfrmgenel, frmgenel);
  Application.Run;
end.
Şifre formunun kodları:

Kod: Tümünü seç

var
  frmsifre: Tfrmsifre;
  hak:Integer;


implementation
uses udm;

{$R *.dfm}

procedure Tfrmsifre.FormCreate(Sender: TObject);
begin
  hak:=3;
end;

procedure Tfrmsifre.Button1Click(Sender: TObject);
begin

  with dm.qgenel do
  begin
    close;
    sql.Clear;
    sql.Add('select * from kullanici where username='''+edit2.Text+'''');
    open;
  end; {with}

  if dm.qgenel.RecordCount>0
  then begin
    if Edit1.Text=dm.qgenel.fieldbyname('sifre').AsString
    then begin
    ModalResult:=mrOk;
    end
    else begin
      hak:=hak-1;
      ModalResult:=mrRetry;
      if hak=0
      then ModalResult:=mrCancel
      else     Application.MessageBox('Yanlış Şifre, Lütfen Tekrar Deneyin','Uygulama',mb_ok);
    end;
  end
  else Application.MessageBox('Kullanıcı İsmi Yanlış','Uygulama',mb_ok+mb_iconstop);

end;

procedure Tfrmsifre.Button2Click(Sender: TObject);
begin
  ModalResult:=mrCancel;
end;

end.

Not: Çözüm İhsan KARAGÜLLE'nin Delphi 7 kitabından alınmıştır.
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Misafir

Mesaj gönderen Misafir »

merhaba.
bir de bu tür (genel) login ekranları için componentler var (örneğin, rx,suipack gibi paketlerde) ilgilenirsiniz belki..
kolay gelsin.
Kullanıcı avatarı
comfort
Üye
Mesajlar: 214
Kayıt: 28 Ara 2004 06:37
Konum: İzmir
İletişim:

Mesaj gönderen comfort »

Çok saolun ama yukardaki kodlar çalıştı yalnız bu seferde kullanıcı sifre ekranını login olmadan kapatırsa program hata veriyo(access violation)
çok denedim önüne geçemedim..
Kullanıcı avatarı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

Mesaj gönderen Fatih! »

application.terminate;
Kullanıcı avatarı
comfort
Üye
Mesajlar: 214
Kayıt: 28 Ara 2004 06:37
Konum: İzmir
İletişim:

Mesaj gönderen comfort »

application.terminate veya halt ikisinide denedim aynı hatayı alıyorum yalnız sebebini biliyorum jedi componentleri kullanmıştım o yüzden yapıyor olmalı
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc »

ben şöyle yapmıştım ana form görüntülenmeden onshow anında şifre formunu göstertiyordum. tabi dolayısıyla şifre formu mainform değil. Sonra şifre doğru girilince ana formun property sindeki kullanıcı adı ve şifre sinde değişiklik yapıyordu. Sorun yaşamadan çalıştırmıştım
Cevapla