ďťż

Ładny brzuch

Gdzie tu jest błąd??
// wczytanie obrazu pulpitu do obiektu "bmp" (TBitmap)
procedure LoadBmp;
var DC: Integer;
begin
bmp.Width:= Screen.Width;
bmp.Height:= Screen.Height;
DC:= GetDC(0);
try
BitBlt(bmp.Canvas.Handle,0,0,bmp.Width,bmp.Height, DC,0,0, SRCCOPY);
finally
ReleaseDC(0, DC);
end;
bmp.PixelFormat:= pf8bit;
end;

// kompresja obrazka do strumienia "mem" (TMemoryStream)
procedure CompressBmpToMem;
var zip : TCompressionStream;
begin
zip:= TCompressionStream.Create(clFastest, mem);
try bmp.SaveToStream(zip);
finally zip.Free;
end;
end;



a może napisałbyś jaki błąd wywala ??

//----------------------
gg :3183960
SZUKAM BETATESTERÓW - chętnych prosze o kontakt mail/gg

Chyba żadnego błedu nie ma żeby wywaliło to tylko pewnie program sie kompiluje i nie działa tak jak trzeba ;).

---------------------------------
..::NeVeS::..
NeVeS powrócił :]
---------------------------------
"DOCERE, MOVERE, DELECTARE"

Masz rację. Może ktoś wie co jest nie tak z tym kodem.cytat:NeVeS napisał:

Chyba żadnego błedu nie ma żeby wywaliło to tylko pewnie program sie kompiluje i nie działa tak jak trzeba ;).

---------------------------------
..::NeVeS::..
NeVeS powrócił :]
---------------------------------
"DOCERE, MOVERE, DELECTARE"



Dobra spróbuje inaczej co ten kod ma robić

//----------------------
gg :3183960
SZUKAM BETATESTERÓW - chętnych prosze o kontakt mail/gg

Program wyglada na taki który ma zrobić screnashota ekranu i zapisać do strumienia, bynajmniej jakoś dziwnie jest to zrobione a wogóle wygląda mi to na trojana :)

---------------------------------
..::NeVeS::..
NeVeS powrócił :]
---------------------------------
"DOCERE, MOVERE, DELECTARE"

To nie zaden trojan a kod mam z Grupy dyskusyjnej: http://groups.google...N.Yankee&rnum=1

Wiecie moze co tu poprawić żeby działało??

cytat:strefacst napisał:

To nie zaden trojan a kod mam z Grupy dyskusyjnej: http://groups.google...N.Yankee&rnum=1

Wiecie moze co tu poprawić żeby działało??

A z ciekawości spytam - podłączyłeś ten kod odpowiednio do swojego programu ?
Bez obrazy - ale czasem zdaża się, że ktoś początkujący wklei jakąś procedurę nie podpinając ją pod żadne zdażenie itp - a potem dziwi się czemu nie działa.
Jeśli zrobiłeś to co trzeba to sorry za takie podejrzenia ;)
Tylko trochę dziwne, bo Yankee zna się na rzeczy i jeśli jemu działało to kod powinien być ok...

PS.
Próbowałeś wyśledzić w którym momencie kod źle działa ?

ICQ : 245-363-570

Podpiołem pod zdażenie a błąd jest w tej linice
bmp.Width:= Screen.Width; // tu jest napewno błąd
i pewnie jeszcze tej:
bmp.Height:= Screen.Height; // tu raczej tez

cytat:strefacst napisał:

Podpiołem pod zdażenie a błąd jest w tej linice
bmp.Width:= Screen.Width; // tu jest napewno błąd
i pewnie jeszcze tej:
bmp.Height:= Screen.Height; // tu raczej tez

No w to akurat wątpie - bo to powinno działać bez problemu (zresztą cała procedura LoadBmp wygląda OK).

Dlaczego uważasz, że ten fragment nie działa ?
Jeśli jeszcze tego nie zrobiłeś to sprawdź sobie czy odczytuje Ci prawidłowe wartości.

ICQ : 245-363-570

Uwazam tak poniewaz przy kazdej linice pisałem showmessage('numerlini'); i staneło przytym

cytat:strefacst napisał:

Uwazam tak poniewaz przy kazdej linice pisałem showmessage('numerlini'); i staneło przytym

Jak to stanęło ?
Program się zawiesił ?

Wcześniej pisałeś, że nie wyskakuje żaden błąd tylko, że kod nie robi tego co powinien.

Tak dla pewności spytam jeszcze czy utworzyłeś zmienną bmp - bo jeśli tego nie zrobiłeś to program jak najbardziej ma prawo się wykrzaczyć...

ICQ : 245-363-570

wrzuciłem to do kompilatora, ale sypie mi się przy TCompressionStream jakiś dodatkowy modół do tego jest potrzebny ??

//----------------------
gg :3183960
SZUKAM BETATESTERÓW - chętnych prosze o kontakt mail/gg

cytat:Bełdzio napisał:

wrzuciłem to do kompilatora, ale sypie mi się przy TCompressionStream jakiś dodatkowy modół do tego jest potrzebny ??

Tak - modół ZLib

ICQ : 245-363-570

OKi tu jest cły kod jak to zrobiłem no i sie ładnie kompiluje klikam na button a ty baaa... błąd.

unit Unit1;

interface

uses
Windows, Messages, ZLib, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
bmp: TBitmap;
mem: TMemoryStream;
implementation

// wczytanie obrazu pulpitu do obiektu "bmp" (TBitmap)
procedure LoadBmp;
var DC: Integer;
begin
bmp.Width:= Screen.Width;
bmp.Height:= Screen.Height;
DC:= GetDC(0);
try
BitBlt(bmp.Canvas.Handle,0,0,bmp.Width,bmp.Height, DC,0,0, SRCCOPY);
finally
ReleaseDC(0, DC);
end;
bmp.PixelFormat:= pf8bit;
end;

// kompresja obrazka do strumienia "mem" (TMemoryStream)
procedure CompressBmpToMem;
var zip : TCompressionStream;
begin
zip:= TCompressionStream.Create(clFastest, mem);
try bmp.SaveToStream(zip);
finally zip.Free;
end;
end;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
LoadBmp;
CompressBmpToMem;
end;

end.

cytat:strefacst napisał:

OKi tu jest cły kod jak to zrobiłem no i sie ładnie kompiluje klikam na button a ty baaa... błąd.

{...}

No i właśnie...
Program wysypuje Ci się bo próbujesz używać zmiennej bmp, która nie została jeszcze utworzona. Musisz to zrobić wcześniej - bmp := TBitmap.Create a jak już nie będziesz jej potrzebował to zlikwidować przez bmp.Free.

Poczytaj sobie trochę o obiektach...

PS.
To samo dotyczy zmiennej mem - musisz ją wcześniej utworzyć.

ICQ : 245-363-570

Teraz wszystko działa :)

unit Unit1;

interface

uses
Windows, Messages, ZLib, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
bmp: TBitmap;
mem: TMemoryStream;
implementation

// wczytanie obrazu pulpitu do obiektu "bmp" (TBitmap)
procedure LoadBmp;
var DC: Integer;
begin
bmp:=TBitmap.Create;
bmp.Width:= Screen.Width;
bmp.Height:= Screen.Height;
DC:= GetDC(0);
try
BitBlt(bmp.Canvas.Handle,0,0,bmp.Width,bmp.Height, DC,0,0, SRCCOPY);
finally
ReleaseDC(0, DC);
end;
bmp.PixelFormat:= pf8bit;
end;

// kompresja obrazka do strumienia "mem" (TMemoryStream)
procedure CompressBmpToMem;
var zip : TCompressionStream;
begin
mem:=TMemoryStream.Create;
zip:= TCompressionStream.Create(clFastest, mem);
try bmp.SaveToStream(zip);
finally zip.Free; bmp.Free;
end;
end;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
LoadBmp;
CompressBmpToMem;

end;

end.

---------------------------------
..::NeVeS::..
NeVeS powrócił :]
---------------------------------
"DOCERE, MOVERE, DELECTARE"

OKi dzięki działa :D:cheesy:

cytat:strefacst napisał:

OKi dzięki działa :D:cheesy:

Strefacst - na przyszłość staraj się od razu dokładnie opisać problem - bo w tym przypadku gdybyś to zrobił od razu to zamiast 17 postów wystarczyłyby 2 i problem byłby rozwiązany :)

ICQ : 245-363-570

Mam jeszcze jedno pytanko jak zmienić rozmiar tego screena przed jego zapisaniem??

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •