Well i tried that, but it didn't work... Don't have a clue why :?

Here's the entire code (you need DOT for some commands, its avalible at http://www.delphi3d.net/dot)

[pascal]
var
SizeX, SizeY: Integer;
cRGB, cRGBA: Array of array of Cardinal;
F: TextFile;

procedure TForm1.FormCreate(Sender: TObject);
var
I, J: Integer;
begin
Width := 800;
Height := 600;

Context.InitGL;
glViewport(0, 0, 800, 600);

AssignFile(F, 'untitled.pci');
Reset(F);

Readln(F, SizeX);
Readln(F, SizeY);

SetLength(cRGB, SizeX, SizeY);
SetLength(cRGBA, SizeX, SizeY);

for I := 0 to SizeX-1 do
for J := 0 to SizeY-1 do
begin
Readln(F, cRGB(.I,J.));

if cRGB(.I,J.) = 0 then
cRGBA(.I,J.) := $FF000000 else
cRGBA(.I,J.) := cRGB(.I,J.);
end;

Closefile(F);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
glClear(GL_COLOR_BUFFER_BIT);

glBegin(GL_QUADS);
glColor3f(0, 0.5, 0);
glVertex2f(-1, +1);
glVertex2f(+1, +1);
glVertex2f(+1, -1);
glVertex2f(-1, -1);
glEnd();

glEnable(GL_ALPHA_TEST);

glAlphaFunc(GL_Less, 1);
glRasterPos2d(0,0);
glDrawPixels(SizeX, SizeY, GL_RGBA, GL_UNSIGNED_BYTE, @cRGBa(.0,0.));

Context.PageFlip;

glDisable(GL_ALPHA_TEST);
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_ESCAPE then Application.terminate;
end;

end.
[/pascal]

And here is what it draws, and what its supposed to: