AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

CLR unter .NET in der Konsole

Ein Thema von deapsky · begonnen am 3. Okt 2006 · letzter Beitrag vom 4. Okt 2006
Antwort Antwort
deapsky

Registriert seit: 28. Aug 2006
6 Beiträge
 
#1

CLR unter .NET in der Konsole

  Alt 3. Okt 2006, 22:26
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.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: CLR unter .NET in der Konsole

  Alt 3. Okt 2006, 22:33
hast du wirklich ein .Net-Projekt gestartet?
Markus Kinzler
  Mit Zitat antworten Zitat
deapsky

Registriert seit: 28. Aug 2006
6 Beiträge
 
#3

Re: CLR unter .NET in der Konsole

  Alt 3. Okt 2006, 22:40
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
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.198 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: CLR unter .NET in der Konsole

  Alt 3. Okt 2006, 22:56
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?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
deapsky

Registriert seit: 28. Aug 2006
6 Beiträge
 
#5

Re: CLR unter .NET in der Konsole

  Alt 4. Okt 2006, 07:48
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz