AGB  ·  Datenschutz  ·  Impressum  







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

For Schleife

Ein Thema von Linguini · begonnen am 22. Aug 2009 · letzter Beitrag vom 22. Aug 2009
Antwort Antwort
Seite 1 von 2  1 2      
Linguini

Registriert seit: 19. Mai 2009
95 Beiträge
 
#1

For Schleife

  Alt 22. Aug 2009, 11:32
Hallo,

diese Frage ist mir fast schon peinlich, aber ich steh im Moment wohl komplett aufm Schlauch

Ich hab hier 100x100 "Felder". Also immer 100 Reihen und 100 Zeilen.

Ich brauch jetzt eine Schleife die auf alle 10.000 Felder zugreift. Also immer 1,1 - 1,2 -1,3..2,1-2,2
Eigentlich ja einfach, nur ich bekomm es nicht hin.

Danke.
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: For Schleife

  Alt 22. Aug 2009, 11:34
Delphi-Quellcode:
for i := 1 to 100 do
  for j := 1 to 100 do
    //Feld[i, j] bearbeiten
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Linguini

Registriert seit: 19. Mai 2009
95 Beiträge
 
#3

Re: For Schleife

  Alt 22. Aug 2009, 11:47
Danke^^

Kleine Frage noch.

Die Width und Heightangaben bei einem TImage sind doch gleich mit PixelxPixel oder?
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

Re: For Schleife

  Alt 22. Aug 2009, 11:47
Ja.
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#5

Re: For Schleife

  Alt 22. Aug 2009, 11:52
PS: TImage ... dort wird aber bei 0 beginnend gezählt

Zitat:
Ich brauch jetzt eine Schleife die auf alle 10.000 Felder zugreift.
zur Definition würde auch dieses passen
Zitat:
Delphi-Quellcode:
for i := 0 to 99 do
  for j := 0 to 99 do
    //Feld[i, j] bearbeiten
Delphi-Quellcode:
for i := 0 to 9999 do
    //Feld[i mod 100, i div 100] bearbeiten
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: For Schleife

  Alt 22. Aug 2009, 12:00
Zitat von freak4fun:
Ja.
Falsch! Das sind die Abmaße der Komponente, die Pixelangaben werden in der Picture Property mit den Bildinformationen gehalten in dem jeweiligen TGraphic Nachfolger.
  Mit Zitat antworten Zitat
Linguini

Registriert seit: 19. Mai 2009
95 Beiträge
 
#7

Re: For Schleife

  Alt 22. Aug 2009, 12:06
@Muetze1

Seltsam, mein Code scheint aber zu funktionieren.
Mit:

Delphi-Quellcode:
for B := 1 to 531 do
  for E := H to 312 do
  begin
  if not (Image1.Canvas.Pixels[B,H]=clWhite) then belegt:=belegt+1;

  end;

Damit liefert er mir korrekte Ergebnisse wieviele Pixel nicht Weiß sind.

@Topic

Also mir ist geholfen. Vielen Dank
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: For Schleife

  Alt 22. Aug 2009, 12:10
Wenn du aber die Eigenschaft Stretch des TImages auf True setzt und Bilder (z.B. aus Dateien) hineinlädst, werden die geladenen Bilder entsprechend der Größe des TImages gestreckt oder gestaucht. Dann stimmen die Daten aus dem TImage nicht mehr mit denen des Bildes überein.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#9

Re: For Schleife

  Alt 22. Aug 2009, 12:15
Nicht nur bei Stretch=True ... die Werte Witdh und/oder Height des TImages brauchen sich nur von denen der enthaltenden Grafik zu unterscheiden (ob es dann nur verschoben, gestreckt oder ausschnittsweise ist, ist ja egal)

Aber bei Image1.Canvas greift er ja auf das Canvas des TImages zu ... ich weiß jetzt nicht, in wie weit dieses mit TImage.Graphic.{typ}.Canvas übereinstimmt ... also könnte da durchaus TImage.Width/.Height stimmen.


Und wie schon erwähnt ... die Indizierung beginnt nicht bei 1
(ein Glück, daß .Pixels da keine Exception wirft, sondern "nur" Schwarz liefert)

PS: not = entspricht <>
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Linguini

Registriert seit: 19. Mai 2009
95 Beiträge
 
#10

Re: For Schleife

  Alt 22. Aug 2009, 12:24
Das mit dem Laden eines Bildes ist kein Problem
Das Image ist immer gleich groß, da ich es als kleine Zeichenfläche nutze.

Zitat:
not = entspricht <>
Mir gefällt da "if not" irgendwie mehr.
  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 22:43 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