Autor Beitrag
hibbert
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: Sa 11.01.03 01:22 
hallo,
eigendlich ist es kein richtiges problem, ich möchte nur wissen, ob ich das auch kürzer fassen kann.
ausblenden Quelltext
1:
2:
3:
if(auto.Left=83) or (auto.Left=84) or(auto.Left=85)then
begin
end;


gibt es da nicht etwas mit
ausblenden Quelltext
1:
2:
3:
if auto.left=83..85 then
begin
end;

:?: :?: :?:
ich hoffe, dass es da soetwas gibt.

mfg hibbert

_________________
I kunnen väl svara endast ja eller nej
Om i viljen eller nej
Brueggendiek
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 304

Win 98, Win98SE, Win XP Home
D5 Std
BeitragVerfasst: Sa 11.01.03 01:34 
Hallo Hibbert!

Im Prinzip geht das - mit SETs.

ausblenden Quelltext
1:
2:
3:
if auto.left in [ 83..85 ] then
begin
end;


Es ist übrigens auch möglich, unzusammenhängende Werte zu schreiben, z.B.:
ausblenden Quelltext
1:
2:
3:
if auto.left in [1, 10..15, 99] then
begin
end;


Die Bedingung ist erfüllt, wenn der Wert 1, 99 oder im Bereich 10 bis 15 ist.

Die Angaben in der eckigen Klammer bilden eine Mengen-Konstante.

Gruß

Dietmar Brüggendiek
hibbert Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: Sa 11.01.03 12:34 
Hey, vielen dank Brueggendiek, damit kann man echt zeit sparen ! :wink:

mfg hibbert

_________________
I kunnen väl svara endast ja eller nej
Om i viljen eller nej
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Sa 11.01.03 14:27 
Hallo,
hibbert hat folgendes geschrieben:
vielen dank Brueggendiek, damit kann man echt zeit sparen ! :wink:

wie man es sieht. Dein Programm ist mit der OR Variante schneller als mit der IN Variante.
Die frage ist, ob dich die paar Taktzyklen bei heutigen Rechnern stören.

Gruß
Klabautermann
hibbert Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: Sa 11.01.03 15:22 
hallo,
Klabautermann, da musst du mich falsch verstanden haben. das mit
Zitat:
vielen dank Brueggendiek, damit kann man echt zeit sparen ! :wink:

war anders gemaint, und zwar beim eintippen.
es ist ja wohl ein unterschied wenn ich eintippe
ausblenden Quelltext
1:
2:
3:
if (auto.left=20)or(auto.left=21)or (auto.left=22)or (auto.left=23)or (auto.left=24)or (auto.left=25)or (auto.left=26)or (auto.left=27)...or (auto.left=50) then
begin
end;

oder wenn ich das eintippe:
ausblenden Quelltext
1:
2:
3:
if auto.left in [20..50] then
begin
end;

da hab ich doch dann zeit gespart oder ? :wink:
mfg hibbert

_________________
I kunnen väl svara endast ja eller nej
Om i viljen eller nej
smiegel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 992
Erhaltene Danke: 1

WIN 7
D7 Prof., C#, RAD XE Prof.
BeitragVerfasst: Sa 11.01.03 16:12 
Hallo,

folgendes geht auch:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
case auto.left of
  20..50:
    begin
      ...
      TuIrgendwas;
      ...
    end;
end; // case

Dieser Code ist, wenn ich mich nicht täusche, performanter als der Mengenvergleich.

_________________
Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Sa 11.01.03 16:30 
Hallo,
hibbert hat folgendes geschrieben:
Klabautermann, da musst du mich falsch verstanden haben. das mit

nein ich habe dich schon richtig verstanden. Ich wollte dich nur auf die negativen Seiten der Mengenoperationen hinweisen. Nur um das klar zu stellen: Ich verwende in solchen Fällen auch Mengenoberationen.

smiegel hat folgendes geschrieben:
Dieser Code ist, wenn ich mich nicht täusche, performanter als der Mengenvergleich.

Ich weiß nicht wie Delphi hier Optimiert, aber für mich ist auch das ein Mengenvergleich.

Gruß
Klabautermann