AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Schleife zum Wiederholen eines Sources
Thema durchsuchen
Ansicht
Themen-Optionen

Schleife zum Wiederholen eines Sources

Ein Thema von davidwittesz · begonnen am 9. Aug 2003 · letzter Beitrag vom 11. Aug 2003
Antwort Antwort
Seite 1 von 2  1 2      
davidwittesz

Registriert seit: 9. Aug 2003
Ort: Salzgitter
8 Beiträge
 
#1

Schleife zum Wiederholen eines Sources

  Alt 9. Aug 2003, 20:07
Delphi-Quellcode:
unit Unit1;
interface

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

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

private
    { Private-Deklarationen }
public
    { Public-Deklarationen }
end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
  i : Integer;
  w : hWnd;
  e : Integer;
begin
 // Externes Programm oeffnen
   while w<>0 do begin
    ShellExecute(0, PChar ('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;

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

end.
[edit=MrSpock]Code Tags eingefügt und Leerzeilen gelöscht[/edit]


WIE KANN ICH DEM PROGRAMM SAGEN DAS ES VON VORNE ANFANGEN SOLL?


[edit=MrSpock] Mfg, MrSpock[/edit]
[edit=sakura]Überschrift auf Kleinbuchstaben geändert. Mfg, sakura[/edit]
  Mit Zitat antworten Zitat
chris01

Registriert seit: 26. Apr 2003
Ort: Ahlen
163 Beiträge
 
Delphi 7 Personal
 
#2

Re: SCHLEIFE ZUM WIEDERHOLEN EINES SOURCES

  Alt 9. Aug 2003, 20:17
Timer!?
Christopher H.
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#3

Re: SCHLEIFE ZUM WIEDERHOLEN EINES SOURCES

  Alt 9. Aug 2003, 20:30
Hallo davidwittesz,

in der Regel benutzt man dazu eine Schleife:

Delphi-Quellcode:
repeat
{ hier den Code, der wiederholt werden soll }
until aufhoeren;
aufhoeren muss natürlich irgendwann einmal auf True gesetzt werden, sonst hast du eine Endlosschleife.

[edit=MrSpock]Willkommensgruß vergesseb [/edit]

Herzlich willkommen im Delphi-PRAXIS Forum.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
davidwittesz

Registriert seit: 9. Aug 2003
Ort: Salzgitter
8 Beiträge
 
#4

Re: SCHLEIFE ZUM WIEDERHOLEN EINES SOURCES

  Alt 9. Aug 2003, 20:37
wie muss ich den repead befeht einbringen das der prozess vom ersten begin bis zum letzten end; immer und immer wieder wiederholt wird biss ich auf einen butten clicke ?
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: SCHLEIFE ZUM WIEDERHOLEN EINES SOURCES

  Alt 9. Aug 2003, 20:38
Hi,
theoretisch kann dein Source gar nicht funktionieren, weil ein end; fehlt, dass zur while-Schleife gehört.

Chris
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#6

Re: SCHLEIFE ZUM WIEDERHOLEN EINES SOURCES

  Alt 9. Aug 2003, 20:51
Hallo davidwittesz,

wenn du so etwas machen möchtset, bieten sich Threads an. Du erstellst einen Thread, den du solange laufen lässt, bis ein bestimmtest Event (z.B. das Drücken eines Schalters passiert. Das wichtige ist ja hierbei, dass während dein "Thread läuft" noch ein anderer Thread (das Hauptprogramm) aufpassen musst, wann die Bedingung zum Abbruch erfüllt ist.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
davidwittesz

Registriert seit: 9. Aug 2003
Ort: Salzgitter
8 Beiträge
 
#7

Re: SCHLEIFE ZUM WIEDERHOLEN EINES SOURCES

  Alt 9. Aug 2003, 20:58
wie sieht den so ein thread aus ? die while schleife ist hier nicht zu beachten die habe ich vergessen zu endfernen, das war der erste versuch das programm zu wiederholen.

danke das ihr alle so fleißig antwortet


--------------------------------------------------------------------------
david
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#8

Re: SCHLEIFE ZUM WIEDERHOLEN EINES SOURCES

  Alt 9. Aug 2003, 22:08
Hallo davidwittesz,

die Online Hilfe erklärt das Prinzip recht gut.

Du leitest eine neue Klasse von TThread ab. Das wichtigste ist die Execute Methode, die du überschreibst:

Delphi-Quellcode:
TMyThread = class(TThread)
    private
      { private-Deklarationen }
      protected
    procedure Execute; override;
   end;

...
procedure TMyThread.Execute;
begin
  while Not Terminated do
  { Deinen Code einfügen, der wiederholt werden soll }
 end;
Das Hauptprogramm terminiert (Arnie lässt grüßen ) den Thread auf Knopfdruck:

Delphi-Quellcode:
procedure THauptForm.Button1Click(Sender: TObject);
begin
  MyThread.Terminate;
end;
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
davidwittesz

Registriert seit: 9. Aug 2003
Ort: Salzgitter
8 Beiträge
 
#9

Re: SCHLEIFE ZUM WIEDERHOLEN EINES SOURCES

  Alt 9. Aug 2003, 23:33
er gibt mir bei



TMyThread= class(TThread)

folgende Fehlermeldung: Expected ':' but '=' found.


wenn ich das = durch einen : ersetze gibt er mir die Meldung:

Expected an identifier but CLASS found


und nu ???

-------------------------------------------------------------------------
jeder mag mich nur mein computer rebelliert!!!!!!

whitey
  Mit Zitat antworten Zitat
Benutzerbild von Uncle Cracker
Uncle Cracker

Registriert seit: 30. Mär 2003
Ort: Freital
694 Beiträge
 
#10

Re: SCHLEIFE ZUM WIEDERHOLEN EINES SOURCES

  Alt 9. Aug 2003, 23:50
Du musst auch vor TMyThread= class(TThread) ein ';' setzten, also so:
Code:
TForm1 = class(TForm);
TMyThread = class(TThread)
    private
      { private-Deklarationen }
      protected
    procedure Execute; override;
   end;

...
procedure TMyThread.Execute;
begin
  while Not Terminated do
  { Deinen Code einfügen, der wiederholt werden soll }
end;
I wish it was legal to marry software because I'm madly in love with Delphi...
  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 03:40 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