Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 180
  • Last Modified:

Pointers, what do I do wrong here?

var LPRGBTripleArray : ^TRGBTripleArray;
    LBitmapScanned : array[0..125] of ^TRGBTripleArray;
   
    i : Integer;
begin
  for i := 0 to 125 do
  begin
    LBitmapScanned[i] := MyBitmap.ScanLine[i];    
 
  end;
 
  LPRGBTripleArray := LBitmapScanned[0]; //compiler says that the type is different here, but it is ^TRGBTripleArray in both cases...
 
end;  

Thank you

panJames
 
0
panJames
Asked:
panJames
  • 2
1 Solution
 
ChristianWimmerCommented:
Define a new type called PRGBTripleArray and use it instead.
type
  PRGBTripleArray = ^TRGBTripleArray;
 
var LPRGBTripleArray : PRGBTripleArray;
    LBitmapScanned : array[0..125] of PRGBTripleArray;

Open in new window

0
 
panJamesAuthor Commented:
It compiles fine now, thank you.

But what was wrong with my approach?

panJames
0
 
ChristianWimmerCommented:
You define an anonymous type (^TRGBTripleArray) for every variable declaration. Although the data structure is the same, Delphi does not consider them to be the same. They are declared twice and thus are different types. If you create a new type and let the variables use them instead, the assignment is no more a problem.
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now