Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Prism CLR unter .NET in der Konsole (https://www.delphipraxis.net/78365-clr-unter-net-der-konsole.html)

deapsky 3. Okt 2006 22:26


CLR unter .NET in der Konsole
 
Hallo Delphi-Fans,
ich würde gerne wissen, warum die untenstehende Procedure CLS unter Delphi.NET nicht läuft.
Wird die Procedure CLS entklammert, gibts eine Fehlermeldung beim kompilieren, das Typen nicht übereinstimmen bei folgender Zeile:

FillConsoleOutputCharacter(ConHandle, ' ', MaxX * MaxY, Coord, NOAW);

Das Programm mit den Klammern um die Procedure CLR läuft.
Andere Consolen-Informationen verwenden ja auch diese Datentypen.

:?: Was mache ich falsch? :?:

Gruß
Peter



Zitat:

program Test;

{$APPTYPE CONSOLE}

uses Windows, SysUtils;

var
ConHandle : THandle; // Handle to console window
Coord : TCoord; // To store/set screen position
MaxX, MaxY : Word; // To store max window size
NOAW : LongInt;

//-----------------------------------------
// Get handle to console output
//-----------------------------------------
function GetConOutputHandle : THandle;
begin
Result := GetStdHandle(STD_OUTPUT_HANDLE)
end;

//-----------------------------------------
// Position cursor to X, Y
//-----------------------------------------
procedure GotoXY(X, Y : Word);
begin
Coord.X := X; Coord.Y := Y;
SetConsoleCursorPosition(ConHandle, Coord);
end;
{
procedure Cls;
begin
Coord.X := 0; Coord.Y := 0;
FillConsoleOutputCharacter(ConHandle, ' ', MaxX * MaxY, Coord, NOAW);
GotoXY(0, 0);
end
}
procedure Init;
begin
// Get console output handle
ConHandle := GetConOutputHandle;
// Get max window size
Coord := GetLargestConsoleWindowSize(ConHandle);
MaxX := Coord.X;
MaxY := Coord.Y;
end;

var i: byte;

begin
// Initialize global variables
Init;

//Cls;

Coord.X := 0; Coord.Y := 0;
// Console Code Page API is not supported under Win95 - only GetConsoleCP
Writeln('Console Code Page = ', GetConsoleCP);
Writeln('Max X=', MaxX,' Max Y=', MaxY);
Writeln('----------------------------------------------------');
writeln;

write('Teste... ');

for i:=1 to 100 do
begin
gotoxy(12,4);
write(i, ' %');
sleep(100);
end;
writeln;
writeln('press ENTER to close Prg.')
Readln;
end.

mkinzler 3. Okt 2006 22:33

Re: CLR unter .NET in der Konsole
 
hast du wirklich ein .Net-Projekt gestartet?

deapsky 3. Okt 2006 22:40

Re: CLR unter .NET in der Konsole
 
Nun,
ich habe Delphi.NET gestartet und eine Consolen-Applikation erstellt.

Das "Programm ist ohne die Procedure CLR compilierbar und ausführbar, natürlich ist es keine echte .NET Anwendung nur Anwendung in einer DOS-Box.
Die wollte ich an der Stelle aber haben.
Leider läuft sie nicht (mit CLR) und ich weiss nicht warum.
Gruß
Peter

Bernhard Geyer 3. Okt 2006 22:56

Re: CLR unter .NET in der Konsole
 
Zitat:

Zitat von deapsky
Nun,
ich habe Delphi.NET gestartet und eine Consolen-Applikation erstellt.

Das "Programm ist ohne die Procedure CLR compilierbar und ausführbar, natürlich ist es keine echte .NET Anwendung nur Anwendung in einer DOS-Box.
Die wollte ich an der Stelle aber haben.
Leider läuft sie nicht (mit CLR) und ich weiss nicht warum.
Gruß
Peter

Es sind nur 2 Dinge verwirrent:

1, Du hast als Sprache Delphi (.NET) angegeben

2, CRL bedeutet im .NET-Umfeld Common Language Runtime. Du meinst aber die Clear-Funktion/CLR-Unit

Wie ist den FillConsoleOutputCharacter deklariert?

deapsky 4. Okt 2006 07:48

Re: CLR unter .NET in der Konsole
 
Hallo Bernhard,
die Deklaration ist ja im Programmlisting (siehe in meiner ursprünglichen Frage) hinterlegt. Der Fillcharakter ist einfach ein Leerzeichen in Gänsefüßchen.

Hier nochmal die Fehlermeldung des Compilers:

[Pascal Warnung] Project1.dpr(5): W1005 Unit 'Borland.Vcl.Windows' ist plattformspezifisch
[Pascal Fehler] Project1.dpr(33): E2033 Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen

Irgendeine Idee??
Gruß
Peter


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz