AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language 'Der Vorgang kann nicht erzeugt werden', Delphi 7
Thema durchsuchen
Ansicht
Themen-Optionen

'Der Vorgang kann nicht erzeugt werden', Delphi 7

Ein Thema von Chris603 · begonnen am 19. Mär 2013 · letzter Beitrag vom 20. Mär 2013
Antwort Antwort
Seite 2 von 2     12   
Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#11

AW: 'Der Vorgang kann nicht erzeugt werden', Delphi 7

  Alt 19. Mär 2013, 22:58
Hallo,

eine interessante Konstruktion, die Du da hast; interessant auch, dass das überhaupt funktioniert. Scheinbar betrachtet der Compiler Deine TText-Methoden als klassenstatische Methoden, so dass Du sie auch aufrufen kannst. Dies funktioniert aber nur solange Du die Variable TextClass in Deinem Project-Main deklarierst. Wenn ich die Deklaration in die Unit verschiebe, dann kracht es bei mir mächtig.

Mal ein paar Dinge, die Dir bei der Delphi-Programmierung weiterhelfen werden:
Delphi-Quellcode:
type
    TText = class
    private
      iStdTextColor: Integer;
    public
      procedure printf(sText: String; TextColor: Integer=0); // formatierte Ausgabe
      procedure ClrScr; // Konsole leeren
      function Ansi2OEM(AnsiString: string): string; // ANSI-String zu OEM-String
      procedure TText; // Konstruktor
  end;
Die procedure TText ist eine ganz normale Prozedur, kein Konstruktor!

Was in C++ TText::TText ist in Delphi mit dem Zauberwort constructor zu bauen.
Was in C++ TText::~TText ist in Delphi mit dem Zauberwort destructor zu bauen.

Delphi-Quellcode:
type
    TText = class
    private
    public
      constructor Create; // jetzt ist es ein Konstruktor
      destructor Destroy; override;
  end;

implementation

constructor TText.Create;
begin
  inherited Create;

  // Deine Initialisierung
end;

destructor TText.Destroy;
begin
  // Alles was noch aufgeräumt werden muss
  inherited Destroy
end;
Hoffe es hilft Dir weiter.

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: 'Der Vorgang kann nicht erzeugt werden', Delphi 7

  Alt 19. Mär 2013, 23:30
Und in deiner Main dann z.B. so:

Delphi-Quellcode:
var
  TextClass: TText;
  I: integer;
begin
  TextClass := TText.Create;
  try
    TextClass.ClrScr;
    try
      for I := 0 to 15 do
        TextClass.printf('Hallo Welt!', I);
      Readln;
    except
      on E: Exception do
        Writeln(E.Classname, ': ', E.Message);
    end;
  finally
    TextClass.Free;
  end;
end.
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#13

AW: 'Der Vorgang kann nicht erzeugt werden', Delphi 7

  Alt 20. Mär 2013, 08:38
Na ja, ginge auch mit Klassenmethoden.
  Mit Zitat antworten Zitat
Chris603

Registriert seit: 19. Mär 2013
Ort: Deutschland
13 Beiträge
 
Delphi 7 Personal
 
#14

AW: 'Der Vorgang kann nicht erzeugt werden', Delphi 7

  Alt 20. Mär 2013, 16:24
Danke an Bjoerk & Volker!

Wie gesagt, für mich als C++Programmierer ist das hier Neuland, aber jetzt klappt das auch!
Vielen Dank für die schnelle Hilfe hier!


Gruß Christoph
BuubleGamer
  Mit Zitat antworten Zitat
Chris603

Registriert seit: 19. Mär 2013
Ort: Deutschland
13 Beiträge
 
Delphi 7 Personal
 
#15

AW: 'Der Vorgang kann nicht erzeugt werden', Delphi 7

  Alt 20. Mär 2013, 16:44
Jetzt kommt ein anderer Fehler! Wiedermal funktioniert es, wenn ich Readln ausklammere
"Programm xx/xx/advText.exe kann nicht gefunden werden!"
Ist mir echt ein Rätsel, da der Compiler ja die .exe erstellen soll und sie nicht suchen(dh er sucht sie und wenn er Sie nicht findet, DANN erzeugt er Sie)....

Delphi-Quellcode:
program advText;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  ceText in '..\ChrisEngine\ceText.pas';

var
  TextClass : TText;

begin
  // Inititialisierung
  TextClass := TText.Create;

  TextClass.printf('Hallo Welt!');
  TextClass.ClrScr;

  Readln;

  // Freigeben der Klassen
  TextClass.Destroy;
end.
In der ceText.pas hat sich nichts geändert, nur der Konstruktor/Destruktor sind diesmal richtig In Konstruktor wird iStdTextColor:=7(Weiß) gesetzt. Der Destruktor tut gar nix.

Grüße
Christoph
BuubleGamer

Geändert von Chris603 (20. Mär 2013 um 16:48 Uhr)
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#16

AW: 'Der Vorgang kann nicht erzeugt werden', Delphi 7

  Alt 20. Mär 2013, 16:52
.. auch wenn es den Fehler nicht behebt..

Delphi-Quellcode:
program advText;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  ceText in '..\ChrisEngine\ceText.pas';

var
  TextClass : TText;

begin
  // Inititialisierung
  TextClass := TText.Create;

  TextClass.printf('Hallo Welt!');
  TextClass.ClrScr;

  Readln;

  // Freigeben der Klassen
  TextClass.Free; // <--------
end.
und vielleicht noch alles in Resource-Schutzblöcken einpacken.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#17

AW: 'Der Vorgang kann nicht erzeugt werden', Delphi 7

  Alt 20. Mär 2013, 17:17
Keine Ahnung, eventuell das Project mal erzeugen (statt compilieren). Und such mal mit dem Explorer nach deinen *.pas und *.dcu ob welche doppelt sind.
  Mit Zitat antworten Zitat
Chris603

Registriert seit: 19. Mär 2013
Ort: Deutschland
13 Beiträge
 
Delphi 7 Personal
 
#18

AW: 'Der Vorgang kann nicht erzeugt werden', Delphi 7

  Alt 20. Mär 2013, 17:48
So, nachdem Ich alles erzeugt hatte, kommt der Ursprungsfehler wieder: "Der Vorgang kann nicht erzeugt werden!"

Gruß
Christoph
BuubleGamer
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   

 

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 19:42 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