Autor Beitrag
judomichi
Hält's aus hier
Beiträge: 12



BeitragVerfasst: So 27.02.11 11:09 
Hallo,

ich habe mich heute hier angemeldet, weil ich denke, das ich hier viele Informationen und Antworten auf meine Fragen bekomme. Wir habe gerade in der Schule mit Delphi (6) Programmierung begonnen. Um zu Hause zu üben habe ich eine alte 6er Version installiert und auch noch auf dem Flohmarkt ein Buch "Delphi 5 lernen" für 1 Euro gekauft.
Die Basiskenntnisse habe ich eigentlich ganz gut drauf, aber jetzt komme ich nicht weiter:

Wir sollen eine Ampelschaltung simulieren. Das habe ich auch fertig. Nur jetzt stören die quadratischen (Edit) Objekte, die ich genommen habe. Würde lieber Kreise nutzen. Die kann ich als Objekt genauso wenig finden, wie z.B. Quadrate, Linien u.s.w.
Ich will statische Objekte in meiner Form haben, denen ich lediglich andere Farben im Programm zuordnen möchte.

Die Sache mit Canvas ist mir (noch) ein wenig zu hoch. Aber wenn es gar nicht anders geht muss ich da wohl ran. Gibt es keine Komponenten "Kreis", die ich wie einen Button in die Form ziehen kann???


Moderiert von user profile iconKha: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am So 27.02.2011 um 11:20
Moderiert von user profile iconNarses: Titel geändert, war: "Vorstellung und gleich eine Frage".
haentschman
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 285
Erhaltene Danke: 33


DX10 Berlin Professional
BeitragVerfasst: So 27.02.11 11:16 
Hallo und willkommen...

schau dir mal Shape an.
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: So 27.02.11 11:16 
Hallo und :welcome:

Bitte wähle das nächste Mal einen aussagekräftigen Titel für deine Frage.
Weiterhin gehört diese Frage vermutlich eher in diese Sparte, aber das kann ja mal vorkommen. :wink:

Zu deiner Frage: Schau dir mal die Komponente Suche in: Delphi-Forum, Delphi-Library TSHAPE an. Bei dieser lassen sich Farbe und Form einstellen.
judomichi Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: So 27.02.11 12:00 
{ Kommando zurück! Ich habe in den Objekteigenschaften von TShape gefunden das man Shape als stCircle definieren kann. Und damit ist mein problem gelöst!
Vielen Dank für Eure Antworten!}

Ok, danke für den Hinweis! Wenn ich nach Shape suche finde ich da einen Thread der sich mit einer Ampelsteuerung befasst. Das muss ich mir mal genauer ansehen.
Meine Ampelschaltung (nicht mit Timer sondern mit "Schalten" Button funktioniert schon einwandfrei. Für die Ampeln habe ich Shapes genutzt. Nur das die halt quadratisch (20x20) sind und nicht rund. Jetzt nuss ich mal sehen wie ich ein Shape rund bekomme.

Hier mein Source, vielleicht umstendlich, aber wir sollten mit eigenen Prozeduren arbeiten:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Shape1: TShape;
    Shape2: TShape;
    Button2: TButton;
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Edit10: TEdit;
    Edit11: TEdit;
    Edit12: TEdit;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure v_rot();
    procedure v_gruen();
    procedure v_gelb();
    procedure v_rot_del();
    procedure v_gruen_del();
    procedure v_gelb_del();
    procedure h_rot();
    procedure h_gruen();
    procedure h_gelb();
    procedure h_rot_del();
    procedure h_gruen_del();
    procedure h_gelb_del();

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    flag : integer;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);
begin
// flag
// 1= rot
// 3 = gelb
// 4 = rot/gelb
// 5 = grueb


case flag of
   1:    begin;
            v_rot();
            v_gelb();
            v_gruen_del();
            h_rot_del();
            h_gelb();
            h_gruen_del();
            flag := 4;
         end;
   3:    begin;
            v_rot();
            v_gelb_del();
            v_gruen_del();
            h_rot_del();
            h_gelb_del();
            h_gruen();
            flag := 1;
         end;
   4:    begin;
            v_rot_del();
            v_gelb_del();
            v_gruen();
            h_rot();
            h_gelb_del();
            h_gruen_del();
            flag := 5;
         end;
   5:    begin;
            v_rot_del();
            v_gelb();
            v_gruen_del();
            h_rot();
            h_gelb();
            h_gruen_del();
            flag := 3;
         end;
   else  begin
            v_rot();
            v_gelb_del();
            v_gruen_del();
            h_gruen();
            h_rot_del();
            h_gelb_del();
            flag := 1;
         end;
end;

end;

// vertical
procedure tform1.v_rot();
begin;
   edit1.color := clred;
   edit4.color := clred;
end;

procedure tform1.v_gelb();
begin;
   edit2.color := clyellow;
   edit5.color := clyellow;
end;

procedure tform1.v_gruen();
begin;
   edit3.color := cllime;
   edit6.color := cllime;
end;

procedure tform1.v_rot_del();
begin;
   edit1.color := clmenu;
   edit4.color := clmenu;
end;

procedure tform1.v_gelb_del();
begin;
   edit2.color := clmenu;
   edit5.color := clmenu;
end;

procedure tform1.v_gruen_del();
begin;
   edit3.color := clmenu;
   edit6.color := clmenu;
end;

//horizontal
procedure tform1.h_rot();
begin;
   edit7.color := clred;
   edit10.color := clred;
end;

procedure tform1.h_gelb();
begin;
   edit8.color := clyellow;
   edit11.color := clyellow;
end;

procedure tform1.h_gruen();
begin;
   edit9.color := cllime;
   edit12.color := cllime;
end;

procedure tform1.h_rot_del();
begin;
   edit7.color := clmenu;
   edit10.color := clmenu;
end;

procedure tform1.h_gelb_del();
begin;
   edit8.color := clmenu;
   edit11.color := clmenu;
end;

procedure tform1.h_gruen_del();
begin;
   edit9.color := clmenu;
   edit12.color := clmenu;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
   close;
end;

end.


Moderiert von user profile iconKha: Delphi-Tags hinzugefügt


Zuletzt bearbeitet von judomichi am So 27.02.11 12:17, insgesamt 1-mal bearbeitet
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 27.02.11 12:06 
user profile iconjudomichi hat folgendes geschrieben Zum zitierten Posting springen:
Jetzt nuss ich mal sehen wie ich ein Shape rund bekomme.
So viele Eigenschaften hat TShape ja nicht: ;-)
docwiki.embarcadero....ls.TShape_Properties
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: So 27.02.11 13:33 
Moin und :welcome: im Forum!

user profile iconjudomichi hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich nach Shape suche finde ich da einen Thread der sich mit einer Ampelsteuerung befasst. Das muss ich mir mal genauer ansehen.
Wenn es der Thread ist, von dem ich befürchte, dass er es ist, solltest du besser nochmal suchen... :?

user profile iconjudomichi hat folgendes geschrieben Zum zitierten Posting springen:
Meine Ampelschaltung (nicht mit Timer sondern mit "Schalten" Button funktioniert schon einwandfrei.
Sofern du deinen Code mit einer fertigen Lösung vergleichen möchtest, kannst du ja mal hier reinsehen. :les: :think: ;)

Generell ist eine Ampelschaltung das Paradebeispiel für eine Zustandsmaschine. Hier gibt´s noch ein paar Infos zu der Umsetzung in einer ereignisorientierten Anwendung.

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.