Tomasz Starzyk

Tomasz Starzyk Student,
Politechnika Śląska
w Gliwicach,
elektryk (specj...

Temat: problem z konstruktorem

Witam,
próbuję napisać klasę dzięki której mógłbym coś wydrukować w Delphi .NET ale mam mały problem ze zrozumieniem kawałka kodu w C#. Nie potrafię zrozumieć po co jest i jak działa ta linijka: "base.OnPrintPage(e);" no i inne zaczynające się od base w poniższym kodzie.
Może ktoś wytłumaczy i pomoże przetłumaczyć to na delphi ??

#region  OnPrintPage 
/// <summary>
/// Override the default OnPrintPage method of the PrintDocument
/// </summary>
/// <param name=e></param>
/// <remarks>This provides the print logic for our document</remarks>
protected override void OnPrintPage(System.Drawing.Printing.PrintPageEventArgs e)
{
// Run base code
base.OnPrintPage(e);

//Declare local variables needed

int printHeight;
int printWidth;
int leftMargin;
int rightMargin;
Int32 lines;
Int32 chars;

//Set print area size and margins
{
printHeight = base.DefaultPageSettings.PaperSize.Height - base.DefaultPageSettings.Margins.Top - base.DefaultPageSettings.Margins.Bottom;
printWidth = base.DefaultPageSettings.PaperSize.Width - base.DefaultPageSettings.Margins.Left - base.DefaultPageSettings.Margins.Right;
leftMargin = base.DefaultPageSettings.Margins.Left;
//X
rightMargin = base.DefaultPageSettings.Margins.Top;
//Y
}
...
Tomasz Starzyk edytował(a) ten post dnia 14.11.08 o godzinie 14:20

konto usunięte

Temat: problem z konstruktorem

`Piotr Sowa edytował(a) ten post dnia 12.02.12 o godzinie 14:54

konto usunięte

Temat: problem z konstruktorem

Z przetłumaczeniem na Delphi problem będę miał bo już dawno nic w tym języku nie pisałem, natomiast odnośnie base to jest to wywołanie metody lub odwołanie się do property z klasy bazowej z której ta klasa dziedziczy. Być może jest tam jakiś kawałek kodu, który trzeba wykonać lub do jakichś danych się dobrać.
Tomasz Starzyk

Tomasz Starzyk Student,
Politechnika Śląska
w Gliwicach,
elektryk (specj...

Temat: problem z konstruktorem

ehhh próbuje i próbuje już pół dnia i nic :/
mam coś takiego:
strict protected
class procedure OnBeginPrint(e: System.Drawing.Printing.PrintEventArgs);override;

...
class procedure TDrukowanie.OnBeginPrint(e: PrintEventArgs);
begin
inherited OnBeginPrint(e);

end;


i ciągle dostaje błąd: "Declaration of 'OnBeginPrint' differs from previous declaration" już nie wiem jak to inaczej zrobić :/

konto usunięte

Temat: problem z konstruktorem

A czy to rzeczywiście ma być class procedure? Bo to coś jak metoda statyczna, a nazwa tego OnBeginPrint to tak jakby chodziło o metodę instancji klasy.

Poza tym nie mam pojęcia co daje strict. Jak wygląda deklaracja w klasie bazowej? I tak w ogóle z jakiej klasy dziedziczysz? Może coś się uda wymyśleć.
Tomasz Starzyk

Tomasz Starzyk Student,
Politechnika Śląska
w Gliwicach,
elektryk (specj...

Temat: problem z konstruktorem

dziedziczę z klasy System.Drawing.Printing.PrintDocument

a w pomocy borlanda jest tyle:

PrintDocument.OnBeginPrint Method

Raises the BeginPrint event. It is called after the Print method is called and before the first page of the document prints.

[Visual Basic]
Protected Overridable Sub OnBeginPrint( _
ByVal e As PrintEventArgs _
)

[C#]
protected virtual void OnBeginPrint(
PrintEventArgs e
);

[C++]
protected: virtual void OnBeginPrint(
PrintEventArgs* e
);

[JScript]
protected function OnBeginPrint(
e : PrintEventArgs
);

Parameters
e
A PrintEventArgs that contains the event data.
Remarks
The OnBeginPrint method allows derived classes to handle the event without attaching a delegate. This is the preferred technique for handling the event in a derived class.

When a derived class calls the OnBeginPrint method, it raises the BeginPrint event by invoking the event handler through a delegate. For more information, see Raising an Event.

Notes to Inheritors: When overriding OnBeginPrint in a derived class, be sure to call the base class's OnBeginPrint method so that registered delegates receive the event. This method is a good place for initialization.

konto usunięte

Temat: problem z konstruktorem

No więc tak jak pisałem poprzednio nie sądzę, żeby to miała być class procedure. Z tego co wyczytałem na google o Delphi.NET class procedure to odpowiednich metod statycznych. Niestety nie mogę powiedzieć jak powinno być poprawnie, ale na 99% stawiam, że to z tym problem. Spróbuj pokombinować, ale zastrzegam, że mogę się też mylić...

A tak przy okazji to czy musisz dziedziczyć z PrintDocument? Nie wystarczy podpiąć się pod odpowiednie metody w tej klasie i robić to co masz robić. Zdarzało się, że coś musiałem drukować, ale nie przypominam sobie aby aż trzeba było dziedziczyć. No ale może akurat ten przypadek tego wymaga...

konto usunięte

Temat: problem z konstruktorem

Zawsze w ostatecznosci mozna skapilowac w c# i potraktowac reflectorem do delphi.net..... ja to leniwy jestem wiec tak mi do glowy przyszlo ;-)

Następna dyskusja:

problem z serializacja cdata




Wyślij zaproszenie do