Delphi-PRAXiS
Seite 2 von 5     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Combobox Problem (https://www.delphipraxis.net/95766-combobox-problem.html)

Darksniper 12. Jul 2007 21:30

Re: Combobox Problem
 
was ist ein unsicherer Code?

mkinzler 12. Jul 2007 21:35

Re: Combobox Problem
 
Zitat:

Zitat von Darksniper
was ist ein unsicherer Code?

Wie meinst du das?

Nils_13 12. Jul 2007 21:41

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:
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
...nein:
Lies dir ja trotzdem durch und probier es einfach nur zur Übung aus und erklär nochmal genau dein Problem.

Darksniper 12. Jul 2007 21:50

Re: Combobox Problem
 
also

Delphi-Quellcode:
if ComboBox1.ItemIndex = 0 then
  Label57.Caption := 200*2^(Stufe-1);
  Label58.Caption := 1000*2^(Stufe-1);
Label57.Caption := 200*2^(Stufe-1);

[Fehler] ogame1.pas(456): E2396 Unsicherer Code ist nur in unsicheren Prozeduren zulässig

inherited 12. Jul 2007 21:58

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 (www.dsdt.info), die helfen bei sowas wirklich!

mkinzler 12. Jul 2007 21:58

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;

Darksniper 12. Jul 2007 22:20

Re: Combobox Problem
 
das ist die ganze geschicht

Delphi-Quellcode:
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;
das mit dem power check ich nit

wenn ich es einbauen will unterstreicht er es immer rot

Matze 13. Jul 2007 06:30

Re: Combobox Problem
 
Wie bereits erwähnt wurde ist "^" nicht der Potenz-Operator, sondern eine Zeigeroperation.

Die Funktion Delphi-Referenz durchsuchenPower befindet sich in der Unit Math, die du daher in die uses-Klausel mit aufnehmen musst:

Delphi-Quellcode:
uses Math;
Dann kannst du diese auch nutzen und Delphi kennt sie. Aber wenn du nach Hier im Forum suchenPower gesucht oder in der Delphi-Hilfe nachgeschaut hättest, wäre dir das auch selbst aufgefallen. :?

mkinzler 13. Jul 2007 06:34

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)

Darksniper 13. Jul 2007 09:52

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 21:39 Uhr.
Seite 2 von 5     12 34     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz