Einzelnen Beitrag anzeigen

Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#14

AW: User klicken unterbinden während Querry läuft

  Alt 9. Dez 2010, 15:23
Erstmal danke für das rege Interesse und
hier mal der momentane Code, der nicht funzt wie gesagt Quelle = TADOQuerry:

Code:
procedure TSelector.acOpenExecute(Sender: TObject);
begin
  if Quelle.State in [dsedit,dsinsert] then Quelle.Post;
  Quelle.Close;
  pnltab.Caption:= 'Bitte warten';
  self.Repaint;
  Quelle.SQL.Clear;
  Quelle.SQL.Text:= Memo1.Lines.Text;
  try
    self.Enabled:=false;               //Disabled
    Application.ProcessMessages;
    Quelle.Open;
    Application.ProcessMessages;
    pnltab.Caption:= '';
  except
    on e: exception do
      begin
      pnltab.Caption:= e.message;
      Application.ProcessMessages;
      self.Enabled:=true;
      end;
    end;
  Application.ProcessMessages;
  self.Enabled:=true;                      //enabled
end;
Mit self.enabled scheints da noch komischer zu werden. Manchmal (nicht immer) wird die Anzeige der Daten im Grid nicht aktualisiert. Erst wenn man aus dem Fenster klickt, dann wieder rein, ist es auf einmal da. Luckie scheint recht zu haben, dass das disablen des ganzen Forms "gefährlich" ist.

Hab Alternativ auch mal nur einen Button disabled und den dann gedrückt während die Query lief. Nachdem mir die Daten angezeigt wurden, ging das Fenster auf, dass der Button öffnen sollte.

Was hat es mit der Botschafterwarteschlange auf sich. Kann man da was machen?

Das benutzen eines Threads überleg ich noch, allein um dem User mit einem Fortschrittsbalken Aktivität vorzugaukeln. Das sollte aber unabhängig von dem jetzigen Problem sein, dass ich erst mal gelöst haben will, nämlich das ignorieren von User-Aktionen während die Daten aus der Datenbak geholt werden.

Jumpy
Ralph
  Mit Zitat antworten Zitat