AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi zu Laufzeit erstellter 2D Array mach Unsinn...
Thema durchsuchen
Ansicht
Themen-Optionen

zu Laufzeit erstellter 2D Array mach Unsinn...

Ein Thema von Spiderpig_GER_15 · begonnen am 2. Jul 2009 · letzter Beitrag vom 2. Jul 2009
Antwort Antwort
Benutzerbild von Spiderpig_GER_15
Spiderpig_GER_15

Registriert seit: 17. Mär 2008
298 Beiträge
 
Delphi 7 Personal
 
#1

zu Laufzeit erstellter 2D Array mach Unsinn...

  Alt 2. Jul 2009, 19:13
Hi Delphiler,

Mein zur Laufzeit mit lenght() bestimmter 2D Array:
  AssortmentAlphaMap: array of array of boolean; macht nicht nachvollziehbaren Murks:
mit folgender Routine möchte ich bei dem Array, der die gleichen Maße hat wie das Bild, überall dort, wo ein blaues Pixel ist den Wert auf "true" setzten.
Das funktioniert wunderbar:
Delphi-Quellcode:
  for I := low(AssortmentAlphaMap) to high(AssortmentAlphaMap) do
  begin
    for u := low(AssortmentAlphaMap) to high(AssortmentAlphaMap) do
    begin
      if bmp.Canvas.Pixels[u,i] = clblue then
        AssortmentAlphaMap[u,i]:= true;
    end;
  end;
jetzt will ich jedoch auf Nummer sichergehen und alle die nicht blau sind auf "false" setzten:
Delphi-Quellcode:
  for I := low(AssortmentAlphaMap) to high(AssortmentAlphaMap) do
  begin
    for u := low(AssortmentAlphaMap) to high(AssortmentAlphaMap) do
    begin
      if bmp.Canvas.Pixels[u,i] = clblue then
        AssortmentAlphaMap[u,i]:= true;
      If bmp.Canvas.Pixels[u,i] <> clblue then
        AssortmentAlphaMap[u,i]:= false;
    end;
  end;
bzw:
Delphi-Quellcode:
  for I := low(AssortmentAlphaMap) to high(AssortmentAlphaMap) do
  begin
    for u := low(AssortmentAlphaMap) to high(AssortmentAlphaMap) do
    begin
      if bmp.Canvas.Pixels[u,i] = clblue then
        AssortmentAlphaMap[u,i]:= true
      else
        AssortmentAlphaMap[u,i]:= false;
    end;
  end;
jetzt stürzt aber das Programm ab (AccesViolation) Hallo???

Kann mir jemand erklären warum das so ist?

Wäre seeehr dankbar,

MfG Spiderpig
---Zufall ist das Inkognito Gottes---
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#2

Re: zu Laufzeit erstellter 2D Array mach Unsinn...

  Alt 2. Jul 2009, 19:30
Du hast die 2. Dimension vergessen. Versuch es mal so:
Delphi-Quellcode:
for I := low(AssortmentAlphaMap) to high(AssortmentAlphaMap) do
  for u := low(AssortmentAlphaMap[i]) to high(AssortmentAlphaMap[i]) do
    AssortmentAlphaMap[u,i]:= bmp.Canvas.Pixels[u,i] = clblue;
Evtl. musst Du u und i umdrehen, aber das hängt davon ab, wie Du die Länge festgelegt hast.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:28 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