problem z pixelformat i scanline

0

Witam, co może być nie tak, kiedy wyskakuje mi, że pixelformat i scanline to undeclared identifier. Czy brakuje jakiś bibliotek? Czy może to coś innego?

0

zobacz w helpie to zobaczysz, czego ci brakuje

0

Chciałem tak zrobić, jednak mam windows 7 i nie da się bezpośrednio otworzyć pliku pomocy. Trzeba ściągać jakieś programy, a nie mam zamiaru się bawić w takie rzeczy. Więc jeśli ktoś zna rozwiązanie mojego problemu, to proszę niech napisze.

0

rozumiem ze przerasta Ciebie zainstalowanie dodatku (nie jakies tam programy ale od MS :) )

Program Windows Help (WinHlp32.exe) dla systemu Windows 7

http://www.microsoft.com/downloads/details.aspx?displaylang=pl&FamilyID=258aa5ec-e3d9-4228-8844-008e02b32a2c

BTW jak chcesz poznac odpowiedz to opisz dokladniej problem ...
taki blad moze spowodowac ot chociazby taki kod

var
  B:TObject;
begin
  B.PixelFormat := pf24bit;
end;

i pewnie cos w tym stylu robisz ....

0

W takim razie wrzucam początek kodu i tę procedurę:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtDlgs, StdCtrls, jpeg, ExtCtrls, Spin, Math, Buttons;

type
  TForm1 = class(TForm)
    ScrollBox1: TScrollBox;
    Image1: TImage;
    Button1: TButton;
    OpenPictureDialog1: TOpenPictureDialog;
    SaveDialog1: TSaveDialog;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    SpinEdit1: TSpinEdit;
    BitBtn1: TBitBtn;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  bitmapa : TBitmap;
implementation

{$R *.dfm}

i dalej po kilku procedurach:

procedure TForm1.BitBtn1Click(Sender: TObject);
var
H,V:Integer;
WskByte:^Byte;
begin
Image1.PixelFormat:=pf24bit;
for V:=0 to Image1.Height-1 do
  begin
    WskByte:=Image1.ScanLine[V]; // V jest to pozycja  danej linii bitmapy (od góry )
    for  H:=0 to (Image1.Width *3)-1 do
    begin
      WskByte^:= not WskByte^ ;// (odwracamy wartość na którą pokazuje wskaźnik)
      inc(WskByte);//Przesuwam wskaźnik
    end;
  end;
end;

initialization
  Image1 := TBitmap.Create;

finalization
  Image1.Free;
end.

Proszę o zrozumienie, gdyż dopiero zaczynam swoją pprzygodę z programowaniem.

0

zamien Image1 na bitmapa w kodzie (ale nie w definicji) a potem wstaw bitmapa do image.
Obiekt TImage nie ma tych metod ma je TBitmap i zainstaluj sobie helpa - to podstawa !!

0

Dzięki wielkie za pomoc. Ale o co chodzi z tym wstaw bitmapa do image bo za bardzo nie wiem? I napisałeś jeszcze, żeby zmienić na bitmapa w kodzie, ale nie w deklaracji, a ja nie miałem nigdzie image1 w deklaracji.

0

deklaracja definicja juz mi sie wszystko pokrecilo. teraz to juz kompletnie nie wiem co mam zrobic

0

Deklaracja Definicja i myśleć jeszcze ciut
do tego trzeba. Zobacz na swoją sekcję initialization jakiego typu jest komponent Image1, a dla jakiego Ty
używasz konstruktora? Dalej nie analizowałem kodu, ale to podstawowe błędy, więcej wyjaśni zawsze help.

1 użytkowników online, w tym zalogowanych: 0, gości: 1