AGB  ·  Datenschutz  ·  Impressum  







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

Memo als aktives CMD- Fenster

Ein Thema von strom · begonnen am 27. Dez 2014 · letzter Beitrag vom 3. Jan 2015
Antwort Antwort
strom

Registriert seit: 23. Aug 2008
Ort: Keine Ergebnisse gefunden
290 Beiträge
 
#1

AW: Memo als aktives CMD- Fenster

  Alt 1. Jan 2015, 19:22
Hallo Namenloser,

kannst Du mir vielleicht weiter helfen? Komme mit Deinem Beispiel nicht weiter!

Danke

-----------------------------------------------------------------------------

Es gibt einige Lösungen dazu im Netz, die meist aber erst das Ergebnis zurückliefern, wenn die Anwendung beendet wurde.
Wenn dir das nicht reicht, kannst du meine Klasse aus der Unit im Anhang benutzen. Sie stellt Events bereit, die aufgerufen werden, wenn neue Daten ankommen.

Beispiel:

Delphi-Quellcode:
type
  TMyForm = class(TForm)
    ...
  protected
    FRedirector: TConsoleRedirector;
    procedure MyEventHandler(Sender: TObject; const Data: string);
  end;

procedure TMyForm.MyEventHandler(Sender: TObject; const Data: string);
begin
  Memo1.Text := Memo1.Text+Data;
end;

procedure TMyForm.FormCreate(...);
begin
  FRedirector:= TConsoleRedirector.Create;
  FRedirector.OnReadOutput := MyEventHandler;
end;

procedure TMyForm.MyButtonClick(...);
begin
  FRedirector.Start('cmd /K ping google.com');
end;
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Memo als aktives CMD- Fenster

  Alt 1. Jan 2015, 21:56
1. Zieh ein Memo und einen Button auf dein Formular.
2. Füge oben in der Unit unter Uses unConsoleRedirector hinzu.
3. Passe den Code wie im Beispiel gezeigt an.
  Mit Zitat antworten Zitat
strom

Registriert seit: 23. Aug 2008
Ort: Keine Ergebnisse gefunden
290 Beiträge
 
#3

AW: Memo als aktives CMD- Fenster

  Alt 2. Jan 2015, 06:55
Hallo,
was mache ich falsch?

Delphi-Quellcode:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics,
  Dialogs, unConsoleRedirector;// hier kommt schon eine Fehlermeldung!

type
  TForm1 = class(TForm)
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

end.
Fehlermeldung

"unit1.pas(9,12) Fatal: Can not find unit unConsoleRedirector used by Unit1 of the project inspector."
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Memo als aktives CMD- Fenster

  Alt 2. Jan 2015, 07:23
Befindet sich die Unit im (Such-)Pfad?
U.U. funktioniert diese in FPC nicht.
Markus Kinzler
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Memo als aktives CMD- Fenster

  Alt 2. Jan 2015, 14:19
Für Freepascal muss man gegebenenfalls oben in die unConsoleRedirector.pas noch ein {$mode Delphi} einfügen. Ansonsten sollte es meiner Meinung nach funktionieren, solange die Zielplattform Windows ist.

Aber die Fehlermeldung deutet eher darauf hin, dass die Unit nicht im Suchpfad ist.
  Mit Zitat antworten Zitat
strom

Registriert seit: 23. Aug 2008
Ort: Keine Ergebnisse gefunden
290 Beiträge
 
#6

AW: Memo als aktives CMD- Fenster

  Alt 3. Jan 2015, 10:54
Hallo,

nachdem es mit Lazarus (Freepascal) nicht funktoniert hat, habe ich es heute mit
Delphi XE 7 versucht!

"Unit Name unConsoleRedirector kann nicht aufgelöst werden!"

Auch ohne Erfolg!

Delphi-Quellcode:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, unConsoleRedirector ;

type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;


var
  Form1: TForm1;

implementation

{$R *.dfm}

end.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Memo als aktives CMD- Fenster

  Alt 3. Jan 2015, 11:01
Wenn die Datei nicht gefunden werden kann, dann wird sie nicht gefunden. und solange Du daran nicht änderst, wird es auch in der Zukunft nicht funktionieren.
Markus Kinzler
  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 09:54 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