Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Editproblem !! (https://www.delphipraxis.net/47995-editproblem.html)

Vader 19. Jun 2005 09:15


Editproblem !!
 
hallo,

will, wenn in einen edit eine bestimmte zahl steht die farbe der form wechseln

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if edit1.Text:=85 then form1.Color:=clblack;
end;

Delphi-Quellcode:
[Fehler] Unit1.pas(29): Inkompatible Typen: 'String' und 'Integer'
[Fataler Fehler] Project2.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden

mfg vader

jfheins 19. Jun 2005 09:18

Re: Editproblem !!
 
Delphi-Referenz durchsuchenStrtoInt ;)

malo 19. Jun 2005 09:42

Re: Editproblem !!
 
Zitat:

Zitat von jfheins

Hä?

Folgendes:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if edit1.Text = '85' then form1.Color:=clblack;
end;
:= ist der Zuweisungsoperator, = der Vergleichsoperator in Delphi. Und Strings müssen mit ' ' gekennzeichnet werden ;)

Khabarakh 19. Jun 2005 09:50

Re: Editproblem !!
 
Lasst doch die globale Form-Variable weg, das kann nachher nur noch zu Problemen führen, Vorteile gibt es keine. Ganz zu schweigen von OOP :wink: .

fkerber 19. Jun 2005 09:53

Re: Editproblem !!
 
Hi!

Zitat:

Zitat von malo
Zitat:

Zitat von jfheins

Hä?

Folgendes:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if edit1.Text = '85' then form1.Color:=clblack;
end;
:= ist der Zuweisungsoperator, = der Vergleichsoperator in Delphi. Und Strings müssen mit ' ' gekennzeichnet werden ;)


Ich glaube, für Vergleich von Zahlen, sollte man aber besser zahlen vergleichen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if strtoint(edit1.Text) = 85 then form1.Color:=clblack;
end;
Das andere geht zwar, aber dieser Weg ist IMHO schöner.

Ciao Frederic

100nF 19. Jun 2005 10:02

Re: Editproblem !!
 
hi,

Zitat:

procedure TForm1.Button1Click(Sender: TObject);
begin
if strtoint(edit1.Text) = 85 then form1.Color:=clblack;
end;
das würde ich nicht so machen. was, wenn keine zahl im edit steht?
ich würde es so machen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if edit1.Text = '85' then form1.Color:=clblack;
end;
oder so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if edit1.Text = inttostr(85) then form1.Color:=clblack;
end;

Vader 19. Jun 2005 10:23

Re: Editproblem !!
 
herzlichen dank an alle !

mfg vader

malo 19. Jun 2005 10:24

Re: Editproblem !!
 
Zitat:

Zitat von fkerber
Ich glaube, für Vergleich von Zahlen, sollte man aber besser zahlen vergleichen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if strtoint(edit1.Text) = 85 then form1.Color:=clblack;
end;
Das andere geht zwar, aber dieser Weg ist IMHO schöner.

Wie kann eine zustäzliche, unnötige Typumformung schöner sein? Man kann doch direkt zwei Strings vergleichen, statt irgendwas umwandeln zu müssen ;)

fkerber 19. Jun 2005 10:25

Re: Editproblem !!
 
Hi!

Zitat:

Zitat von malo
Zitat:

Zitat von fkerber
Ich glaube, für Vergleich von Zahlen, sollte man aber besser zahlen vergleichen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if strtoint(edit1.Text) = 85 then form1.Color:=clblack;
end;
Das andere geht zwar, aber dieser Weg ist IMHO schöner.

Wie kann eine zustäzliche, unnötige Typumformung schöner sein? Man kann doch direkt zwei Strings vergleichen, statt irgendwas umwandeln zu müssen ;)

Wie gesagt, es ist nur meine persönliche Meinung gewesen.
Es erhöht in meinen Augen die "Lesbarkeit". Es soll nunmal ein Zahlenvergleich stattfinden.

Ciao Frederic

hanselmansel 19. Jun 2005 10:39

Re: Editproblem !!
 
Die Lösung
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if edit1.Text = inttostr(85) then form1.Color:=clblack;
end;
dürfte wohl die umfassendste sein, da man dadurch die Zahl auch durch Variablen ersetzen kann, was - je nach Sinn - mehr Dynamik bringt...

MfG, hanselmansel

SirThornberry 19. Jun 2005 10:45

Re: Editproblem !!
 
Zitat:

Zitat von hanselmansel
Die Lösung
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if edit1.Text = inttostr(85) then form1.Color:=clblack;
end;
dürfte wohl die umfassendste sein, da man dadurch die Zahl auch durch Variablen ersetzen kann, was - je nach Sinn - mehr Dynamik bringt...

MfG, hanselmansel

komiches Argmument, schließlich kann man auch den String durch eine Variable ersetzen. Und wie schon erwähnt macht es keinen Sinn erst die Zahl in einen String zu wandeln außer man steht auf Performanceverlust.
Wenn ich Apfel und Birne vergleiche mach ich daraus doch auch nicht vorher saft nur weil dann beide die gleiche Form haben.

hanselmansel 19. Jun 2005 10:52

Re: Editproblem !!
 
Hatte auch das Problem einen Wert des Editfeldes mit etwas vergleichen zu müssen. Nur handelte es sich bei mir um das Modulo zweier Zahlen, und ich habe nicht mit Farben gearbeitet, weshalb sich oben genannte Lösung anbat.
Da der Wert nur ein, zweimal während der gesamten Benutzung des Programms benutzt wurde, habe ich mir auch keine großen Sorgen um Performance gemacht. Auf jeden Fall hast du aber Recht, dass es im Fall von Vader auf deine Art und Weise einfach besser programmiert ist.

Aber das wird hier so langsam aber sicher OOT...


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 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