Autor Beitrag
wayne123
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 52



BeitragVerfasst: Fr 01.10.10 21:29 
Also ich möchte einen Stromkostenrechner , erstmal mit 10 aus dem Internet genommenen Stromanbietern, machen. Diese habe ich schon mit den Labels 2-11 untereinandergereiht und daneben die Buttons 2-11 je gemacht. Wenn man da jeweils drauf drückt, kommen links unten alle möglichen Informationen. Jetzt habe ich ein kleines Edit Fenster oben links gemacht und da drunter einen OK-Button(der erste Button). Da drunter ist dann ein Label, wo am Ende jeweils stehen soll, wieviel der Strom bei dem Anbieter und dem Verbrauch kostet, wenn man auf das Label des dazugehörigen Anbieters klickt und davor in das Edit Feld sein Jahresstromverbrauch eingegeben hat.
Jetzt hab ich aber überhaupt keine Ahnung, wie ich das Delphi sagen soll, dass es mit diesem erst nach dem Start eingefügtem Wert rechnen soll.
Wie ich das machen kann, dass die Anbieter nach günstigstem Preis für den jeweiligen Jahresstromverbrauch aufgelistet werden, hab ich aufgegen, deswegen wollte ich es zumindest so hinkriegen, dass man selber gucken kann, wieviel man bei welchem Anbieter bezahlen muss.

Moderiert von user profile iconNarses: 2. Frage entfernt.


Zuletzt bearbeitet von wayne123 am So 03.10.10 20:12, insgesamt 1-mal bearbeitet
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Fr 01.10.10 21:33 
Hi und :welcome: im Forum!

Ich empfehle Dir dazu erstmal die Basics anzueignen.

Siehe:
o Delphi-Wikibook
o user profile iconChristians Crashkurs

Damit alleine sollte bereits einiges klarer werden. :)

Beste Grüße,
Marc
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 01.10.10 22:46 
Moin und :welcome: im Forum!

Bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien:
1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]
Einfach oben bei Deinem ersten Beitrag auf user defined image oder user defined image klicken und den Titel ändern. Danke Dir!

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
iterion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21
Erhaltene Danke: 2

Win XP ,Suse 11.3
Delphi 7
BeitragVerfasst: Sa 02.10.10 05:56 
Bitte aendere deinen Titel, ich bin auch nur hier gestolpert :) ,
wenn ich das richtig verstehe, moechtest du rechnen : KWJahr*Preis und das im unteren fenster anzeigen.
Must nur in das OnClick event des buttons schreiben:
label12 waere dein ergebnis und edit12.text enthaelt den vom benutzer angegebenen jahresverbrauch,das ginge so:

ausblenden Delphi-Quelltext
1:
label12.caption:=inttostr(Strtoint(edit1.text)*PreisproKWH);					


Ansonsten kannste dir mal die Delphi Hilfe ansehen, und ein paar beispiele runterladen und veraendern, so habe ich das auch gelernt. X).
Viel Spass beim Lernen
wayne123 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 52



BeitragVerfasst: So 03.10.10 20:18 
Bis dorthin hab ich es jetzt geschafft. Wenn man das programm jetzt startet, muss man seinen jahresverbrauch angeben und kann dann auf eins der Label mit dem jeweiligem Stromanbieter klicken, wodurch dann in immer dem gleichem Label der Preis angezeigt wird. Jetzt wollte ich das so machen, dass wenn man den verbrauch eingegeben hat, auf einen button dadrunter klicken kann und dann der billigste Preis mit dem Anbieter drüber angezeigt wird. Jetzt weiß ich aber nicht, wie das gehen soll, da die Preise bei mir ja erst ausgerechnet werden, wenn man auf den jeweiligen Anbieter klickt.

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

ok, ich merke langsam, dass ich ,wenn ich etwas überlege, auch selber auf das alles komme. Jetzt weiß ich nur noch eine kleine Sache nicht.

if Preis1 < Preis2 und Preis3

Wie krieg ich das und in Delphi hin?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 03.10.10 21:32 
user profile iconwayne123 hat folgendes geschrieben Zum zitierten Posting springen:
if Preis1 < Preis2 und Preis3
Formuliere es doch einmal anders:
Du möchtest wissen ob Preis1 kleiner als Preis2 ist und ob Preis1 kleiner als Preis3 ist.
ausblenden Delphi-Quelltext
1:
if (Preis1 < Preis2) and (Preis1 < Preis3) then					
wayne123 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 52



BeitragVerfasst: So 03.10.10 21:37 
und das kann man nicht irgendwie kürzer machen? denn das will ich mit 10 preisen machen und auch noch
if preis 2 < preis3 und preis4
und soweiter.
Tranx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 648
Erhaltene Danke: 85

WIN 2000, WIN XP
D5 Prof
BeitragVerfasst: So 03.10.10 21:39 
Ich hoffe, ich habe das Ziel des Ganzen ein wenig verstanden:

Du hast 10 Stromanbieter mit ihren Preisen irgendwo gespeichert. Über die Labels rufst Du deren Informationen ab und über einen Button und Deinen - in einem Edit-Feld eingegebenen Strombedarf - bekommst Du dann den Gesamtpreis.

Wenn das so ist, wäre es doch eher sinnvoll, mit einer Combobox zu arbeiten, in der Du die Stromversorgernamen speicherst. Dann brauchst Du noch eine Listbox mit den Preisdaten, oder - noch besser - ein Stringgrid mit den Preisdaten - in gleicher Reihenfolge. Und dann brauchst Du ja nur noch den Stromversorger aussuchen und den Preis ausrechnen.

Aufbau der Daten im Stringgrid (sgStrompreise):

Spalte
0 1 2
0 Name Grundgebühr Strompreis/kWh
1 EON 19,95 0,1
2 RWE 21,21 0,08
..

(Daten nur Dummies)

Dann hast Du in der Combobox (cbVersorger):

EON
RWE

Wenn Du einen Stromversorger in der Combobox auswählst, wird der Preis dann wie folgt berechnet und aus den Stromdaten aus dem Editfeld (eKWh) in einem Editfeld (eKosten) ausgegeben:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
function VerbrauchsKosten(Gebuehr, KWPreis, KWh : extended) : extended;
begin
  result := KWPreis*KWh+Gebuehr*12// falls auf ein Jahr berechnet
end;

procedure cbVersorgerClick(Sender : TObject);  // ClickProzedur der Combobox
var
  n : integer;
  Gebuehr, KWPreis, KWh, Kosten : extended;
begin
  n := cbVersorger.ItemIndex;
  if n>-1 then
  begin
    KWh := StrToFloat(eKWh.Text);
//  KWh := seKWh.Value; // bei Verwendung eines Spin-Editfeldes
    Gebuehr := StrToFloat(sgStrompreise.Cells[1,n+1]);
    KWPreis := StrToFloat(sgStrompreise.Cells[2,n+1]);
    Kosten := Verbrauchskosten(Gebuehr, KWPreis, KWh);
    eKosten.Text := FormatFloat('#.###,#0',Kosten);
  end;
end;


Ich hoffe, Dir etwas geholfen zu haben. So benötigst Du wirklich nur 4 Objekte:

2 Editfelder, 1 Combobox und 1 Stringgrid

Diese o.a. Prozedur kannst Du auch als Change-Prozedur des Editfeldes eKWh nutzen. Alternativ zu einem Editfeld kannst Du auch ein Spineditfeld benutzen. Dann gibt es keine Fehleingaben. Und dann ist die Übergabe des kWh-Wertes einfacher (Alternative s.o.)

Um aus den gegebenen Daten den günstigsten Anbieter herauszufinden, kannst Du ja einfach in einer Schleife die einzelnen Anbieter durchlaufen und den günstigsten speichern.


Zuletzt bearbeitet von Tranx am So 03.10.10 21:44, insgesamt 1-mal bearbeitet
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 03.10.10 21:39 
Geh doch einfach alle in einer Schleife durch. Die Abfrage hast du ja vermutlich (hoffentlich :hair: ) schon in einer Schleife.

Da kannst du dir immer den Preis ausrechnen und wenn der günstiger als der bisher günstigste ist, dann merkst du dir den stattdessen. Am Ende hast du dann den günstigsten Anbieter.
wayne123 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 52



BeitragVerfasst: So 03.10.10 22:02 
@Tranx
Danke für deine Mühe, aber ich hab jetzt schon soviel gemacht, da möchte ich nicht noch einmal von vorne anfangen.

Die Frage hört sich jetzt vllt. ein bisschen dumm an, aber wie genau mach ich so eine Schleife?

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:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
unit UnitStrom;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    Button11: TButton;
    Button2: TButton;
    Label14: TLabel;
    Label15: TLabel;
    Button12: TButton;
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Label2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Label3Click(Sender: TObject);
    procedure Label4Click(Sender: TObject);
    procedure Label5Click(Sender: TObject);
    procedure Label6Click(Sender: TObject);
    procedure Label7Click(Sender: TObject);
    procedure Label8Click(Sender: TObject);
    procedure Label9Click(Sender: TObject);
    procedure Label10Click(Sender: TObject);
    procedure Label11Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
  var
  Form1: TForm1;
  Preis1, Preis2, Preis3, Preis4, Preis5 ,Preis6, Preis7, Preis8, Preis9, Preis10, Verbrauch: Real;
implementation

{$R *.dfm}



procedure TForm1.Button2Click(Sender: TObject);
begin
  Label13.Caption := '200 € Kaution'
  + #10 +'12 Monate Vorauskasse'
  + #10 +'5500 kWh Paket'
  + #10 +'6 Monate Preisgarantie'
  + #10 +'200 € Neukundenbonus'
  + #10 +''
  + #10 +'Kosten im Paket: 16 ct/kWh'
  + #10 +'Kosten bei Mehrverbrauch: 16,71 ct/kWh'
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  Label13.Caption := '200 € Kaution'
  + #10 +'12 Monate Vorauskasse'
  + #10 +'4000 kWh Paket'
  + #10 +'6 Monate Preisgarantie'
  + #10 +'200 € Neukundenbonus'
  + #10 +''
  + #10 +'Kosten im Paket: 16 ct/kWh'
  + #10 +'Kosten bei Mehrverbrauch: 16,71 ct/kWh'
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  Label13.Caption := '12 Monate Vorauskasse'
  + #10 +'3 Monate Preisgarantie'
  + #10 +'750 kWh Neukundenbonus'
  + #10 +'160 € Neukundenbonus'
  + #10 +'Online-Kommunikation'
  + #10 +''
  + #10 +'Kosten: 17,60 ct/kWh'
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
  Label13.Caption := '50 € Kaution'
  + #10 +'3 Monate Vorauskasse'
  + #10 +'3 Monate Preisgarantie'
  + #10 +'450 kWh Neukundenbonus'
  + #10 +'150 € Neukundenbonus'
  + #10 +''
  + #10 +'Kosten: 18,30 ct/kWh'
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
  Label13.Caption := '12 Monate Preisfixierung'
  + #10 +'130 € Neukundenbonus'
  + #10 +'665 Frei-kWh für Neukunden'
  + #10 +''
  + #10 +'Kosten: 19,21 ct/kWh'
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
  Label13.Caption := '12 Monate Preisfixierung'
  + #10 +'130 € Neukundenbonus'
  + #10 +'665 Frei-kWh für Neukunden'
  + #10 +'ÖKO-STROM'
  + #10 +''
  + #10 +'Kosten: 19,21 ct/kWh'
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
  Label13.Caption := '12 Monate Vorauskasse'
  + #10 +'12 Monate Preisfixierung'
  + #10 +'70 € Ökobonus'
  + #10 +'200 € Neukundenbonus'
  + #10 +'70 € Bonus für 12 Monate'
  + #10 +'90 Frei-kWh Neukundenbonus'
  + #10 +'ÖKO-STROM'
  + #10 +''
  + #10 +'Kosten: 17,58 ct/kWh'
  + #10 +'Kostenaufschlag(1 Jahr kostenlos):'
  + #10 +'+2 ct/kWh'
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
  Label13.Caption := '6 Monate Vorauskasse'
  + #10 +'6 Monate Preisfixierung'
  + #10 +'200 € Neukundenbonus'
  + #10 +''
  + #10 +'Kosten: 17,58 ct/kWh'
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
  Label13.Caption := '12 Monate Vorauskasse'
  + #10 +'5500 kWh Paket'
  + #10 +'36 Monate Preisgarantie'
  + #10 +'302 € Neukundenbonus'
  + #10 +''
  + #10 +'Kosten im Paket: 21,21 ct/kWh'
  + #10 +'Kosten bei Mehrverbrauch: 25,00 ct/kWh'
end;

procedure TForm1.Button11Click(Sender: TObject);
begin
  Label13.Caption := '12 Monate Vorauskasse'
  + #10 +'7500 kWh Paket'
  + #10 +'36 Monate Preisgarantie'
  + #10 +'320 € Neukundenbonus'
  + #10 +''
  + #10 +'Kosten im Paket: 21,21 ct/kWh'
  + #10 +'Kosten bei Mehrverbrauch: 25,00 ct/kWh'
end;


procedure TForm1.Label2Click(Sender: TObject);
begin
  Verbrauch := StrToFloat(Edit1.Text);
  if Verbrauch > 5500
  then Preis1 := (880 + ((Verbrauch - 5500)* 0.1671)) -108.08
  else Preis1 := 771.92;
  Label12.Caption := FloatToStr(Preis1) + '€'
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Label12.Caption := '';
  Edit1.Text      := '';
  Edit1.SetFocus;
end;

procedure TForm1.Label3Click(Sender: TObject);
begin
  Verbrauch := StrToFloat(Edit1.Text);
  if Verbrauch > 4000
  then Preis2 := (640 + ((Verbrauch - 4000)* 0.1671)) - 108.08
  else Preis2 := 531.92;
  Label12.Caption := FloatToStr(Preis2) + '€'
end;

procedure TForm1.Label4Click(Sender: TObject);
begin
  Verbrauch := StrToFloat(Edit1.Text);
  if Verbrauch > 750
  then Preis3 := ((Verbrauch - 750)* 0.1760) - 62.8
  else Preis3 := 0;
  Label12.Caption := FloatToStr(Preis3) + '€'
end;

procedure TForm1.Label5Click(Sender: TObject);
begin
  Verbrauch := StrToFloat(Edit1.Text);
  if Verbrauch > 450
  then Preis4 := ((Verbrauch - 450)* 0.183) - 42
  else Preis4 := 0;
  Label12.Caption := FloatToStr(Preis4) + '€'
end;

procedure TForm1.Label6Click(Sender: TObject);
begin
  Verbrauch := StrToFloat(Edit1.Text);
  if Verbrauch > 665
  then Preis5 := ((Verbrauch - 665)* 0.1921) - 43.84
  else Preis5 := 0;
  Label12.Caption := FloatToStr(Preis5) + '€'
end;

procedure TForm1.Label7Click(Sender: TObject);
begin
  Verbrauch := StrToFloat(Edit1.Text);
  if Verbrauch > 665
  then Preis6 := ((Verbrauch - 665)* 0.1921) - 43.36
  else Preis6 := 0;
  Label12.Caption := FloatToStr(Preis6) + '€'
end;

procedure TForm1.Label8Click(Sender: TObject);
begin
  Verbrauch := StrToFloat(Edit1.Text);
  if Verbrauch > 90
  then Preis7 := ((Verbrauch - 90)* 0.1758) + 13.12
  else Preis7 := 0;
  Label12.Caption := FloatToStr(Preis7) + '€'
end;

procedure TForm1.Label9Click(Sender: TObject);
begin
  Verbrauch := StrToFloat(Edit1.Text);
  Preis8 := Verbrauch * 0.1758 - 1.4;
  Label12.Caption := FloatToStr(Preis8) + '€'
end;

procedure TForm1.Label10Click(Sender: TObject);
begin
  Verbrauch := StrToFloat(Edit1.Text);
  if Verbrauch > 5500
  then Preis9 := 1166.55 + (Verbrauch - 5500)* 0.25 - 302
  else Preis9 := 864.55;
  Label12.Caption := FloatToStr(Preis9) + '€'
end;

procedure TForm1.Label11Click(Sender: TObject);
begin
  Verbrauch := StrToFloat(Edit1.Text);
  if Verbrauch > 7500
  then Preis10 := 1569 + (Verbrauch - 7500)* 0.24 - 320
  else Preis10 := 1249;
  Label12.Caption := FloatToStr(Preis10) + '€'
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
  Verbrauch := StrToFloat(Edit1.Text);
  if Verbrauch > 5500
  then Preis1 := (880 + ((Verbrauch - 5500)* 0.1671)) -108.08
  else Preis1 := 771.92;
  if Verbrauch > 4000
  then Preis2 := (640 + ((Verbrauch - 4000)* 0.1671)) - 108.08
  else Preis2 := 531.92;
  if Verbrauch > 750
  then Preis3 := ((Verbrauch - 750)* 0.1760) - 62.8
  else Preis3 := 0;
  if Verbrauch > 450
  then Preis4 := ((Verbrauch - 450)* 0.183) - 42
  else Preis4 := 0;
  if Verbrauch > 665
  then Preis5 := ((Verbrauch - 665)* 0.1921) - 43.84
  else Preis5 := 0;
  if Verbrauch > 665
  then Preis6 := ((Verbrauch - 665)* 0.1921) - 43.36
  else Preis6 := 0;
  if Verbrauch > 90
  then Preis7 := ((Verbrauch - 90)* 0.1758) + 13.12
  else Preis7 := 0;
  Preis8 := Verbrauch * 0.1758 - 1.4;
  if Verbrauch > 5500
  then Preis9 := 1166.55 + (Verbrauch - 5500)* 0.25 - 302
  else Preis9 := 864.55;
  if Verbrauch > 7500
  then Preis10 := 1569 + (Verbrauch - 7500)* 0.24 - 320
  else Preis10 := 1249;

  if (Preis1 < Preis2) and (Preis1 < Preis3)
  then Label12.Caption := 'TelDaFax 1708 XL' + #10
                        + FloatToStr(Preis1) + '€';
  if (Preis2 < Preis1) and (Preis2 < Preis3)
  then Label12.Caption := 'TelDaFax 1708 L' + #10
                        + FloatToStr(Preis2) + '€'
  end;
end.



Die Button12.Click Methode hab ich noch nicht ganz fertig gemacht, so wie jaenicke dass gemeint hat.
iterion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21
Erhaltene Danke: 2

Win XP ,Suse 11.3
Delphi 7
BeitragVerfasst: So 03.10.10 23:02 
Hey,
am besten kann man an einem beispiel lernen, habe mir n paar minuten genommen um ein beispiel zu schreiben, ich habe mal angenommen das die anbieter cent mitrechnen also hier die source als rar.

Die anbieterliste ist ein key value editor, und die info kommt in ein memo, kann aber schoener mit ein TRichEdit gemacht werden mit farbe und so, aber n beispiel ist halt ein beispiel.
[Hinzugef0252gt]
Vielleicht kannst du auch ein array bauen, mit einem eigenen record,der die daten der anbieter enthaelt, ist sicher einfacher als alles zu hardcoden, sonst ist es wirklich leichter mit dem taschenrechner Xlol;
Einloggen, um Attachments anzusehen!

Für diesen Beitrag haben gedankt: wayne123
wayne123 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 52



