AGB  ·  Datenschutz  ·  Impressum  







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

Formular regiert nicht zur Laufzeit

Ein Thema von thomasch · begonnen am 9. Aug 2005 · letzter Beitrag vom 10. Aug 2005
Antwort Antwort
thomasch

Registriert seit: 7. Apr 2005
57 Beiträge
 
Delphi 2007 Architect
 
#1

Formular regiert nicht zur Laufzeit

  Alt 9. Aug 2005, 16:56
Hallo,
offenbar ist die Sache so simpel, dass sie nirgendwo steht...

Wie bringe ich mein Formular dazu, während es beschäftigt ist auf Benutzereingaben zu reagieren?

Zur Verdeutlichung hier ein ganz einfachss Beispiel
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  stopit : Boolean ;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
i:Longint;
begin
  stopit:=false;
  while not stopit do
  i:=i+1;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  stopit:=true;
end;

end.
Wenn ich hier einmal Drücken von Button1 gedrückt habe, reagiert das formular und mit ihm Button2 nicht mehr.
Die Variante, ein zweites Form darüber zu legen ist mir zu unsauber...

Danke schonmal

Thomasch
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#2

Re: Formular regiert nicht zur Laufzeit

  Alt 9. Aug 2005, 16:58
Application.Processmessages in die Schleife, damit die Messages zwischendurch abgearbeitet werden.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Formular regiert nicht zur Laufzeit

  Alt 9. Aug 2005, 17:06
Zitat von thomasch:
Wenn ich hier einmal Drücken von Button1 gedrückt habe, reagiert das formular und mit ihm Button2 nicht mehr.
das ist klar.
das programm bleibt in Button1Click drinne.
solange eine callback-funktion (z.B Button1Click) ausgeführt wird, kann das form auf nix anderes reagieren.

ich würde für die "Arbeit" einen neuen Thread aufmachen.
dann ist das form nur solange beschäftigt, bis der neue thread angelaufen ist.
im form kannst du dann auf weitere aktionen reagieren (z.B. den thread wieder beenden).

gruessle
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
thomasch

Registriert seit: 7. Apr 2005
57 Beiträge
 
Delphi 2007 Architect
 
#4

Re: Formular regiert nicht zur Laufzeit

  Alt 10. Aug 2005, 07:48
Danke - ich dachte es gibt sowas, was repaint und ProcessMessages vereint.
Immrehin wirkt sich das "nichtreagieren" ja auf das ganze Form aus.

Viele Grüße

Thomasch
  Mit Zitat antworten Zitat
Antwort Antwort


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 09:25 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