AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

immer zahlen zwischen 1-5

Ein Thema von mimi · begonnen am 16. Sep 2006 · letzter Beitrag vom 17. Sep 2006
Antwort Antwort
Seite 1 von 2  1 2      
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#1

immer zahlen zwischen 1-5

  Alt 16. Sep 2006, 19:57
Hallo,
ich habe da ein kleines mahte problem:
Der index entält zahlen von 0..13 jetzt möchte ich allerdings das, wenn er bei index 6 ist daraus eine 1 macht und bei index 10 eine 5 und bei index 15 eine 5 und soweiter...
also ich möchte immer zahlen zwischen 0..5 erhalten wobei sich die 5 ändern kann geht sowas überhaupt ?


ich brauche das ganze für eine scrollfunktion ich hatte es mit mod versucht:
index mod 5 allerdings macht er aus 10 leider ein 0 und das ist falsch(bzw. bei der mod funktion richtig aber bei bei meinem ziel falsch)...

ich hoffe ihr habt das problem verstanden.
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#2

Re: immer zahlen zwischen 1-5

  Alt 16. Sep 2006, 19:58
hab zwar nicht verstanden was du willst aber Delphi-Referenz durchsuchenrandomDelphi-Referenz durchsuchenrandomize sollten dir helfen
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Benutzerbild von Daniel B
Daniel B

Registriert seit: 27. Okt 2005
Ort: Dachau
453 Beiträge
 
Delphi 2007 Professional
 
#3

Re: immer zahlen zwischen 1-5

  Alt 16. Sep 2006, 20:00
Dieser "Index", ist das eine LIste?
Servus...
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#4

Re: immer zahlen zwischen 1-5

  Alt 16. Sep 2006, 20:03
index ist der index des objekts und random hilft mir auch nicht weiter hier mal eine beispiel liste:

index 0 = 0
index 1 = 1
index 2 = 2
index 3 = 3
index 4 = 4
index 5 = 5
index 6 = 1
index 7 = 2
index 8 = 3
index 9 = 4
index 10 = 5
index 11 = 1
index 12 = 2
index 13 = 3
index 14 = 4
und soweiter
ich kann das nicht den zufall überlassen leider....

es geht dabei um eine zeichen funktion die den entsprechenden index immmer im selben fenster zeichnen soll:
Delphi-Quellcode:
   if message.Msg = WM_MOUSEMOVE then begin
     mx:=( Message.lParam and $FFFF);
     mY:=((Message.lParam shr 16) and $FFFF);
     isSel:=PtInRect(Rect(fpos.x,fpos.y,fpos.x + fsize.x,fpos.y+fsize.y),Point(mx,my));
     olds:=s;
     if isSel = True then
       s:='*'
     else
       s:=intTostr(random(100));
   end;

   if ((message.msg = WM_PAINT) or (olds <> s)) then begin
     if (tfpos.x = -1) then tfpos:=fpos;
// if isRect(Fenster) = false then begin
// visible:= PtInRect(fenster,fpos);
      displaycount:=(fenster.bottom-fenster.top) div 20;
      if index <= gruppenindex*displaycount then
        visible:=True
      else
        visible:=False;


     if visible = True then begin
// if isLetzer = True then ShowMessage(IntTostr(index));
       tfpos:=fpos;
       sx:=fpos.x;
// sy:=fpos.y-fenster.top;
// if index <= displaycount then
         sy:=((gruppenindex) mod displaycount) * 20 ;
// else
// sy:=fpos.y-(fenster.bottom-fenster.top) ;
       tfpos.y:=sy;
       fcaption:=IntTostr(index)+'\' + IntToStr(random(300));
// fpaint.ClearRect(rect(sx,sy,fsize.x,fsize.y));
       DrawCaption(s,sx,sy,true);
       fpaint.CopyToDisplay(fpos.x,sy,fsize.x,fsize.y);
     end
   end;
ich hoffe der code zeigt das was ich vorhabe !
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#5

Re: immer zahlen zwischen 1-5

  Alt 16. Sep 2006, 20:26
Hallo Michael,

mit dem Operator "mod" bist du auf dem richtigen Weg:

Delphi-Quellcode:
function Translate (aValue: Integer): Integer;
begin
  Result := Succ(Pred(aValue) mod 5);
end;
Gruß Hawkeye
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#6

Re: immer zahlen zwischen 1-5

  Alt 16. Sep 2006, 22:10
leider genau das gleiche ergbnis:
bei 5, 10,15,20 kommt 0 rauß und da muss immer 5 rauß kommen bzw. die 5 ist variabel...

mir ist für das hauptproblem noch eine andere lösung eingefallen.

aber denn noch währe es schön wenn dieses problem noch gelöst werden könnte...

edit: ich sehe gerade es geht doch... ich hatte nur den code schnitt genommen und verändert aber nicht als augelagerte funktion !
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#7

Re: immer zahlen zwischen 1-5

  Alt 16. Sep 2006, 22:31
Das Problem bei deiner Liste ist, dass es eine 0 gibt! Aber eben nur eine ...

Deshalb müsstest du extra für Index = 0 eine Abfrage machen... Ansonsten könntest du es mit Mod lösen:
Delphi-Quellcode:
function Translate(x : Integer) : Byte;
begin
  if x = 0 then
    Result := 0
  else
    Result := x mod 5;
end;
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#8

Re: immer zahlen zwischen 1-5

  Alt 16. Sep 2006, 22:58
nein es gibt mehre 0:
index 0 = 0
index 1 = 1
index 2 = 2
index 3 = 3
index 4 = 4
index 5 = 5
index 6 = 0
index 7 = 1
index 8 = 2
index 9 = 3
index 10 = 4
index 11 = 5
index 12 = 0
index 13 = 1
index 14 = 2

so wollte ich es ursrünglich haben.... es gibt mehre 0 und zwar bei jedem block anfang

und der wert 5 kann sich ändern !!!

wie gesagt ich hatte den Wald voller Bäume nicht gesehn... und dachte dieser weg währe eine lösung für mein HAUPTPROBLEM aber dies habe ich anders gelöst aber das passt hier nicht rein und die beschreibung würde auch zu lang werden glaube ich !
vielen dank für die antworten !

das mit MOD habe ich per zufall herrausgefunden als ich im strg+f7 fenster bichen mit zahlen gespielt hatte: ich wollte letzendlich immer die lezte stelle habe von zaheln z.b.:
11 die 1 von der 12 die 2 von der 10 naja eigentlich die 0 aber das ist ja falsch da wollte ich die 5 raus haben und genau draum hatt das leider nicht funktiniert dieser weg !!!
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: immer zahlen zwischen 1-5

  Alt 16. Sep 2006, 23:09
Hi,
auch wenn du sagst, dass du das Problem anders gelöst hast, möchte ich kurz sagen, wie das dennoch mit mod funktioniert:
einfach mod 6 statt mod 5. Grundsätzlich kannst du also sagen mod (Größte Zahl + 1).

Chris
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: immer zahlen zwischen 1-5

  Alt 16. Sep 2006, 23:19
dass die null auch rauskommen soll, vereinfacht das Problem doch erheblich. Dann musst du nicht mehr mit succ und pred arbeiten. einfach index mod 6
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:47 Uhr.
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