AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Formular schließt nicht mehr

Ein Thema von bundy · begonnen am 20. Nov 2006 · letzter Beitrag vom 22. Nov 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#1

Formular schließt nicht mehr

  Alt 20. Nov 2006, 22:22
Hy @ All DP´ler

Ich habe eine Client Server Anwendung. Nun habe ich einen schönes Such Formular erstellt, wo es möglich ist nach gewissen Kriterien zu suchen, wie Name, Strasse usw.

Das funktioniert soweit ganz prima, bis auf eine winzige und stöhrendes Problem.

Ich öffne das Form mittels

fmSuche.showmodal; Dauert die SQL Anfrage länger, weil die Suchbedingung viele Datensätze aus gibt, schließt das SuchForm nicht mehr.
Auch nicht wenn mann auf das X klickt.

Die Procedure die ich im fmSuche aufrufe sieht ca so aus.
Delphi-Quellcode:
procedure suche;
begin
SQLQuery.sql.text:='select * from .......where Nachname=.........usw'
SQLQuery.active:=true;
fmSuche.close;
end;
Dieses Eigenschaft trit nur dann ein, wenn ich das Programm nicht via Delphi anwerfe allso STRG+F9.
Mach ich da was falsch ?
Muss ich da mit try......finally arbeiten ?
Kennt jemand diese Problem ?


lg
Bundy
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Formular schließt nicht mehr

  Alt 20. Nov 2006, 22:24
Ein moadle Form schließt man durch Setzen von .ModalResult und nicht durch .Close[b].
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#3

Re: Formular schließt nicht mehr

  Alt 20. Nov 2006, 22:30
aber warum funktioniert es wenn die suche kurz gehalten wird . nur Ineresse halber. ist irgedwie unlogisch
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Formular schließt nicht mehr

  Alt 20. Nov 2006, 22:32
Ich vermute mal, das währrend der Ausführung der Abfrage nicht auf Messages reagiert wird.
Markus Kinzler
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Formular schließt nicht mehr

  Alt 20. Nov 2006, 22:33
Jup kann ich bestätigen - oder
das Programm arbeitet noch in einer repeat schleife und man versucht es zu beenden - negativ

tobi
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#6

Re: Formular schließt nicht mehr

  Alt 20. Nov 2006, 22:34
ok danke dir
ich werd das mal mit .modalresult testen.

lg
Bundy
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat
Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#7

Re: Formular schließt nicht mehr

  Alt 20. Nov 2006, 22:47
Aus der Delphi Hilfe hab ich folgendes

Zitat:
Der Standardwert von ModalResult ist mrNone. Wenn Sie der Eigenschaft einen anderen Wert zuweisen, wird das Formular geschlossen, und der Wert wird zum Rückgabewert des ShowModal-Funktionsaufrufs, mit dem das Formular angezeigt wird.
das heisst ich mach das so

Delphi-Quellcode:
procedure TfmSucheStrasse.cxButton1Click(Sender: TObject);
begin
with ClientDataModule do
  begin
    tbl_blocks.Active:=false;
    tbl_blocks.Params.ParamByName('parPlz').Value:=cxTextEdit1.Text;
    tbl_blocks.Params.ParamByName('parStrasse').Value:=cxTextEdit2.Text;
    tbl_blocks.Params.ParamByName('parHausNr').Value:=cxTextEdit3.Text;
    tbl_blocks.Params.ParamByName('parStiege').Value:=cxTextEdit4.Text;
    tbl_blocks.Active:=true;

  end;
  cxTextEdit1.Clear;
  cxTextEdit2.Clear;
  cxTextEdit3.Clear;
  cxTextEdit4.Clear;
 ModalResult:=mrOk //<<<<<<<<---------
end;
also das Form schließt so. Nur ist der Einsatz der richtige ?

lg
Bundy
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Formular schließt nicht mehr

  Alt 21. Nov 2006, 06:49
Ja, und der Wert den du ModalResult übergibst kann du auch auswerten. D.H du kannst verschiedene Werte zurückgeben.

z.B.
if fmSucheStrasse.ShowModal = mrOk then ...
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#9

Re: Formular schließt nicht mehr

  Alt 21. Nov 2006, 18:42
danke für die Info
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Formular schließt nicht mehr

  Alt 21. Nov 2006, 18:51
Hallo,

auch Close setzt einen ModalResult.
Das Problem ist ja, dass das Query.Active so lange dauert,
und nicht auf Nachrichten reagiert wird.

Falls deine Db Top(Limit) kennt, benutze dass,
um die Anzahl der Suchergebnisse zu reduzieren.
Vielleicht ist ja auch was faul an der Db (fehlende Indizes),
oder du lädst mehr Daten als angezeigt werden (select *)

Ansonsten bleibt nur das Auslagern in einen eigenen Thread,
den kann man ja abschiessen.


Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz