Anfängerfrage- Werte von Array zu Array übergeben
hallo zusammen!
versuche schon seit stunden werte von einem array in ein anderes (beides globale variablen unterschiedlicher typen) zu übergeben. das ist mir dann auch irgendwann gelungen aber nicht so wie ichs gerne hätte...so siehts jetzt aus:
Code:
es sollen also werte von "pixels" an "points" übergeben werden, aber in der procedure pixelstopoints und nicht wie ich das jetzt gelöst habe in dem click-ereignis.type tvoxel = record nr : longint; x, y, z : integer; end; var Form1: TForm1; implementation var pixels : array of integer; points : array of tvoxel; no : integer=1; xmax, ymax : integer; {$R *.dfm} procedure getpixelsleft(bitmap:tBitmap); var i,j : integer; row : ^tRGBTriple; begin setlength(pixels,bitmap.Height); for j := 0 to bitmap.Height - 1 do begin row := bitmap.ScanLine[j]; for i := 10 to bitmap.Width - 10 do begin if (row^.rgbtRed=0) then begin pixels[j]:=i; end; inc(row) end; end; bitmap.Assign(bitmap); end; procedure getpixelsright(bitmap:tBitmap); var i,j : integer; row : ^tRGBTriple; begin setlength(pixels,bitmap.Height); for j := bitmap.Height - 2 downto 2 do begin row := bitmap.ScanLine[j]; for i := bitmap.Width downto 0 do begin if (row^.rgbtRed=0) then begin pixels[j]:=i; end; inc(row) end; end; bitmap.Assign(bitmap); end; procedure pixelstopoints; var j : integer; begin { setlength(points, 1000); for j := 0 to ymax-1 do begin points[j].x:=pixels[j]; points[j].y:=j; points[j].z:=pixels[j]; end; } end; procedure TForm1.Button1Click(Sender: TObject); begin image1.Picture.LoadFromFile('c:\z\3.bmp'); getpixelsleft(image1.Picture.Bitmap); pixelstopoints; // getpixelsright(image1.Picture.Bitmap); end; procedure TForm1.Button2Click(Sender: TObject); var n: integer; begin setlength(points, 1000); ListBox1.Items.Clear; for n := 1 to (image1.Picture.Bitmap.height) do begin points[n].x:=pixels[n]; points[n].y:=n; points[n].z:=pixels[n]; Listbox1.Items.Add(InttoStr(n)+' : '+Inttostr(points[n].x)); end; end; wie ich's eigentlich gerne hätte steht jetzt wie ihr seht in {}. was hab ich falsch gemacht? thx @all, toby |
Re: Anfängerfrage- Werte von Array zu Array übergeben
...servus...
gib doch mal deiner Laufvariablen ymax einen konkreten wert! |
Re: Anfängerfrage- Werte von Array zu Array übergeben
hey,
danke für die schnelle antwort, xmax und ymax bekommen bei .FormCreate je den image1.picture.height bzw width zugewiesen, den teil hab ich abgeschnitten... das problem ist, es läuft ja, nur wenn ich die werte in pixelstopoints übergebe klappts nicht, das array bleibt leer... greets, toby |
Re: Anfängerfrage- Werte von Array zu Array übergeben
wenn du bei Form.Create deinen variablen xmax und ymax die größe des bitmaps übergibst, welches du aber erst später lädst, dann werden die Werte xmax und ymax auf Null gesetzt!!
also erst das bitmap laden, dann die werte xmax und ymax setzen! mfg |
Re: Anfängerfrage- Werte von Array zu Array übergeben
tatsächlich! es funktioniert!....geil...
DANKE! schönen abend noch |
Re: Anfängerfrage- Werte von Array zu Array übergeben
Delphi-Quellcode:
var Array_01, Array_02: array of EinTyp;
LLength: integer; begin ... ... //ich geh davon aus, daß Array_01 mit Werten gefüllt ist SetLength(Array_02, Length(Array_01)); ... move(Array_01[0], Array_02[0], Length(Array_01)) ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23: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