Конференция "KOL" » проблема с Bitmap.LoadFromFile [WinCE, Lazarus]
 
  • Дмитрий Пырин (22.10.07 10:20) [0]
    проблема при компиляции под WinCE под win32 работает нормально.
    вот такой кусок кода:


    Procedure OpenPic ;
    begin
    if PB = nil then
     begin
      PB := NewPaintBox(SBox);
      PB.OnPaint := TOnPaint( MakeMethod( nil, @DrawPaint ) );
     end;
      if BMP = nil then
       begin
        Bmp := NewBitmap( 0, 0 );
        Bmp.LoadFromFile('pic1.bmp');
        PB.Width := Bmp.Width ;
        PB.Height:= Bmp.Height;
       end;
    end;



    использую
    kolce_rev205
  • Дмитрий Пырин (22.10.07 10:38) [1]
    сама программа нормально компилируется, и запускается, но  отображение битмапа не работает.
    хотя при перекомпиляции под win32 всё работает отлично :(
  • Дмитрий Пырин (22.10.07 10:41) [2]
    вот весь код полностью (это слегка подчищеный пример из уроков по KOL)


    program BMP_test;

    uses
     windows,
     messages,
     kol;
    var
    Form,
    pTop,
    PB,
    buOpen,
    SBox:pControl;
    bmp: pBitmap;

    procedure DrawPaint( Dummy: Pointer; Sender: PControl; DC: HDC );
    begin
     Bmp.Draw(PB.Canvas.Handle,0,0);
    end;

    ///////////////////////////////////////////////////////////
    Procedure OpenPic ;//( Dummy : Pointer; Sender : PControl );
    begin
    if PB = nil then
     begin
      PB := NewPaintBox(SBox);
      PB.OnPaint := TOnPaint( MakeMethod( nil, @DrawPaint ) );
     end;
      if BMP = nil then
       begin
        Bmp := NewBitmap( 0, 0 );
        Bmp.LoadFromFile('pic1.bmp');
        PB.Width := Bmp.Width ;
        PB.Height:= Bmp.Height;
       end;
    end;
    //////////////////////////////////////////////////////////

    begin
    Applet := NewApplet('BMP test');
    Form := NewForm(Applet,'BMP test');

    // -------- -----------------------------
    pTop := NewPanel(Form,esRaised). SetAlign(caTop);
    pTop.Height := 35;

    buOpen := NewButton(pTop,'show').SetAlign(caLeft);
    buOpen.OnClick := TOnEvent( MakeMethod( nil, @OpenPic ) );
    SBox := NewScrollBoxEx(Form,esLowered).SetAlign(caClient);
    // -------------------------------------------------------
    run(Applet);
    end.        

  • Vladimir Kladov © (22.10.07 17:38) [3]
    Не слишком сложно (и скролбокс здесь, и выравнивание). Проверить только загрузку битмапа - сразу после загрузки сделать SaveToFile.
  • Yury Sidorov (23.10.07 15:23) [4]
    Добавь
    PB.Show;

    после создания паинтбокса.
    То, что без PB.Show оно работает под win32 это чистая случайность.
    Для всех контролов, которые создаются если родитель виден нужно вызывать
    Show;

    , иначе они не будут видны.
  • Дмитрий Пырин (27.10.07 21:35) [5]
    не помогло :(
  • Vladimir Kladov © (27.10.07 22:04) [6]
    так все-таки проведите тест именно для битмапа. У вас слишком много неизвестных в уравнении.
 
Конференция "KOL" » проблема с Bitmap.LoadFromFile [WinCE, Lazarus]
Есть новые Нет новых   [134431   +10][b:0][p:0.002]