Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 4 odgovora
  • 3.460 pregleda

Najnovija ↓

ShowMessage i MessageDlg 18.05.2015. u 01:05 · pre 139 meseci #1
radi se o delphi XE 7
Imam problem u proceduri s kojim se do sada nisam sreo:
ne prikazuje ShowMessage.

Procedura je u datamudulu, a pozivam je iz main forme u eventu OnShow:

Code:

procedure Tdm.OtvoriDB;
var
  ti: tMyInit;
  dbName: string;
  Odg: integer;
begin
  ti := tMyInit.Create;
  dbName := ti.Read('DATABASE', 'NAME', '');
  ti.Free;
  Odg := mrCancel;
  if dbName = '' then
  begin
    Odg := MessageDlg('Nije određena radna baza' + ''#13'' + 'Odrediti radnu bazu?' + ''#13'' + ''#13'' + '(bez određene baze rad nije moguć)', mtConfirmation, [mbYes, mbNo], 0);
    if Odg = mrYes then
    begin
      fmParametri := TfmParametri.Create(nil);
      fmParametri.ShowModal;
      fmParametri.Free;
      ti := tMyInit.Create;
      dbName := ti.Read('DATABASE', 'NAME', '');
      ti.Free;
      if dbName = '' then begin
         ShowMessage('Baza nije određena' + #13 + 'Rad nije moguć');
         Application.Terminate;
         exit;
      end;
    end
    else
      Application.Terminate;
      exit;
  end
  else
  begin
    try
       fdc.Params.Database := dbName;
    except
      ShowMessage('Pogreška pri otvaranju radne baze:' + #13 + dbName);
      OtvoriDB;
    end;
  end;
  ...


linija:
ShowMessage('Baza nije određena' + #13 + 'Rad nije moguć');
se ne prikazuje a pređe preko nje!!!

Ideja zašto?
Re: ShowMessage i MessageDlg 18.05.2015. u 01:56 · pre 139 meseci #2
> ShowMessage('Baza nije određena' + #13 + 'Rad nije moguć');
> se ne prikazuje a pređe preko nje!!!
> Ideja zašto?

Ako je VCL aplikacija, da li imas glavnu formu kreiranu? Ako da onda bi se morala videti, ukljuci debugDcu i udji u ShowMessage pa vidi gde je zastoj.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: ShowMessage i MessageDlg 18.05.2015. u 09:22 · pre 139 meseci #3
Moja greška... recimo...

1. Ostavio sam TFDConnection "Open" u design modu
2. u BeforeConnect sam pozvao proc. "OtvoriDB"
3. u OnShow main forme sam pozvao proc. "OtvoriDB"

Ispravak:
1. u design modu sam stavio TDBVConnect na "Close"
2. maknuo sam poziv procedure iz BeforeConnect

Sada radi ispravno. Svejedno mi nije jasna greška - preskoči ShowMessage kao da ga je izvršio.
U debugu pratim:
frmMain.ShowMessage -> Vcl.Dialogs.ShowMessage -> Vcl.Dialogs.ShowMessagePos = prikaz poruke

procedura koja se poziva iz Vcl.Dialogs.ShowMessagePos se ne izvrši i debuger deaktivira brekpoint kao da se ne koristi u programu.
-> Vcl.Dialogs.MessageDlgPos

O čemu se radi? Bug?

Re: ShowMessage i MessageDlg 18.05.2015. u 11:16 · pre 139 meseci #4
Meni se desavalo da nece da prikaze poruku u ShowMessage slicno kao kod tebe kad se istrosi stack memorija

Code:

implementation

{$R *.dfm}

{$MAXSTACKSIZE 1073741824}


procedure TForm2.Button1Click(Sender: TObject);
begin
 ShowMessage('Prikazi me');
end;



Re: ShowMessage i MessageDlg 18.05.2015. u 11:30 · pre 139 meseci #5
> 1. Ostavio sam TFDConnection "Open" u design modu
> 2. u BeforeConnect sam pozvao proc. "OtvoriDB"
> 3. u OnShow main forme sam pozvao proc. "OtvoriDB"

> Ispravak:
> 1. u design modu sam stavio TDBVConnect na "Close"
> 2. maknuo sam poziv procedure iz BeforeConnect

Deluje da u prvom slucaju ti jos nije bila glavna forma kreirana a u drugom jeste. U takvom slucaju mozes direktno raditi sa WinApi MessageBox i tu neces imati nikakvih problema sa prikazom.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme