![]() |
Re: Combobox Problem
was ist ein unsicherer Code?
|
Re: Combobox Problem
Zitat:
|
Re: Combobox Problem
Hm ?
Meinst du vielleicht, dass es bei 1b nicht klappen würde ? Wenn... ...ja: Da darf ich ja mal wieder Pos&Copy erklären :mrgreen: : Mach es so, falls du außer a noch etwas anderes einbauen möchtes (z.B. b):
Delphi-Quellcode:
...nein:
var i : Integer;
s : String; begin s := cb.Items[cb.ItemIndex]; // der ausgwählte Eintrag von der ComboBox (cb) for i := 1 to Length(s) do // Strings beginnen bei 1; hier wird der gesamte String Zeichen für Zeichen durchgegangen und... if not (s[i] in [0..9]) then // ...geschaut, ob außer 0..9 noch etwas anders enthalten ist LabelBla.Caption := Copy(s, 0, i); // Copy kopiert in dem Fall im String s von 0 bis zur Stelle, an der etwas anderes außer 0-9 gefunden wurde Lies dir ja trotzdem durch und probier es einfach nur zur Übung aus und erklär nochmal genau dein Problem. |
Re: Combobox Problem
also
Delphi-Quellcode:
Label57.Caption := 200*2^(Stufe-1);
if ComboBox1.ItemIndex = 0 then
Label57.Caption := 200*2^(Stufe-1); Label58.Caption := 1000*2^(Stufe-1); [Fehler] ogame1.pas(456): E2396 Unsicherer Code ist nur in unsicheren Prozeduren zulässig |
Re: Combobox Problem
Ohje. Also, zuerst einmal versuchst du hier einer Zeichenkette (die Caption) einen Zahlenwert (Das ergebnis der Berechnung) zuzuordnen. Das ganze musst du nich mithilfe von IntToStr, oder bei Kommawerten mit FloatToStr umwandeln. Die Delphihilfe(F1) hilft da. Dann kannst du in Delphi nich "^" als "hoch" verwenden. Das ^ in Delphi hat etwas mit Pointern zu tun. Dazu musst du die Funktion Power benutzen.
Um beispielsweise einem Label das Ergebnis der berechnug 2^5+10 anzeigen zu lassen, müsste das so aussehen: Label1.Caption:=IntToStr(Power(2, 5)+10); Außerdem hast du begin und end vergessen. Eventuell solltest du dir mal die Grundlagetutorials durchlesen ( ![]() |
Re: Combobox Problem
1. begin ...end fehlt
2. .Caption ist ein String 3. Der Code macht was anderes, als du willst. ^ bedeutet nicht hoch sondern ist eine Zeigeroperation (Referenzierung/Dereferenzierung
Delphi-Quellcode:
if ComboBox1.ItemIndex = 0 then
begin Label57.Caption := IntToStr( Power(200*2, Stufe-1)); ... end; |
Re: Combobox Problem
das ist die ganze geschicht
Delphi-Quellcode:
das mit dem power check ich nit
procedure TForm3.Button9Click(Sender: TObject);
var stufe,Fl,Rf,Nf : Integer; begin stufe := StrToInt (Edit31.Text); Rf := StrToInt (Edit32.Text); Nf:= StrToInt (Edit33.Text); Fl := StrToInt (Edit34.Text); if ComboBox1.ItemIndex = 0 then Label57.Caption := 200*2^(Stufe-1); Label58.Caption := 1000*2^(Stufe-1); Label59.caption := 200*2^(Stufe-1); Label64.Caption := ((200+1000)div(1000*(1+FL)))*60; end; wenn ich es einbauen will unterstreicht er es immer rot |
Re: Combobox Problem
Wie bereits erwähnt wurde ist "^" nicht der Potenz-Operator, sondern eine Zeigeroperation.
Die Funktion ![]()
Delphi-Quellcode:
Dann kannst du diese auch nutzen und Delphi kennt sie. Aber wenn du nach
uses Math;
![]() |
Re: Combobox Problem
Btw. Die If-Anweisung wrkst immer noch nur für das erste Label. Die anderen werden immer gesetzt. Umschließe alle Anweisungen mit einem begin..end-Block (siehe #16)
|
Re: Combobox Problem
Delphi-Quellcode:
procedure TForm3.Button9Click(Sender: TObject);
var stufe,Fl,Rf,Nf,Stufe2 : Integer; begin stufe := StrToInt (Edit31.Text); stufe2 := Stufe-1; Rf := StrToInt (Edit32.Text); Nf:= StrToInt (Edit33.Text); Fl := StrToInt (Edit34.Text); if ComboBox1.ItemIndex = 0 then begin Label57.Caption := 200*power(2,Stufe2); Label58.Caption := 1000*power(2,Stufe2); Label59.caption := 200*power(2,Stufe2); Label64.Caption := ((200+1000)div(1000*(1+FL)))*60; end; end; Label57.Caption := 200*power(2,Stufe2); [Fehler] ogame1.pas(458): E2010 Inkompatible Typen: 'string' und 'Double' |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz