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?
zobacz w helpie to zobaczysz, czego ci brakuje
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.
rozumiem ze przerasta Ciebie zainstalowanie dodatku (nie jakies tam programy ale od MS :) )
Program Windows Help (WinHlp32.exe) dla systemu Windows 7
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 ....
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.
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 !!
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.
deklaracja definicja juz mi sie wszystko pokrecilo. teraz to juz kompletnie nie wiem co mam zrobic
http://4programmers.net/Delphi/Deklaracja http://4programmers.net/Delphi/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.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.