AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi progressform, mehrere funktionen parallel
Thema durchsuchen
Ansicht
Themen-Optionen

progressform, mehrere funktionen parallel

Ein Thema von stephan007 · begonnen am 28. Jun 2007 · letzter Beitrag vom 3. Jul 2007
Antwort Antwort
Seite 1 von 2  1 2      
stephan007

Registriert seit: 2. Mär 2007
48 Beiträge
 
#1

progressform, mehrere funktionen parallel

  Alt 28. Jun 2007, 15:14
hallo!

ich habe meine progressform (oben task eintragen, unten den fortschritt des einzelnen tasks und den gesamtstand mit balken und anzeige sowie geschätzter zeit) soweit fertig. wenn ich eine der funktionalitäten (balken oder tasks eintragen) aufrufe, funktioniert es problemlos. wenn ich nun aber beide gleichzeitig haben will, also von meinem testform die jeweiligen funktionen nacheinander starten will, also zuerst die "task einfügen" mittels button click starte und dann die balken-simulation dazu starte, dann funktioniert immer nur das gerade zuletzt gewählte, also die letzte aktion gewinnt.

wie kann ich erreichen, dass z.b. das einfügen in die liste unbeirrt weiterarbeitet, auch wenn ich nun die balken-simulation starte? also dass beide parallel arbeiten.

muss ich da nun vor dem aufruf der jeweiligen aktion einen thread erzeugen und diesen nach der bearbeitung wieder beenden, oder wie genau kann ich dieses parallelität erreichen.

danke für eure hilfe.

stephan.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#2

Re: progressform, mehrere funktionen parallel

  Alt 28. Jun 2007, 15:16
Zitat von stephan007:
muss ich da nun vor dem aufruf der jeweiligen aktion einen thread erzeugen und diesen nach der bearbeitung wieder beenden, oder wie genau kann ich dieses parallelität erreichen.
Du hast Dir die Antwort selbst gegeben.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
stephan007

Registriert seit: 2. Mär 2007
48 Beiträge
 
#3

Re: progressform, mehrere funktionen parallel

  Alt 28. Jun 2007, 15:31
das heißt also, ich muss folgendes machen:

(also pseudocode)
thread erzeugen
funktion aufrufen
thread killen

ok, dann weiß ich schon, was zu tun war.

danke fürs "auf die sprünge helfen", die narkose der op gestern blockiert heute scheinbar etwas.
  Mit Zitat antworten Zitat
stephan007

Registriert seit: 2. Mär 2007
48 Beiträge
 
#4

Re: progressform, mehrere funktionen parallel

  Alt 29. Jun 2007, 10:35
also irgendwie bekomme ich bei der obigen variante eine sonderbare fehlermeldung von delphi.

ich mache nichts anderes als im OnCreate ein mythread.Create(false) aufzurufen und im OnDestroy ein mythread.free;

das quitiert mir delphi aber mit der meldung "abstrakter fehler" beim start des programms.
was ist denn da wieder verkehrt? ich mach doch nichts anderes, als einen thread zu erzeugen und wieder freizugeben.

den thread habe ich im private teil der formclass definiert mit mythread: TThread.

hab ich da wo einen denkfehler drinnen oder wo könnte es sich hier spießen??

denn irgendwie will das mit den threads nicht so ganz wie ich will

stephan.
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#5

Re: progressform, mehrere funktionen parallel

  Alt 29. Jun 2007, 10:50
Du musst nicht eine Variable vom Typ TThread erzeugen, sondern davon eine Klasse ableiten und diese dann instanziieren. Abstrakter Fehler heißt mehr oder weniger, dass versucht wurde, eine abstrakte Klasse zu instanziieren.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
stephan007

Registriert seit: 2. Mär 2007
48 Beiträge
 
#6

Re: progressform, mehrere funktionen parallel

  Alt 29. Jun 2007, 10:53
äh sorry, ich versteh gerade nur bahnhof. kannst du mir das bitte an hand eines codefragments zeigen?
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#7

Re: progressform, mehrere funktionen parallel

  Alt 29. Jun 2007, 10:57
Da meine Syntaxkenntnisse in Delphi etwas eingerostet sind, habe ich mal nach dem nächstbesten Beitrag über TThread gesucht und poste hier den Quellcode:
Delphi-Quellcode:
uses
  Classes;

type
  TMyThread = class(TThread)
  private
    { Private-Deklarationen }
  protected
    procedure Execute; override;
  end;

implementation


procedure TMyThread.Execute;
begin
// Tue etwas
end;
In deinem Hauptformular kannst du dann zum Beispiel statt deiner Variablen vom Typ TThread eine vom Typ TMyThread erzeugen.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
stephan007

Registriert seit: 2. Mär 2007
48 Beiträge
 
#8

Re: progressform, mehrere funktionen parallel

  Alt 29. Jun 2007, 11:28
ups, das wird ja aufwändiger als ich gedacht habe, vorallem welche aktion soll ich im execute haben?

ich will ja nur einen thread erzeugen und wieder löschen.

und das auch nur, damit ich in ein formular was einfügen kann und gleichzeitig die fortschrittsbalken anpassen kann. also dass zwei funktionen parallel laufen.

deshalb frage ich mich auch, welche funktionalität ich da im execute reinpacken soll, muss respektive kann.

ich glaube, ich mach mich mal auf die suche nach einem beispiel, in welchem threads verwendet werden und sowas ähnliches passiert, vielleicht wirds mir dann klarer.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: progressform, mehrere funktionen parallel

  Alt 29. Jun 2007, 11:31
Guck mal hier: http://delphitutorials.michael-puff.de
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#10

Re: progressform, mehrere funktionen parallel

  Alt 29. Jun 2007, 11:59
Luckie hat Recht, guck dir mal sein (sehr gutes)
Tutorial zum Thema Threads an, dann wirst du auch die Zusammenhänge besser verstehen können.

Generell kann ich dir nur folgendes noch mit auf dem Weg geben:

- Du brauchst ja einen Thread, da du etwas parallel (ja ich weiss die wenigsten haben core duo, bzw 2 prozessoren), also
sagen wir mal Quasi-Parallel abarbeiten willst, dafür brauchst du einen Thread.
Wenn du von TThread ableitest musst du natürlich die virtuelle Execute() Methode überschreiben, da hier ja reinkommt, was der Thread dann machen soll, wenn er denn dann mal gestartet ist.

Weitere Themen, Synchronisation, Mutex..., das findest du alle bei Luckie super erklärt, also los gehts
  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 09:28 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