BeitragVerfasst: Mo 04.10.10 18:01 
ok danke für deine hilfe iterion. jetzt hab ich nur noch ein problem. was ist, wenn die anbieter pakete und bonis usw. anbieten? also, dass die ersten 5500 kwh 50 cent billiger sind, man diese aber auch bezahlen muss, wenn man nur 4000 kwh verbraucht. das macht das ganze ja ein bisschen komplizierter.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 04.10.10 19:33 
Das musst du dann manuell im Code dazuschreiben und berechnen. ;-)
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Mo 04.10.10 19:45 
Hi, mal so als kleine Anregung!
Wie würde man dies machen, wenn man kein PC benutzen würde?
Man würde 10 Blatt Papier nehmen, den jeweiligen Anbieter draufschreiben und dessen Werte.
Oder, Man erstellt sich eine Tabelle, Kopfzeile mit den Anbietern, drunter jeweils seine Werte und als letzte Zeile das Ergebnis. Mit einer Tabelle hätte man auch gleich noch die komplette Übersicht und ist erweiterbar :wink:

Und nun hat man ein Pc und Delphi und macht es sich manchmal schwerer als es sein muss :shock:
Mit zig Labels, Buttons usw.

Nur so als Anregung

Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
iterion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21
Erhaltene Danke: 2

Win XP ,Suse 11.3
Delphi 7
BeitragVerfasst: Di 05.10.10 02:35 
user profile iconwayne123 hat folgendes geschrieben Zum zitierten Posting springen:
ok danke für deine hilfe iterion. jetzt hab ich nur noch ein problem. was ist, wenn die anbieter pakete und bonis usw. anbieten? also, dass die ersten 5500 kwh 50 cent billiger sind, man diese aber auch bezahlen muss, wenn man nur 4000 kwh verbraucht. das macht das ganze ja ein bisschen komplizierter.


Moin,
Ich schlage vor die daten der anbieter in einen record zu packen, etwa mit diesen daten

Zitat:
Label13.Caption := '200 € Kaution'
+ #10 +'12 Monate Vorauskasse'
+ #10 +'5500 kWh Paket'
+ #10 +'6 Monate Preisgarantie'
+ #10 +'200 € Neukundenbonus'
+ #10 +''
+ #10 +'Kosten im Paket: 16 ct/kWh'
+ #10 +'Kosten bei Mehrverbrauch: 16,71 ct/kWh'


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
var
type
TAnbieterDaten = record
kaution:integer;
vorauskasse:integer;
kwhPacket:real;
NeuBonus:integer;
MonatePG:integer;
wtf:integer;
PreisKwh:real;
Mehrverbrauch:real;
end;

Anbieterdaten=array[0..10]of TAnbieterDaten;


Dann kannst du die daten entweder alle einzeln angeben (Viel arbeit!!!), oder eine schleife nehmen um sie aus einem Tinifile zu lesen, um die info dan anzuzeigen, brauchst du nur aufzurufen:

ausblenden Delphi-Quelltext
1:
if round(anbieterdaten[index].kwhpacket)< ergebnis then preis:=preis-anbieterdaten[index].kwhpacket;					


am besten legst du dir eine separate prozedur an, um die daten des anbieters ordentlich in das info fenster zu schreiben,als parameter gibst du dann am besten nur den index des anbieters und den fertigen preis an.

Zb.text:=inttostr( anbieterdaten[5].kaution)+ ' Monate Vorauskasse' ;

[Editiert]
Danke für den hinweis auf die Konventionen, ist echt leichter zu lesen :shock:


Zuletzt bearbeitet von iterion am Di 05.10.10 06:16, insgesamt 1-mal bearbeitet
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 05.10.10 05:42 
user profile iconiterion hat folgendes geschrieben Zum zitierten Posting springen:
Dann kannst du die daten entweder alle einzeln angeben (Viel arbeit!!!)
Zumindest ist es nicht viel Quelltext, Beispiel:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
const
  Anbieterdaten: array[0..1of TAnbieterDaten = (
    (kaution: 10; vorauskasse: 13; kwhPacket: 0; NeuBonus: 5; MonatePG: 3;
      wtf: 7; PreisKwh: 20.0; Mehrverbrauch: 1.0),
    (kaution: 54; vorauskasse: 13; kwhPacket: 0; NeuBonus: 5; MonatePG: 3;
      wtf: 7; PreisKwh: 10.0; Mehrverbrauch: 1.0)
  );


Nebenbei:
Es entspricht nicht den Konventionen einen Namen eines Typs (hier den Record) mit einem R anfangen zu lassen. Das sollte ein T sein (bei Interfaces I, bei Exceptions E). ;-)

