Autor Beitrag
goofy
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Di 30.03.04 18:38 
Hi leutz!


Soll ein Programm erstellen, in dem sich automatisch ein zweites fenster öffnet, welches jedoch nicht mit einem programmtext versehen ist, sondern nur auf einer zeichenfläche eine ampel (rot und grün) zeigt, die die Farben schaltet (also rot grün und grau)!

WIE?! :nixweiss:
das mit der ampel hab ich ja schon hinbekommen :dunce: , aber nur in einem fenster..
bisher öffnet sich immer eine unit2, wenn ich ein form2 kreiere (ein lustiges wort :mrgreen: )!
bin echt jedem helfenden sehr verbunden, muss morgen fertig werden damit!

thx im voraus!
der goofy


-----------------------------------
schulzwang is was häßliches..
p punkt s punkt doppelpunkt wenn ich in dieser kategorie falsch bin tuts mir leid.. :roll:
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 30.03.04 19:00 
goofy hat folgendes geschrieben:
eine ampel (rot und grün) zeigt, die die Farben schaltet (also rot grün und grau)!

:shock: Farbenblind?

Der Code für die Ampel soll nicht in der Unit zu dem Formular sein, welches die Ampel anzeigt oder wie darf ich das verstehen? Dann nehm die Unit für das Ampel-Formular in der Unit mit dem Code auf und greife auf die Elemente des Ampel-Formulares zu, in dem du den Formularnamen vorranstellst.
goofy Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Di 30.03.04 20:02 
ja, ist richtig!
aber wie mach ich das?!
tut mir leid wenn ich mich da ein bißchen blöd anstell, aber ich raffs nicht..

hat vielleicht jemand ein tutorial oder eine unit in der zwei solche forms in einer unit verwendet werden?

gruß torsten
jjturbo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 516

Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
BeitragVerfasst: Di 30.03.04 20:53 
Folgendes Beispiel:
Deine Haupt-Unit ist Unit1 mit dem Formular Form1. Deine Ampel stellst Du in Unit2/Form2 dar, z.B. mit zwei TLabel. Jetzt kannst Du in Deiner Haupt-Unit so auf die Labels von Form2 zugreifen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
uses Unit2;//Wichtig!!! Sonst wird Form2 nicht gefunden...


procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2.Label1.Color:=clRed;
  Form2.Label2.Color:=clGreen;
end;


Gruß, jjturbo

Moderiert von user profile iconPeter Lustig: Delphi-Tags hinzugefügt

_________________
Windows XP: Für die einen nur ein Betriebssystem - für die anderen der längste Virus der Welt...
goofy Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Di 30.03.04 21:18 
okay, soweit hab ichs!
dank dir! (kann man auch zwei forms in einer unit (also ohne eine zweite unit) laufen lassen?)

hätt da aber noch ein weiteres problem: sobald die ampel auf grün ist, soll eine zeit gemessen werden, die dann stoppt, wenn eine taste gedrückt wird (reaktionstest). hab mir schon ne timerfunktion eingebaut, bekomme die zeit jedoch nicht in millisekunden (gefordert) ausgegeben?!
was tun?


gruß
torsten
jjturbo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 516

Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
BeitragVerfasst: Di 30.03.04 21:44 
So könntest Du zum Bleistift ermitteln, wie lange ein Button betätigt war:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
var Startzeitpunkt,Endzeitpunkt,Dauer_in_ms:Integer;
procedure TForm1.Button2MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Startzeitpunkt:=DateTimeToTimeStamp(Now).Time;
end;

procedure TForm1.Button2MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Endzeitpunkt:=DateTimeToTimeStamp(Now).Time;
  Dauer_in_ms:=Endzeitpunkt-Startzeitpunkt;
  ShowMessage('Dauer in ms: '+IntToStr(Dauer_in_ms));
end;

_________________
Windows XP: Für die einen nur ein Betriebssystem - für die anderen der längste Virus der Welt...
goofy Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 31.03.04 18:04 
is ja schön, aber das sind leider die falschen anfangs- und endbedingungen!
kann mir keiner helfen?

kann doch nicht so schwer sein, ne zeit mittels knopfdruck zu stoppen und sie in millisekunden auszugeben?!

gruß
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 31.03.04 18:19 
Immer mit der Ruhe hier!

Mach es doch einfach so, dass Du die Startzeit mittels GetTickCount in einer globalen Variable speicherst und wenn dann die Taste gedrückt wirst, ermittelst Du die Endzeit mittels GetTickCount. Endzeit-Startzeit ist die Reaktionszeit in Millisekunden.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".