[Delphi] Moduł Graphic

0

Komponent SynEdit a konkretnie SynEditPrint wykorzystuje moduł Graphic. Myślałem ,że jest to moduł standartowy Delphi ,ale u mnie (Delphi5 Standard) go nie ma. Gdzie mogę go znaleźć?--Pzdr.
W.

0

Graphic nie ma - Graphics jest i to standardowo.--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

0

Chodzi oczywiście o Graphics . Mam taki problem . Po skompilowaniu edytorka z opcją drukowania przy pomocy SynEditPrint w dialogu drukowania nie są podawane strony dokumentu. Uruchamiając debuger znalazłem chyba miejsce odpowiedzialne za błąd. Mianowicie w SynEditPrint jest funkcja odczytu właściwości PageCount nazwana GetPageCaunt:

function TSynEditPrint.GetPageCount: Integer;
{Returns total page count. If pages hasn't been counted before,
then a UpdatePages is called with a temporary canvas}
var
TmpCanvas: TCanvas;
DC: HDC;
begin
Result := 0;
if FPagesCounted then
Result := FPageCount
else begin
TmpCanvas := TCanvas.Create;
try
{************}
{$IFNDEF LINUX}
DC := GetDC(0);
try
if DC &lt&gt 0 then begin
TmpCanvas.Handle := DC;
UpdatePages(TmpCanvas);
TmpCanvas.Handle := 0;
Result := FPageCount;
FPagesCounted := True;
end;
finally
ReleaseDC(0, DC);
end;
{$ENDIF}
finally
TmpCanvas.Free;
end;
end;
end;

Błąd zczyna się w linii:

TmpCanvas := TCanvas.Create

Przy sprawdzaniu debugerem uzyskuję informację T.Canvas.Create not accesible.

Stąd mój naiwny pewnie wniosek o braku TCanvas i w związku z tym braku modułu Graphics.

Będę wdzięczny za podpowiedź.--Pzdr.
W.

0

gavi napisał:
{$IFNDEF LINUX}
DC := GetDC(0);
try
if DC &lt&gt 0 then begin
TmpCanvas.Handle := DC;
UpdatePages(TmpCanvas);
TmpCanvas.Handle := 0;
Result := FPageCount;
FPagesCounted := True;
end;
finally
ReleaseDC(0, DC);
end;
{$ENDIF}
finally
TmpCanvas.Free;
end;
end;
end;

TmpCanvas := TCanvas.Create

Przy sprawdzaniu debugerem uzyskuję informację T.Canvas.Create not accesible.

Stąd mój naiwny pewnie wniosek o braku TCanvas i w związku z tym braku modułu Graphics.

Używasz Linuxa? hmm... to gorzej, bo nie mogę sprawdzić. Ale proponowałbym poszukać błędu w twoim programie, a nie w module SynEdit.--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

0

Nie ,używam windy 98-ej , a wywala się dwie linijki wyżej ,przed dyrektywą {$IFNDEF LINUX}. Możliwe ,że jest to błąd w moim programie , ale dlaczego melduje ,że ma niedostępny kreator klasy canvacs ,jeśli w nagłówku modułu w sekcji uses występuje graphics?
Zresztą program jest trywialny ,najprostsze połączenie SynEdit i SynEditPrint. Zresztą przykład dostarczony w SynEdit też nie wyświetla identycznie ilości stron w drukowanym dokumencie , ale nie sprawdzałem czy z tej samej przyczyny.
Zastanawiam się , czy wina nie leży w tym że SynEdit jest robione w założeniach dla Delphi 6 a ja mam Delphi 5. Ale reszta działa OK , a jak mówisz w Delphi5 też jest Graphics. --Pzdr.
W.

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