Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Schleife zum Wiederholen eines Sources (https://www.delphipraxis.net/7339-schleife-zum-wiederholen-eines-sources.html)

davidwittesz 9. Aug 2003 23:05

Re: SCHLEIFE ZUM WIEDERHOLEN EINES SOURCES
 
wenn jemand lust und zeit hatt könnte er mir ja mal den surce debuggen ich komme nicht weiter


Delphi-Quellcode:

unit Unit1;

interface

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

type
    TForm1 = class(TForm);
    TMyThread= class(TThread)
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);

private
    { Private declarations }
protected
     procedure Execute; override;
end;

var
       Form1: TForm1;

implementation

{$R *.DFM}

procedure TMyThread.Execute;
begin
  while Not Terminated do
  procedure TForm1.Button1Click(Sender: TObject);
var
  i : Integer;
  w : hWnd;
begin
// Externes Programm oeffnen
ShellExecute(0, PChar('open'), 'C:\Programme\Internet Explorer\IEXPLORE.EXE','', '', SW_SHOWMINIMIZED);
for
  i := 0 to 10 do
  begin
    Label1.Caption := IntToStr(i);
    Label1.Repaint;
    // Pause (in msec)
    Sleep(500);
end;
  // Externes Programm schliessen
  w := FindWindow(NIL,'about:blank - Microsoft Internet Explorer');
  if W<>0 then
    PostMessage(W, wm_close, 1, 1);
end;

procedure THauptForm.Button2Click(Sender: TObject);
begin
  MyThread.Terminate;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  Close;
end;

end.
danke whitey :cat:

[edit=Luckie]Es geht auch mit weniger Leerzeilen. :roll: Mfg, Luckie[/edit]

Luckie 9. Aug 2003 23:23

Re: SCHLEIFE ZUM WIEDERHOLEN EINES SOURCES
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i : Integer;
  w : hWnd;
  e : Integer;
begin
// Externes Programm oeffnen
   while w<>0 do
   begin
     ShellExecute(0, 'open', 'C:\Programme\InternetExplorer\IEXPLORE.EXE', '','', SW_SHOWMIMIMIZED);
     for i := 0 to 10 do
     begin
       Label1.Caption := IntToStr(i);
       Label1.Repaint;
       // Pause (in msec)
       Sleep(500);
     end;
     // Externes Programm oeffnen
     w := FindWindow(NIL,'about:blank - Microsoft Internet Explorer');
     if W<>0 then
       PostMessage(W, wm_close, 1, 1);
  end;
end;
Ohne Thread.

davidwittesz 9. Aug 2003 23:47

Re: SCHLEIFE ZUM WIEDERHOLEN EINES SOURCES
 
[edit=Luckie]Unformatierten Code mit duzenden überflüssigen Leerzeilen entfernt. Mfg, Luckie[/edit]

davidwittesz 10. Aug 2003 00:14

Re: SCHLEIFE ZUM WIEDERHOLEN EINES SOURCES
 
Delphi-Quellcode:
unit Unit1;

interface

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


type
    TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Button3: TButton;



    procedure Button1Click(Sender: TObject);


    procedure Button2Click(Sender: TObject);

private
    { Private declarations }

public
{ public declarations }




end;
var
Form1: TForm1;

implementation
$R *.DFM}
begin
procedure TForm1.Button1Click(Sender: TObject);
var
  i : Integer;
  w : hWnd;
  e : Integer;
begin
// Externes Programm oeffnen
   while w<>0 do
   begin
     ShellExecute(0, 'open', 'C:\Programme\InternetExplorer\IEXPLORE.EXE', '','', SW_SHOWMIMIMIZED);
     for i := 0 to 10 do
     begin
       Label1.Caption := IntToStr(i);
       Label1.Repaint;
       // Pause (in msec)
       Sleep(500);
     end;
     // Externes Programm oeffnen
     w := FindWindow(NIL,'about:blank - Microsoft Internet Explorer');
     if W<>0 then
       PostMessage(W, wm_close, 1, 1);
  end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;
end.
---------------------------------------------------------------------------
jetzt geht gar nichts mehr , das programm startet nicht und es kommt auch keine fehler meldung.

------------------------------------------------------------------------

danke whitey :cat:

[edit=Luckie] Mfg, Luckie[/edit]

davidwittesz 11. Aug 2003 09:37

Re: SCHLEIFE ZUM WIEDERHOLEN EINES SOURCES
 
Delphi-Quellcode:
procedure TMyThread.Execute;
begin
  while Not Terminated do
  [U]procedure TForm1.Button1Click(Sender: TObject);[/U]
var
  i : Integer;
  w : hWnd;
begin
__________________________________________________ ______________________

kann es sein das der unterstrichene butten da nicht hingehört und deshalb das programm nicht laufen will ?

mfg whitey :cat:

Luckie 11. Aug 2003 10:13

Re: SCHLEIFE ZUM WIEDERHOLEN EINES SOURCES
 
Das wäre möglich. Eine Prozedur-Deklaration hat da nichts verloren.

MrSpock 11. Aug 2003 10:20

Re: SCHLEIFE ZUM WIEDERHOLEN EINES SOURCES
 
Hallo davidwittesz,

zum obigen Code, der auf Luckies Vorschlag basiert, solltest du w noch vorbesetzen. In der while Schleife fragst du ab, ob w <> 0 ist, aber w hat ja zu diesem Zeitpunkt noch keinen definierten Wert. Setze einfach vor der while Schleife w := 1;

Willst du es mit Threads lösen, dann musst es soheißen:

Delphi-Quellcode:
procedure TMyThread.Execute;
var
  i : Integer;
  w : hWnd;
begin
  while Not Terminated do
  begin
    // Externes Programm oeffnen
    ShellExecute(0, PChar('open'), 'C:\Programme\Internet Explorer\IEXPLORE.EXE','', '', SW_SHOWMINIMIZED);
    for i := 0 to 10 do
    begin
      Label1.Caption := IntToStr(i);
      Label1.Repaint;
      // Pause (in msec)
      Sleep(500);
    end;
    // Externes Programm schliessen
    w := FindWindow(NIL,'about:blank - Microsoft Internet Explorer');
    if W<>0 then
      PostMessage(W, wm_close, 1, 1);
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:32 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz