AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Verschieden Dimensionale Arrays und Move
Thema durchsuchen
Ansicht
Themen-Optionen

Verschieden Dimensionale Arrays und Move

Ein Thema von Neutral General · begonnen am 31. Jul 2007 · letzter Beitrag vom 31. Jul 2007
Antwort Antwort
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Verschieden Dimensionale Arrays und Move

  Alt 31. Jul 2007, 14:10
Hi,

Ich habe im Moment folgendes:

Delphi-Quellcode:
type
  TDawnColor = packed record
    case Integer of
      0: (Value: Cardinal);
      1: (R, G, B, A: Byte);
  end;
  TDawnPixels = Array of Array of TDawnColor;

var
  Fpixels: TDawnPixels;
  data: Array of Cardinal;

begin
  //
  SetLength(data,FWidth*FHeight);
  Move(FPixels[0],data[0],SizeOf(Cardinal)*FWidth*FHeight);
  //
end;
Jedoch werden die Daten nachweislich nicht richtig übertragen. Wenn ich das ganze male kommt etwas schwares dabei raus mit ein paar bunten pünktchen dazwischen. Es müsste eigentlich eine einfarbige Fläche sein..

FPixels[0,0] oder FPixels statt FPixels[0] hab ich schon getestet, bringt aber nicht wirklich was...

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Hawkeye219

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

Re: Verschieden Dimensionale Arrays und Move

  Alt 31. Jul 2007, 14:20
Hallo Michael,

ein dynamisches zweidimensionales Array belegt keinen zusammenhängenden Bereich im Speicher. Es ist vielmehr eine Liste von Zeigern, die auf Vektoren verweisen.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

Re: Verschieden Dimensionale Arrays und Move

  Alt 31. Jul 2007, 14:36
Mit anderen Worten: Ich kanns mit Move vergessen...(?)
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Verschieden Dimensionale Arrays und Move

  Alt 31. Jul 2007, 15:04
Hallo Michael,

du kannst Move() verwenden, aber für jeden Vektor einzeln. Vektoren sind die arrays auf der untersten Ebene - die keine weiteren subarrays enthalten.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: Verschieden Dimensionale Arrays und Move

  Alt 31. Jul 2007, 15:09
Hi,

Also ich hab das jetzt so verstanden:

Delphi-Quellcode:
Move(FPixels[0],data[0],FWidth*4);
Move(FPixels[0,0],data[FWidth-1],FHeight*4);
Was aber auch nicht 100%ig funktioniert.. zuerst FPixels[0,0] hab ich auch schon probiert. Hab ich da noch einen Denkfehler drin?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Verschieden Dimensionale Arrays und Move

  Alt 31. Jul 2007, 15:22
Ich könnte mir sowas vorstellen:

Delphi-Quellcode:
begin
  SetLength(data, FWidth * FHeight);
  for i := Low(FPixels) to High(FPixels) do
    Move(FPixels[i, 0], data[i * FHeight], SizeOf(Cardinal) * FWidth);
end;
Jenachdem wie du das 2D-Array organisiert hast, musst du eventuell FHeight und FWidth vertauschen.
  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 07:10 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