Für diesen Beitrag haben gedankt: iterion
iterion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21
Erhaltene Danke: 2

Win XP ,Suse 11.3
Delphi 7
BeitragVerfasst: Di 05.10.10 06:12 
Zitat:
Es entspricht nicht den Konventionen einen Namen eines Typs (hier den Record) mit einem R anfangen zu lassen. Das sollte ein T sein (bei Interfaces I, bei Exceptions E).


Tut mir leid, bis eben wusste ich noch nichts ueber die konventionen :oops: , das hat man leider davon wenn man alleine lernt, der record mag wohl ein typ sein, aber für war es eben ein Record, so wie ein Schaaf eben ein tier ist, genauer ist es ein Sauegetier :P , egal, konventionen sind auch für besseres vertandnis da, also merke ich mir das mal :lol: .

Hatte hier einen kleinen Hirn-Bug :
ausblenden Delphi-Quelltext
1:
if round(anbieterdaten[index].kwhpacket)< ergebnis then preis:=preis-anbieterdaten[index].kwhpacket;					

Ich glaub so ware es richtig:
ausblenden Delphi-Quelltext
1:
2:
if round(anbieterdaten[index].kwhpacket)< ergebnis then preis:=normalpreis;
if round(anbieterdaten[index].kwhpacket)> ergebnis then preis:=anbieterdaten[index].kwhpacket+(preiskwh*(totalkwh-packetkw));
wayne123 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 52



BeitragVerfasst: Di 05.10.10 16:35 
also ihr bringt mich jetzt immer ehr durcheinander. das einzige, was ich bisher hatte, waren button, edits, bisschen listboxen und checkboxen. hab mir schon einige hilfen durchgelesen, aber irgendwie glaub ich, dass ich das meiste selber herausfinden muss, denn das in den hilfen versteh ich meistens auch nicht.
@iterion
was bringt denn diese zeile aus deinem programm

if round(ergebnis)< round(Billig) then

und wieso ist billig bei dir = 99999 ?
und wieso ist billig = ergebnis, wenn dieses if zutrifft?


edit:
ok, habs verstanden. billig ist am anfang irgendeine ganz große zahl und dann wird das ergebnis der ersten zeile ausgerechnet und für billig eingesetzt. dann wird für jede nächste zeile geguckt, ob das ergebnis kleiner ist, als das bisherige kleinste, billig. wenn es kleiner ist, wird wiederum dieses ergebnis für billig eingesetzt und das so weiter bis zum ende. und anbieter keys(counter) heißt doch einfach, dass der anbieter aus der zeile genommen wird, wo das billigste ergebnis ist, oder?
hab ich das alles richtig verstanden?
iterion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21
Erhaltene Danke: 2

Win XP ,Suse 11.3
Delphi 7
BeitragVerfasst: Di 05.10.10 22:09 
Tut mir leid :\) , hatte es besser erklaren sollen, aber wenn man selber drauf kommt ist es meistens sowieso besser verstanden,
programieren ist macnchmal nicht leich, noch dazu wenn´s darauf ankommt dem computer arbeit zu sparen, damit es schneller geht,
sei froh das Computer nicht denken koennen, sonst haetten wir keine arbeit :P

Aber kopf hoch, irgendwie schaffst du das dann doch, spaeter :lol: man sich einen ab wie leicht das eigentlich war,

MFG
Iterion
wayne123 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 52



BeitragVerfasst: Di 05.10.10 22:32 
ja gut, ich bin dann ja auch nach einiger zeit selber drauf gekommen. aber sind denn die schlüsse, die ich über die procedure gezogen habe, auch richtig?
wenn du das in ein paar min. gemacht hast und ich ca. 10 stunden gebraucht habe um irgendwas viel umständlicheres zu machen, dann kann ich das schon verstehen, dass man später drüber lacht, wie einfach das doch war.