Entwickler-Ecke
Sonstiges (Delphi) - ClrScr und Clrln
BlueMonk - Di 22.10.02 20:55
Titel: ClrScr und Clrln
HI!
also, ich habe bisher nur TurboPascal erfahrung, daher programmiere ich in delphi 6 vorerst nur mit der kosnolen anwendungen. da ich nun aber mit entsetzten feststellen musste, dass es den clrscr und clrln befehl in delphi 6 überhaupt nicht mehr, oder zumindest so nicht mehr gibt, wollte ich mal fragen, ob es nicht doch irgendwie möglich ist diesen befehl weiter zu benutzen.
Mfg,
BM
Tino - Di 22.10.02 21:07
Hallo,
schau mal bei Torry in der
CRT [
http://www.torry.net/crt.htm] Sektion vorbei. Dort gibt es einige Units die entsprechenden Methoden implementieren.
Gruß
TINO
BlueMonk - Mi 23.10.02 13:37
so, ich hab nun ALLE ausprobiert. die meisten gingen gar nicht. bei einer ging es wunderbar, jedoch wurde immer eine dumme webung beim starten eingeblendet, die ich nicht will. und bei einer anderen, die ich jetzt benutze, wird das dosfenster geöffnet, und zusätlich noch ein weißes fenster, das aussieht, wie das notepad und dort wird dann das ganze programm ausgeführt.
gibts ne möglichkeit, dass sich diese neue fenster NICHT öffnet, oder gibts noch andere möglichkeiten den clrscr und clrln befehl zu benutzen??
Tino - Mi 23.10.02 13:46
Hallo,
ich hab mir die erste "Komponente" downgeloadet: CRT Unit v.0.1!
Im Zip-File ist ein Beipsiel Programm enthalten. Als ich dieses starten wollte bekamm ich mehrere Fehler. Versuch mal folgendes:
Die Fehler kommen immer im folgenden Code-Abschnitt:
Quelltext
1:
| InputRec{$IfDef VER120}.Event{$EndIf}.KeyEvent.bKeyDown |
mach daraus folgdendes:
Quelltext
1:
| InputRec.Event.KeyEvent.bKeyDown |
Hat bei mir (D5) funktioniert!
Gruß
TINO
BlueMonk - Mi 23.10.02 16:15
hab ich gemacht, nun hab ich hier nen fehler.
Quelltext
1:
| InputRec{$IfDef VER120}.Event{$EndIf}.MouseEvent |
also ich hab delphi 6. hier ist das 'programm' mit dem ich immer teste, ob der befehl geht:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| program test;
{$APPTYPE CONSOLE}
begin Writeln ('hallo'); Writeln ('hallo'); Readln; ClrScr; Writeln ('Fertig'); Readln; ClrScr; Writeln ('hallo'); Writeln ('hallo'); ClrLn; Readln; end. |
also, wenn ihr wisst, wie ich dieses programm zum laufen bekomme, dann sagt mir doch mal bescheid, weil da sind genau die beiden befehle drinne, die mir im moment schwirigkeiten bereiten. natürlich gehört noch ein uses ....... dazu, weiß aber net genau, welche ich nehmen soll, da ich bis jetzt noch keine gefunden habe die klappt.
BlueMonk - Fr 25.10.02 14:53
keiner mehr ne idee?? *verzweifel*
BlueMonk - Fr 25.10.02 17:00
also, ich habe mein programm und die ConTools.pas in das gleiche verzeichnis geschoben.
mein programmsieht nun so aus:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| program geil;
{$APPTYPE CONSOLE}
Uses ConTools;
begin Writeln ('hallo'); Writeln ('hallo'); Readln; ClrScr; Writeln ('Fertig'); Readln; end. |
jedoch kommt wieder massic compilerfehler meldungen in der pas datei.
die erste ist: 'UNIT' erwartet, aber 'VAR' gefunden. geht das nun schon wieder nicht, oder mache ich was falsch??
Delete - Fr 25.10.02 19:06
Nicht unter Uses schreiben. Nach deinem Uses die Datei mit {$INCLUDE ConTools.pas} einbinden.
Ich glaube, zu mindest Windows wird gebraucht.
BlueMonk - Sa 26.10.02 07:37
ahsooooo.....
naja, mein prog sieht nun so aus:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| program geil;
{$APPTYPE CONSOLE}
Uses {$INCLUDE ConTools.pas} begin Writeln ('hallo'); Writeln ('hallo'); Readln; ClrScr; Writeln ('Fertig'); Readln; end. |
geht aber immer noch net, komm nun die fehlermeldung (in der pas datei): bezeichner erwartet aber 'var' gefunden. woran liegt das?
Tino - Sa 26.10.02 08:55
Versuch es mal so:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| program geil;
{$APPTYPE CONSOLE}
{$INCLUDE ConTools.pas}
begin Writeln ('hallo'); Writeln ('hallo'); Readln; ClrScr; Writeln ('Fertig'); Readln; end. |
Zur Info: {$INCLUDE ... } ist eine Compileranweisung genauso wie {$APPTYPE ... }. Schau mal in der Hilfe unter den beiden Compileranweisungen nach. Dann dürfte Dir klar sein was, besonders INCLUDE, macht!
Gruß
TINO
BlueMonk - Sa 26.10.02 12:59
so, hab das nu so gemacht, wie du es gesagt hast, nu sagt er mir aber an der stelle:
Quelltext
1:
| csbi: _CONSOLE_SCREEN_BUFFER_INFO; |
folgendes: Undefinierter Bezeichner: '_CONSOLE_SCREEN_BUFFER_INFO'
woran liegt denn das nun schon wieder?
Delete - Sa 26.10.02 13:18
windows.pas wird noch gebraucht.
BlueMonk - Sa 26.10.02 13:50
also, ich hab nun die windwos.pas in den gelcihen ordner kopiert in dem auch das programm und die contools.pas ist.
wenn ich das programm nun so schreibe:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| program geil;
{$APPTYPE CONSOLE} {$INCLUDE Windows.pas} {$INCLUDE ConTools.pas}
begin Writeln ('hallo'); Writeln ('hallo'); Readln; ClrScr; Writeln ('Fertig'); Readln; end. |
kommt in der windows.pas datei and der stelle:
folgende meldung: deklaration erwartet, aber 'unit' gefunden.
wenn ich die windows.pas mit der contools.pas vertausche, also so:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| program geil;
{$APPTYPE CONSOLE} {$INCLUDE ConTools.pas} {$INCLUDE Windows.pas}
begin Writeln ('hallo'); Writeln ('hallo'); Readln; ClrScr; Writeln ('Fertig'); Readln; end. |
dann kommt wieder in der contools.pas an der stelle:
Quelltext
1:
| csbi: _CONSOLE_SCREEN_BUFFER_INFO; |
diese meldung:Undefinierter Bezeichner: '_CONSOLE_SCREEN_BUFFER_INFO'
was hab ich denn nun schon wieder falsch gemacht??
Delete - Sa 26.10.02 13:53
So geht's. Windows.pas muß natürlich normal über uses eingebunden werden.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| program geil;
{$APPTYPE CONSOLE}
uses windows;
{$INCLUDE ConTools.pas}
begin Writeln ('hallo'); Writeln ('hallo'); Readln; ClrScr; Writeln ('Fertig'); Readln; end. |
BlueMonk - Sa 26.10.02 15:46
ok, danke nun funktioniert der ClrScr befehl, vielen dank.
was aber immer noch nicht funktioniert ist der ClrLn befehl, gibt es auch noch eine möglichkeit siesen befehl in delphi wiederzubekommen.
BlueMonk - So 27.10.02 19:03
naja, scheinbar nicht. werd mich wohl damit abfinden müssen.
hansa - Mi 30.10.02 13:17
Hi,
mal langsam, vielleicht geschehen noch Wunder. :P
hieß der Befehl nicht ClrEol oder ClrEoln ?
Gruß
Hansa
BlueMonk - Do 31.10.02 17:30
ok, thx also der clreoln befehl ist ein undefinierter bezeichner. aber der ClrEoL befehl den kann ich reinschreiben ohne dat er rummuckt. allerdings bekomm ich dat nit richtig angewand.
z.b. bei dem quelltext:
Quelltext
1: 2: 3: 4: 5: 6:
| begin; Writeln ('1'); Writeln ('2'); ClrEoL; Readln; end; |
dann sollte doch eigentlich auf dem monitor stehen:
1
es steht aber da:
1
2
warum?? was mache ich falsch?? wie mache ich, dass er die letze zwile löscht? muss ich dem das noch irgendwie angenen welche zeile er löschen soll?
hansa - Do 31.10.02 18:27
Hi BlueMonk,
immer ganz ruhig bleiben. 8) Das geht schon noch. ClrEol löscht ab Cursor-Position bis zum Ende der Zeile. Da Du den Cursor bereits in der DRITTEN Zeile stehen hast, löscht er natürlich NICHT die zweite. Also so geht es :
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| begin; Writeln ('1'); Writeln ('2');
GOTOXY (1,WHEREY - 1); !!!!!!!!!!!!!!!!!!!!!!!!!!!
ClrEoL; Readln; end; |
Gruß
Hansa
Geht das da überhaupt mit Delphi ? :mrgreen: Habe das readln zu spät gesehen. Dadurch stehst Du ja noch eine Zeile tiefer, also in der 4. Zeile. Willst Du die 2. Zeile löschen, dann mußt Du natürlich mit gotoxy (1,wherey-2) den Cursor vor die 2 bugsieren.
WhereX und WhereY geben die Cursorpos. an. So, jetzt reichts aber, das steht ca. auf Seite 10 eines Turbo-Pascal Buches.
Gruß
Hansa
BlueMonk - Sa 02.11.02 12:59
super, nochmal danke an alle, die mit hier geholfen haben, jetzt geht alles so wie ich et wollte.
| Zitat: |
| So, jetzt reichts aber, das steht ca. auf Seite 10 eines Turbo-Pascal Buches |
ja, auf seite 10 einen tp buches, aber da ich ja mit delphi arbeite hat mir das alles nicht weitergeholfen. bei tp wär das ja kein prob gewesen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!