Color Palettes...

Myy question is probably similar to many asked before on this subject,
but the damn thing never seems to work. I am making a program which will
require the use of multiple images on the one file with a few other data
pieces to be associated to each image and as a result I have to use my
own image data type. That's not a problem but I can never seem to get the
palettes to work. I create the palette, (with windows handler) select it
for a TImage, realize the palette, copy the image (from the file) on to
TImage and then nothing the image remains mapped in system colors. I
don't know how many times I've tried this nor how many different ways
only to get the same result. I am for certian that the data saved to file
is correct (checked bit by bit) and so to after the data is loaded.

In an effort to solve my insanity I created a little test program which
has nothing to do with my actual program, but if I can get it to work
then that method can be applied to my own. Please...Please someone help !

Form : Two buttons, two TImages, OpenfileDialog, Bitmap1, Bitmap2.
When Button1 is pressed a bitmap is load(specified by OpenFileDialog)
directly to Image1.
When Button1 is pressed a bitmap is load(specified by OpenFileDialog) in
to Bitmap1. Bitmap2 recieves Bitmap1's palette, then pixel by pixel
Bitmap2 is copied to Bitmap1. Bitmap1 is then assigned to Image2.

Var
  Bitmap1, Bitmap2 : TBitmap;

Procedure Button1Press;
  Begin
    If OpenDialog.Execute
      then Form1.Image1.LoadFromFile(OpenDialog.FileName);
  End;

Procedure Button2Press;
  Var
    XStupid, YStupid : Word;
  Begin
    Bitmap1 := TBitmap.Create;
    Bitmap2 := TBitmap.Create;
    Bitmap1.LoadFromFile(OpenDialog.FileName);
    SelectPalette(Bitmap1.Canvas.Handle, Bitmap2.Palette);
    RealizePalette(Bitmap1.Canvas.Handle);
    For YStupid := 0 to Bitmap1.Height-1
      For XStupid := 0 to Bitmap1.Width-1
        Bitmap2.Canvas.Pixels[XStupid,YStupid] :=
          Bitmap1.Canvas.Pixels[XStupid, YStupid];
  End;

I know that bitmaps could be assigned to each other but thats not the
point...all other methods of copying bitmaps update colors but this is
just a test as I wont be using bitmaps - it will by my own image types.

Conditions :
  Win95, 8bit vid mode.
  bitmap is 8bit and button1 is always pressed first.

Could someone please help me, there could be a reward in it...respect
anyone ?