Autor Beitrag
Luggi
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 14.01.08 15:09 
Hallo!
Ich bin ein Delphi-Neuling und versuche jetzt ein Programm zu schreiben, in dem eine Verkehrssituation dargestellt wird, dazu müssten aber mehrere (9) Prozeduren gleichzeitig ablaufen? Wie kann ich das hinbekommen?

Danke schonmal im Vorraus...

Moderiert von user profile iconChristian S.: Titel angepasst, Hilfe wollen alle
FiceGoesDelphi
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 485

Win XP Prof
Delphi 2006
BeitragVerfasst: Mo 14.01.08 15:18 
Ich verstehe dein Problem nicht so ganz aber du kannst doch in einer Procedure eine (oder auch neun) weitere Procedure(n) aufrufen.
Um dir aber konkreter helfen zu können, würde ich dir raten, den Code hier zu posten und ein wenig mehr zu erklären, worum es genau geht.

_________________
<(^^<) <(^^)> (>^^)>
===================
nagel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 708

Win7, Ubuntu 10.10

BeitragVerfasst: Mo 14.01.08 15:24 
So wie ich dich verstehe, sollten Threads dein Problem lösen, also einfach mal hier im Forum nach danach suchen.

Alternativ könnte auch user profile iconLuckies Tutorial eine Hilfe sein.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 14.01.08 19:03 
Moin und :welcome: im Forum!

user profile iconLuggi hat folgendes geschrieben:
Ich bin ein Delphi-Neuling und versuche jetzt ein Programm zu schreiben, in dem eine Verkehrssituation dargestellt wird, dazu müssten aber mehrere (9) Prozeduren gleichzeitig ablaufen?
Ich denke nicht, dass dir mit Threads geholfen ist, denn als Anfänger ist das zum Einen ganz schön schwerer Tobak, zum Anderen solltest du vermutlich mit einem Zeitscheibenansatz besser dein Problem lösen können. :idea:

Dieses Problem hatten wir schon häufiger hier (in mehr oder weniger ähnlicher Form). Such mal nach Suche in: Delphi-Forum, Delphi-Library AMPEL, da sollte sich was zu finden lassen. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Luggi Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 14.01.08 22:31 
mhm... sowirklich konnte ich da nichts finden... das stichwort timer fiel hin und wieder, aber das hatten wir im unterricht noch nich =(
ich kann ja mal mein projekt zum download anbieten, vielleicht versteht ihr mein problem dann besser...
is übrigens mal wieder sone ampelschaltung, deutschlands lehrer scheinen ja sehr kreativ zu sein :D

und das problem is halt dass die prozeduren ampellinks1, ampellinks2,...,bewegung gleichzeitig ablaufen müssten, dann müsste meiner meinung nach alle gehn...

danke im vorraus
greetz luggi
Einloggen, um Attachments anzusehen!
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 14.01.08 22:36 
Moin!

user profile iconLuggi hat folgendes geschrieben:
das stichwort timer fiel hin und wieder, aber das hatten wir im unterricht noch nich =(
Ich fürchte leider, auf genau diesen Timer wird das aber hinauslaufen... :?

user profile iconLuggi hat folgendes geschrieben:
ich kann ja mal mein projekt zum download anbieten, vielleicht versteht ihr mein problem dann besser...
Die Exe nutzt da relativ wenig. ;) Pack bitte mal alle Dateien des Projekts OHNE die Exe in ein ZIP-Archiv und das hier in den Anhang. :idea:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Luggi Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 14.01.08 22:41 
Titel: projekt die zweite...
so hier nochma alle dateien, außer die *.exe...
ich hoffe mal, dass das trotz der verwendeten images bei euch klappt...

greetz luggi
Einloggen, um Attachments anzusehen!
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 14.01.08 22:55 
Moin!

Es ist leider genau so, wie ich es schon befürchtet hatte: du hast das Projekt sequentiell funktional angelegt und mit Pausen gearbeitet. Das funktioniert aber bei einer ereignisorientierten Anwendung nicht. :idea: Du musst Zeitscheiben definieren und Zustände, die deine Anwendung annehmen kann (welche Ampel zeigt in welchem Zustand welche Farbe). Aus so einer Tabelle kannst du dann die Änderungen ableiten und mit einem Timer als Zeitquelle die Zustände umschalten. Schau mal hier, da wird das so gemacht. ;)

Von deiner Lösungvorstellung, mehrere Prozeduren "gleichzeitig" laufen zu lassen, solltest du dich umgehend verabschieden, das wird nix (auch mit Threads wird das nix :? allein schon wegen der Synchronisation mit der VCL). :nixweiss:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
nagel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 708

Win7, Ubuntu 10.10

BeitragVerfasst: Mo 14.01.08 23:04 
Ein kleiner Hinweis, der weit am eigentlichen Problem vorbeigeht: Zwischen Rot-Gelb und Grün ist keine Gelbphase. :wink:

Und außerdem noch sorry, dass ich dich gleich auf Threads hingewiesen habe, ich hoffe du hast dich jetzt nicht stundenlang damit beschäftigt. Ich hab aus deiner anfänglichen Frage die Aufgabe nicht richtig herausgelesen, aber jetzt sollte ja dank user profile iconNarses' Link bald alles geklärt sein.
oldmax
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 380


D3 Prof, D4 Prof
BeitragVerfasst: Di 15.01.08 09:28 
Hi
Vielleicht sollte es mal deutlich gesagt werden, Proceduren können nicht gleichzeitig ablaufen !
Ein Programm läuft immer "sequenziell" ab, d.h. es ist eine Endlosschleife, die durch Ereignisse gesteuert, verschiedene Wege geht. ( Verarbeitungen ausführt )
Timer ist hier die Lösung, weil ein Timer ein Programm außerhalb der Schleife aufruft, nicht ganz gleichzeitig, aber immerhin sieht es dann zumindest so aus. Also, Timer eingeben und F 1 drücken und dann mal schauen, was sich da so zeigt. Unter dem Link von Narses solltest du genug Beispiele finden, die du durcharbeiten und ausprobieren kannst. Auch wenn da einige Funktionen noch unbekannt sein mögen, ein wenig experimentieren kann nicht schaden.
Nebenbei, ein Programmierer kann auch nicht sagen : "das hatte ich noch nicht.... "
Gruß oldmax

_________________
Zier dich nich so, ich krieg dich schon....