Autor Beitrag
Rylon
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: Do 11.01.07 10:03 
Hallo DF,

Ich hab folgendes Problem:

Ich habe eine Consolen-Anwendung:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
program Server;

{$APPTYPE CONSOLE}

uses ...;

type TIrgendEineKlasse = class;
       public
       Eigenschaft1:string;
       ...
end;

...

var
  IrgendEineKlasse:TIrgendEineKlasse;

begin

  IrgendEineKlasse:TIrgendEineKlasse.create;

...

end.


Das funktioniert auch alles schön.

Nun möchte ich aber aus der Unit XY auf die Klasse IrgendEineKlasse zugreifen. Das funktioniert nicht, da die dpr keine Unit ist.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
unit XY;

interface

uses ...;

procedure DoSomething;

implementation

procedure DoSomething;
begin

  IrgendEineKlasse.eigenschaft1:='Test'//DAS GEHT NICHT.  

end;

end.


Kann mir da jemand helfen?
IngoD7
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: Do 11.01.07 10:19 
user profile iconRylon hat folgendes geschrieben:
Das funktioniert nicht, da die dpr keine Unit ist.

Richtig erkannt.

Deklariere doch die Klasse in der Unit (oder in einer anderen).
Rylon Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: Do 11.01.07 10:23 
Ja die Klasse kann ich auch irgendwo annerst deklarieren, aber sie erstellen, kann ich nur im Hauptprogramm, da ja alles annere nicht ausgeführt wird.

Gibt es keine Möglichkeit auf die erstellte Klasse zuzugreifen?
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Do 11.01.07 11:04 
Hallo!

Sobald du auch die Variable in eine Unit verschiebst (wohlgemerkt im Interface-Teil!), ist doch alles in Butter. Und erstellen könntest du ja trotzdem woanders, du kannst ja einfach eine Prozedur einer Unit aus der DPR aufrufen lassen.

Cu,
Udontknow
IngoD7
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: Do 11.01.07 11:29 
Zudem wird doch der initialization-Abschnitt einer eingebundenen Unit bei Programmstart ausgeführt. Da kannst du auch erstellen, was immer du möchtest. Im finalization-Abschnitt dann die Sachen ggf. wieder freigeben.

//NACHTRAG:

Also so:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
program Server;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  XY in 'XY.pas';

begin
  dosomething;
  if IrgendEineKlasse.eigenschaft1 = 'Test' then 
    begin
     beep;
     write('Ich habe gepiept.');
     sleep(5000);
    end;
end.

=============SCHNIPP===================

unit XY;

interface

type 
  TIrgendEineKlasse = class  
     Eigenschaft1:string;
     end;

var  
  IrgendEineKlasse:TIrgendEineKlasse;  
  
procedure DoSomething; 

implementation

procedure DoSomething;  
  begin 
   IrgendEineKlasse.eigenschaft1 := 'Test';     
  end;

initialization
  IrgendEineKlasse:=TIrgendEineKlasse.create; 

finalization
  IrgendEineKlasse.free;  

end.
Rylon Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: Do 11.01.07 17:45 
Danke,

habe es nach dem Muster der Form gemacht. D.H. neue Unit, Klasse deklariert und eine Variable dieser Klasse erstellt. Diese initialisiere ich dann in dpr.

Bei dem ganzen bin ich dann zu dem Schluss gekommen, das Console in Delphi überflüssig und unbrauchbar ist, da ich noch nciht mal ein Ereignis auswerten kann, ohne große Probleme, geschweigedenn, dass die Textausgabe entsprechend funktioniert.

-> Ist das bei C++ genau so oder kann man da Ereignisse wenigstens noch auswerten?

Greez Rylon

und thx für eure schnellen Antworten.
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Fr 12.01.07 18:10 
Zitat:
da ich noch nciht mal ein Ereignis auswerten kann, ohne große Probleme, geschweigedenn, dass die Textausgabe entsprechend funktioniert.


Wie meinst du das? Warum sollten Ereignisse nicht funktionieren? Und was hast du für Probleme mit der Textausgabe?

In meiner Firma schreiben wir viele Konsolenanwendungen mit mehreren Units, Probleme hats noch nie gegeben.

Cu,
Udontknow
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Fr 12.01.07 20:35 
user profile iconRylon hat folgendes geschrieben:
Bei dem ganzen bin ich dann zu dem Schluss gekommen, das Console in Delphi überflüssig und unbrauchbar ist, da ich noch nciht mal ein Ereignis auswerten kann, ohne große Probleme, geschweigedenn, dass die Textausgabe entsprechend funktioniert.

...
Wenn etwas nicht funktioniert, such die Schuld in erster Linie erstmal bei dir ;) Die Textausgabe in einer Konsolenanwendung ist ziemlich beschränkt, nämlich auf das, was die früheren DOS Programme konnten. Ändern kann man das z.B. mit der Unit Suche in: Delphi-Forum, Delphi-Library CONSOLE32. Ein Ereignis auszuwerten.. ähm .. Du sprichst von einem TNotifyEvent oder? Also wie z.B. onMouseMove beim TImage oder sowas...? Soweit ich weiß, kannst du Ereignisse problemlos mit einem Handler versehen, in dem du die Message, die das Ereignis auslößt, abfängst.
Klar kannst du nicht einfach ein TEdit in der dpr deklarieren und initialisieren und so auf ein onKeyDown zugreifen, oder was auch immer.
Und in C++ wirds wohl kaum anders sein, da das nicht unbedingt was mit der Programmiersprache zu tun hat ... Aber auf dem Gebiet kenn ich mich jetzt nich aus.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Rylon Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: Sa 13.01.07 10:18 
Danke für die Antworten...

1.
Das die Ausgabe beschränkt ist ist genau meine Rede. Und aus diesem Grund bin ich von der Console abgekommen. Z.B. sind Umlaute nur mit einer Funktion darstellbar, deren unit nicht mit delphi 3,6,7,9 usw. ausgeliefert wird. Soweit noch kein Problem, aber wenn ich nun diese Funktion aufrufe und einen Fehler mache, beendet sich das Programm beim Start -> Wie soll ich da bitte debuggne?. Nachdem auch diese Problem gelöst war hat er zwar umlaute dargestellt, aber den Text total verhackstückt. -> Was soll ich bitte damit anfangen.

2.
Ja, ich meine einen TNotifyEvent und mir ist schon klar, dass ich keine graphischen Objecte benutzen kann, halt mich nicht für blöd. Nein, ich wollte, für was sollen consolen sonst gut sein, einen Server schreiben. Doch leider funktionieren die Sockets nicht in der Console -> Ich müsste auf irgendwelche alternativen zurückgreifen.

Fazit: Consolen sind nur für Server-Software interresant, leider funktioniert die Basis für einen solchen Server schon nich: Consolen in delphi sind crap!

Greez Rylon
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Sa 13.01.07 16:04 
Blödsinn. du kannst in einer Konsolenanwendung einen MessageProc durchaus instantiieren, wenn du ein unsichtbares Fenster einbaust (Zitat user profile iconBenBE über MSN :) )
Weiterhin ist das in jeder anderen Programmiersprache nicht viel anders und damit ist es Blödsinn zu behaupten, Konsolen in Delphi sind sinnlos.

Du hast grade mein Heiliges Delphi :flehan: beleidigt, darauf reagiere ich allergisch, nix für ungut ;)

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Rylon Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: Sa 13.01.07 17:03 
Ich habe bis jetzte immer mit GUI gearbeitet, sprich mit form. Nun wollte ich mir die Console angucken (Serverkram...) und habe gegen mein erwarten festgestellt, das die console nicht einfach nur das weglassen eines Graphischen Fensterns ist, sondern, das vieles mehr fehlt, was bei der Form schon mit drin ist.

Greez Rylon

PS: Ich wollte niemanden seine Kultur beleidigen ;-)
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 13.01.07 17:10 
user profile iconRylon hat folgendes geschrieben:
Danke für die Antworten...

1.
Das die Ausgabe beschränkt ist ist genau meine Rede. Und aus diesem Grund bin ich von der Console abgekommen. Z.B. sind Umlaute nur mit einer Funktion darstellbar

Dann bemüht man eben mal etwas Google und findet dann so was:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
function Ansi2OEM(AnsiString: string): string
begin
  ANSIString := ANSIString + #0;
  CharToOEM(PChar(ANSIString), @ANSIString[1]);
  Delete(ANSIString, Length(ANSIString), 1);
  Result := ANSIString;
end;


Zitat:
Ja, ich meine einen TNotifyEvent und mir ist schon klar, dass ich keine graphischen Objecte benutzen kann, halt mich nicht für blöd. Nein, ich wollte, für was sollen consolen sonst gut sein, einen Server schreiben. Doch leider funktionieren die Sockets nicht in der Console -> Ich müsste auf irgendwelche alternativen zurückgreifen.

Auch da kann man einfach mal Google bemühen und findet dann sowas:
www.michael-puff.de/...imer_in_Konsole.html


Zitat:
Fazit: Consolen sind nur für Server-Software interresant, leider funktioniert die Basis für einen solchen Server schon nich: Consolen in delphi sind crap!

Das einzige was crap ist, ist der Stuss den du hier erzählst. Entschuldigug für die harten Worte, aber das ist nun mal so. Bevor du hier so ein Mist erzählst, solltest du dich erstmal etwas damit auseinandersetzen.

user profile iconRylon hat folgendes geschrieben:
das die console nicht einfach nur das weglassen eines Graphischen Fensterns ist, sondern, das vieles mehr fehlt, was bei der Form schon mit drin ist.

Und was wäre das bitte sehr? :roll:
Rylon Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: Sa 13.01.07 18:12 
Zitat:

Dann bemüht man eben mal etwas Google und findet dann so was: ...


Wie ich bereits geschrieben habe, bin ich auf diese Funktion schon gestoßen (CharToOEM). Leider hat sie mein Text verhackstückt. Wer lesen kann ist klar im Vorteil ;-)

Zitat:

Auch da kann man einfach mal Google bemühen und findet dann sowas:
www.michael-puff.de/...imer_in_Konsole.html


mmm.... kommt es mir nur so vor, oder ist einen Timer auf eine Form zu werfen nicht 1000000x komplizierter, als
1.Im Internet nach Lösungen zu suchen
2.ca 75 Zeilen Code zu schreiben um das zu erreichen, was man normalerweise mit zwei Klicks machen kann.
3.Sleep zu benutzen.

Außerdem den mal drüber nach, was passiert, wenn jetzte noch ein readln rein muss.

Zitat:

Zitat:

Fazit: Consolen sind nur für Server-Software interresant, leider funktioniert die Basis für einen solchen Server schon nich: Consolen in delphi sind crap!

Das einzige was crap ist, ist der Stuss den du hier erzählst. Entschuldigug für die harten Worte, aber das ist nun mal so. Bevor du hier so ein Mist erzählst, solltest du dich erstmal etwas damit auseinandersetzen.


Hast du mal probiert einen TServerSocket in Delphi-Console zu benutzen -> Das ist genau das was ich damit ausgesagt habe!
Also setz dich ersteinmal selber damit auseinander, bevor du hier die große nummer schiebst und auf beleidigt machst nur weil es um dein tolles delphi geht.
Ich will dir nicht vorenthalten: Ich benutze Delphi schon seit 6 Jahren und muss sagen es ist Müll.
Und bevor du dich noch weiter aufregst und weiter rumflamest erklär ich dir auch warum:
1. Ich bin Hobbyprogrammierer und noch dazu kleiner armer Schüler. Leider kann ich nichts, was ich programmiert habe (in delphi-pascal) verkaufen, da Borland tausende Euro dafür will. Wie soll ich das bitte bezahlen. Und noch wichtige: Wie soll ich das wieder reinbekommen?
2. Es besteht keine Portierbarkeit zu anderen Systemen, nicht das ich auf andere Systeme groß Wert lege, aber bei Servern ist das Betribsystem nunmal fast zwangsläufig Linux. Und jetzt komm mir nicht mit Kylix -> Als ich noch Linux hatte hab ichs noch nicht einmal hinbekommen es zu installieren. (Und das lag nicht an mir (viele hatten das Problem)).

Ich will nicht sagen, dass Delphi nur Nachteile hat, auf keinen Fall. Vor allem die klare und übersichtliche Syntax mit begin und end (im gegensatz zu dreckinge klammern in c++) sind toll. Oder auch die Einfachheit mal schnell ein Programm zu schreiben sind überragend. (Und man bleibt von Puffer-überläufen verschont).
Aber C++ ist und bleibt leider wohl der Standart, und Delphi nur eine Lern-Sprache, die man in der Schule lernt.

das die console nicht einfach nur das weglassen eines Graphischen Fensterns ist, sondern, das vieles mehr fehlt, was bei der Form schon mit drin ist.
Soweit das... Noch ein Kommentar:

Zitat:

Zitat:

das die console nicht einfach nur das weglassen eines Graphischen Fensterns ist, sondern, das vieles mehr fehlt, was bei der Form schon mit drin ist.

Und was wäre das bitte sehr?


So -> Das wars, du bist dran

Greez Rylon
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 13.01.07 18:19 
user profile iconRylon hat folgendes geschrieben:
Ich will dir nicht vorenthalten: Ich benutze Delphi schon seit 6 Jahren und muss sagen es ist Müll.

Da muss ich widersprechen...
user profile iconRylon hat folgendes geschrieben:
Und bevor du dich noch weiter aufregst und weiter rumflamest erklär ich dir auch warum:
1. Ich bin Hobbyprogrammierer und noch dazu kleiner armer Schüler. Leider kann ich nichts, was ich programmiert habe (in delphi-pascal) verkaufen, da Borland tausende Euro dafür will. Wie soll ich das bitte bezahlen. Und noch wichtige: Wie soll ich das wieder reinbekommen?

Turbo Delphi Explorer (entspricht Delphi 2006 Prof., darfst nur 3rd-Party-Kompos nur non-visuell verwenden, was aber ja ausreicht) ist kostenlos, auch für kommerzielle Nutzung, und Delphi 2005 PE ebenso...

// EDIT:
Ach so: Delphi 2006 Professional und Turbo Delphi Professional gibts auch schon für unter 500 Euro. Legal wohlgemerkt!
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Sa 13.01.07 18:26 
user profile iconRylon hat folgendes geschrieben:

Also setz dich ersteinmal selber damit auseinander, bevor du hier die große nummer schiebst und auf beleidigt machst nur weil es um dein tolles delphi geht.
Sieh dir Lukies Homepage an, und sag mir, mit WAS GENAU er sich auseinander setzen soll :roll:

user profile iconRylon hat folgendes geschrieben:

Ich will dir nicht vorenthalten: Ich benutze Delphi schon seit 6 Jahren und muss sagen es ist Müll.

Also ... hast du 6 Jahre deines Lebens verschwendet, an etwas, das völlig wertlos ist... Hmm.. genau wie ich seit meinem 12ten Lebensjahr jetzt auf 7 verschwendete Jahre komme, und niemals auch nur im geringsten auf den Gedanken gekommen bin, dass Delphi anderen Programmiersprachen hinterher sein könnte. (Nachdem ich den Versuch, C++ zu benutzen schnellstens aufgegeben hab)

Abschließend eine Bemerkung: Bitte fang mit Luckie eine Diskusion über den Nutzen von Delphi an! Ich will was zu lachen haben! :roll:

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 13.01.07 18:41 
user profile iconRylon hat folgendes geschrieben:
Zitat:

Dann bemüht man eben mal etwas Google und findet dann so was: ...


Wie ich bereits geschrieben habe, bin ich auf diese Funktion schon gestoßen (CharToOEM). Leider hat sie mein Text verhackstückt. Wer lesen kann ist klar im Vorteil ;-)

Mir hat die Funktion noch nie einen String kaputt gemacht. Wäre man schön, wenn du ein konkretes Beispiel zeigen würdest.

Zitat:
mmm.... kommt es mir nur so vor, oder ist einen Timer auf eine Form zu werfen nicht 1000000x komplizierter, als
1.Im Internet nach Lösungen zu suchen
2.ca 75 Zeilen Code zu schreiben um das zu erreichen, was man normalerweise mit zwei Klicks machen kann.
3.Sleep zu benutzen.

Ähm, zu jedem Problem gibt es eine Lösung, die eine ist einfach, die andere kompliziert. Wenn du dich fü die komplizierte Lösung entscheidest, ist es nicht der Fehler der Entwicklungsumgebung, wenn du Schwierigkeiten hast, sondern es ist dann dein Problem.

Zitat:
Außerdem den mal drüber nach, was passiert, wenn jetzte noch ein readln rein muss.

Kann ich gerne drüber nachdenken und dann?

Zitat:
Hast du mal probiert einen TServerSocket in Delphi-Console zu benutzen -> Das ist genau das was ich damit ausgesagt habe!

Nein habe ih noch nicht. Aber dass es einfacher ist eine Komponente auf ein Formular zu ziehen, als alles selber zu erstellen im Code, liegt wohl auf der Hand.

Zitat:
Also setz dich ersteinmal selber damit auseinander, bevor du hier die große nummer schiebst und auf beleidigt machst nur weil es um dein tolles delphi geht.

Ich schiebe hier keine große Nummer und ich bin nicht derjenige für den Delphi das Maß aller Dinge ist. Ich wähle meine Werkzeuge mit denen ich die mir gestellte Aufgabe am effizientesten lösen kann. Dazu gehört für mich auch C/C++, Java und PHP.

Zitat:
Ich will dir nicht vorenthalten: Ich benutze Delphi schon seit 6 Jahren und muss sagen es ist Müll.

Warum benutzt du es dann? Da du selber sagst, dass du nur ein Hobbyprogrammierer bist, gibt es wohl auch keinen Arbeitgeber, der dir irgendwelche Vorgaben macht. Also, warum nutzt du dann nicht das Werkzeug, die deiner Meinung nach besser für dich geeignet sind und eventeull noch kostenlos zu erhalten sind?

Zitat:
Und bevor du dich noch weiter aufregst und weiter rumflamest erklär ich dir auch warum:

Wo habe ich bitte sehr geflammt?

Zitat:
1. Ich bin Hobbyprogrammierer und noch dazu kleiner armer Schüler. Leider kann ich nichts, was ich programmiert habe (in delphi-pascal) verkaufen, da Borland tausende Euro dafür will. Wie soll ich das bitte bezahlen. Und noch wichtige: Wie soll ich das wieder reinbekommen?

Ich bin ein kleiner armer Auszubildender zum Fachinformatiker, wie soll ich mir bitte einen Ferrari leisten können? Borland bzw. Codegear bietet mit den Turbo Versionen ihrer IDE auch kostenlose Alternativen an. Hinter den Produkten von Borland steckt jede Menge Knowhow und Arbeit mit der der Anwender wiederrum entsprechende Software entwicklen kan, die er dann zu einem entsprechenden Preis verkaufen kann. Warum sollte Borland also seinen Teil den sie dazu beitragen verschenken? Die Professional und Enterprise Versionen sind auch nicht für Schüler gedacht, sondern richten sich an Firmen, die damit hier Geld verdienen. Aber da fü+r dichja Delphi sowieso Müll ist, warum nutzt du dann nicht ein kostenloses Werkzeug und regst dich statt dessen über die Preispolitik von Borland auf? Btw. das ist flamen und nicht meine Argmentation.

Zitat:
2. Es besteht keine Portierbarkeit zu anderen Systemen, nicht das ich auf andere Systeme groß Wert lege, aber bei Servern ist das Betribsystem nunmal fast zwangsläufig Linux. Und jetzt komm mir nicht mit Kylix -> Als ich noch Linux hatte hab ichs noch nicht einmal hinbekommen es zu installieren. (Und das lag nicht an mir (viele hatten das Problem)).

Das ist und war auch nie Ziel von Borland. Borland stellt mit Delphi ein Tool zur Verfügung, dass dahingehend optimiert und entwickelt wurde, um schnellstmöglich Anwendungen für den Benutzermodus in Win32 (bevorzugt GUI) zu entwickeln.

Zitat:
Aber C++ ist und bleibt leider wohl der Standart, und Delphi nur eine Lern-Sprache, die man in der Schule lernt.

Komisch, in unserere Firma entwicklen wir so wohl interne Projekte, als auch Projekte für Kunden mit Delphi. Und es gibt viele kommerzielle Produkte, die mit Delphi entwickelt wurden und werden.

Zitat:
das die console nicht einfach nur das weglassen eines Graphischen Fensterns ist, sondern, das vieles mehr fehlt, was bei der Form schon mit drin ist.

Was fehlt denn? Es ist eben eine Konsolenanwendung. Aber alle Sprachfeatures funktionieren dort genauso, wie in einer GUI-Anwendung.
Rylon Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: So 14.01.07 01:10 
Zitat:

Turbo Delphi Explorer (entspricht Delphi 2006 Prof., darfst nur 3rd-Party-Kompos nur non-visuell verwenden, was aber ja ausreicht) ist kostenlos, auch für kommerzielle Nutzung, und Delphi 2005 PE ebenso...


Sorry da war ich nicht richtig informiert. Ich dachte die neue Version sei auch für 500€ nicht ohne Einschränkungen für kommerziellen Vertrieb nutzbar.

Zitat:

Also ... hast du 6 Jahre deines Lebens verschwendet, an etwas, das völlig wertlos ist... Hmm.. genau wie ich seit meinem 12ten Lebensjahr jetzt auf 7 verschwendete Jahre komme, und niemals auch nur im geringsten auf den Gedanken gekommen bin, dass Delphi anderen Programmiersprachen hinterher sein könnte. (Nachdem ich den Versuch, C++ zu benutzen schnellstens aufgegeben hab)


Ganz und gar nicht, ich habe programmieren gelernt und kann, ohne überheblich zu sein, ein wenig mit delphi machen kann. Leider kann ich später mit den praktischen Delphikenntnissen nich viel anfangen, da es kaum firmen gibt, die es benutzen.

Das mit dem C++ ist bei mir ähnlich -> die Syntax mit den { kann ich nicht leiden, bin aber nun durch ein Praktikum gezwungen es zu lernen ;-)

Übrigens -> Ich "arbeite" mit Delphi auch seit ich 12 bin ;-)

Zitat:

Abschließend eine Bemerkung: Bitte fang mit Luckie eine Diskusion über den Nutzen von Delphi an! Ich will was zu lachen haben! :roll:


Ich bemüh mich.

Zitat:

Mir hat die Funktion noch nie einen String kaputt gemacht. Wäre man schön, wenn du ein konkretes Beispiel zeigen würdest.


Sorry, klingt jetzt nach einer faulen Ausrede, aber ich hab meinen kompletten Versuche mit der Console gelöscht -> Mangels Erfolg. Aber der Code war irgendwo aus dem Forum, wein wenig abgeädert

Zitat:

Ähm, zu jedem Problem gibt es eine Lösung, die eine ist einfach, die andere kompliziert. Wenn du dich fü die komplizierte Lösung entscheidest, ist es nicht der Fehler der Entwicklungsumgebung, wenn du Schwierigkeiten hast, sondern es ist dann dein Problem.


Aus dem Grund habe ich die D-Console als nutzlos abgestempelt, da die scheinbar immer der kompliziertere Weg ist. -> Außerdem, was ist das für eine Antwort? -> Wie ich nun schon bestimtm 3 mal gesagt habe dachte ich console sein all das, was mit der form auch da wäre nur ohne fenster(form). Is es halt nicht. Und da brauch ich dann nicht anfangen den benötigten kram irgendwie nachzubauen.

Zitat:

Kann ich gerne drüber nachdenken und dann?


Ja, was passiert?

Zitat:

Nein habe ih noch nicht. Aber dass es einfacher ist eine Komponente auf ein Formular zu ziehen, als alles selber zu erstellen im Code, liegt wohl auf der Hand.


Ich finde nicht, das es auf der hand liegt. (Man gehe mal davon aus eine variable der entsprechenden klasse zu deffinieren sei gleichwertig mit "auf-die-form-schmweißen")

Zitat:

Ich schiebe hier keine große Nummer und ich bin nicht derjenige für den Delphi das Maß aller Dinge ist. Ich wähle meine Werkzeuge mit denen ich die mir gestellte Aufgabe am effizientesten lösen kann. Dazu gehört für mich auch C/C++, Java und PHP.


Schön und lobsam, das kann ich nich ;-) -> Aber warum dann der Aufstand?

Zitat:

Warum benutzt du es dann? Da du selber sagst, dass du nur ein Hobbyprogrammierer bist, gibt es wohl auch keinen Arbeitgeber, der dir irgendwelche Vorgaben macht. Also, warum nutzt du dann nicht das Werkzeug, die deiner Meinung nach besser für dich geeignet sind und eventeull noch kostenlos zu erhalten sind?


Ich habs probiert, aber ich kann mti c++ nicht besondern, wie schon gesagt.

Zitat:

Wo habe ich bitte sehr geflammt?


-> siehe Hier
Zitat:

Das einzige was crap ist, ist der Stuss den du hier erzählst. Entschuldigug für die harten Worte, aber das ist nun mal so. Bevor du hier so ein Mist erzählst, solltest du dich erstmal etwas damit auseinandersetzen.


Zitat:

Ich bin ein kleiner armer Auszubildender zum Fachinformatiker, wie soll ich mir bitte einen Ferrari leisten können? Borland bzw. Codegear bietet mit den Turbo Versionen ihrer IDE auch kostenlose Alternativen an. Hinter den Produkten von Borland steckt jede Menge Knowhow und Arbeit mit der der Anwender wiederrum entsprechende Software entwicklen kan, die er dann zu einem entsprechenden Preis verkaufen kann. Warum sollte Borland also seinen Teil den sie dazu beitragen verschenken? Die Professional und Enterprise Versionen sind auch nicht für Schüler gedacht, sondern richten sich an Firmen, die damit hier Geld verdienen. Aber da fü+r dichja Delphi sowieso Müll ist, warum nutzt du dann nicht ein kostenloses Werkzeug und regst dich statt dessen über die Preispolitik von Borland auf? Btw. das ist flamen und nicht meine Argmentation.


Weil ich die Sprache toll finde!

Zitat:

Das ist und war auch nie Ziel von Borland. Borland stellt mit Delphi ein Tool zur Verfügung, dass dahingehend optimiert und entwickelt wurde, um schnellstmöglich Anwendungen für den Benutzermodus in Win32 (bevorzugt GUI) zu entwickeln.


"nie ziel von Borland" -> Kylix ist vom Himmel gefallen?

Und das löst das Problemder portierbarkeit nicht!

Zitat:

Komisch, in unserere Firma entwicklen wir so wohl interne Projekte, als auch Projekte für Kunden mit Delphi. Und es gibt viele kommerzielle Produkte, die mit Delphi entwickelt wurden und werden.


Viele. Also nur als Beispiel: Frag dich mal wieviele Spiele in Delphi geschreiben wurden. Und wieviele Betriebsysteme in Pascal, Programme die auch auf Linux laufen sollen, timimg-relevante software....

Zitat:

Was fehlt denn? Es ist eben eine Konsolenanwendung. Aber alle Sprachfeatures funktionieren dort genauso, wie in einer GUI-Anwendung.


Gut, nur wenn ich Programme schreibe, dann brauche ich mehr als die befehle readln und writeln.

Greez Rylon
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: So 14.01.07 03:10 
Ich misch mich dann auch mal ein :)

user profile iconRylon hat folgendes geschrieben:

Zitat:

Ähm, zu jedem Problem gibt es eine Lösung, die eine ist einfach, die andere kompliziert. Wenn du dich fü die komplizierte Lösung entscheidest, ist es nicht der Fehler der Entwicklungsumgebung, wenn du Schwierigkeiten hast, sondern es ist dann dein Problem.


Aus dem Grund habe ich die D-Console als nutzlos abgestempelt, da die scheinbar immer der kompliziertere Weg ist. -> Außerdem, was ist das für eine Antwort? -> Wie ich nun schon bestimtm 3 mal gesagt habe dachte ich console sein all das, was mit der form auch da wäre nur ohne fenster(form). Is es halt nicht. Und da brauch ich dann nicht anfangen den benötigten kram irgendwie nachzubauen.


Naja, wo ist denn genau dein Problem? Du sagst immer nur, dir fehlt alles. Naja, was denn? Wenn du Object Pascal (Delphi) Programmierst, findest du alles. Wenn du eine Klasse hast (was OOP nunmal ausmacht), dann kannst du auch einfach Ereignisse zuweisen, denn dann ist das procedure of object erfüllt. Wenn nicht, dann beschwer dich nicht über die Sprache, denn die könnte das alles.
Und wenn du meinst, mit anderen Sprachen kann man in der 'Standardinstallation' mehr auf der Console machen als ReadLn/WriteLn, dann hast du dich geschnitten. Es sind immer Zusatzbibliotheken notwendig.

user profile iconRylon hat folgendes geschrieben:

Ich finde nicht, das es auf der hand liegt. (Man gehe mal davon aus eine variable der entsprechenden klasse zu deffinieren sei gleichwertig mit "auf-die-form-schmweißen")

Naja, erzeugen muss man die Instanz schon :roll:

user profile iconRylon hat folgendes geschrieben:

Ich habs probiert, aber ich kann mti c++ nicht besondern, wie schon gesagt.

Dann versuch dich doch mit FreePascal. Da hast du auch die Delphi-Sprache, sogar portierbar. Nur eben keine so schöne IDE wie Delphi. Aber Delphi magst du ja eh nicht...

user profile iconRylon hat folgendes geschrieben:
Zitat:

Das ist und war auch nie Ziel von Borland. Borland stellt mit Delphi ein Tool zur Verfügung, dass dahingehend optimiert und entwickelt wurde, um schnellstmöglich Anwendungen für den Benutzermodus in Win32 (bevorzugt GUI) zu entwickeln.


"nie ziel von Borland" -> Kylix ist vom Himmel gefallen?

Kylix wurde gemacht, weil es die Community wollte. Borland selbst hat das dann auch nicht weiter verfolgt, woran sich deren Haltung dazu doch ganz gut erkennen lässt.

user profile iconRylon hat folgendes geschrieben:
Zitat:

Komisch, in unserere Firma entwicklen wir so wohl interne Projekte, als auch Projekte für Kunden mit Delphi. Und es gibt viele kommerzielle Produkte, die mit Delphi entwickelt wurden und werden.


Viele. Also nur als Beispiel: Frag dich mal wieviele Spiele in Delphi geschreiben wurden. Und wieviele Betriebsysteme in Pascal, Programme die auch auf Linux laufen sollen, timimg-relevante software....

Spiele: wenn es ein gutes DirectX-SDK geben würde, sicherlich viel mehr. Aber wenn keiner eins schreiben will... OpenGL ist da (dank DelphiGL) schon weiter, hier gibt es viele gute. Man nehme nur Sascha Willems' Spiele.
Betriebssysteme: siehst ja, was dabei raus kommt. Pufferüberläufe an allen Ecken und Enden.

Und, wie viele Medizinische, Militärische oder sonstwie sicherheitskritische Systeme werden mit C(++/#) geschrieben? Na? Siehste. Da kann man sich einfach keine falsch dereferenzierten Pointer leisten, durch die dann halt mal ein paar Millionen sterben(Wobei sich die 'Pointerei' mit C# erfreulich gebessert hat).

Siehe dazu auch blogs.codegear.com/n...hive/2006/12/21.aspx

Und zum Thema Flaming: bisher hast du immer nur gesagt, Delphi ist Müll. Dabei kam noch nicht ein Beweis, trotzdem bestehst du vehement auf deiner Meinung. Das erfüllt alle Kriterien für Flames.

cu,
Martok

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 14.01.07 12:08 
user profile iconRylon hat folgendes geschrieben:
Zitat:

Ähm, zu jedem Problem gibt es eine Lösung, die eine ist einfach, die andere kompliziert. Wenn du dich fü die komplizierte Lösung entscheidest, ist es nicht der Fehler der Entwicklungsumgebung, wenn du Schwierigkeiten hast, sondern es ist dann dein Problem.


Aus dem Grund habe ich die D-Console als nutzlos abgestempelt, da die scheinbar immer der kompliziertere Weg ist. -> Außerdem, was ist das für eine Antwort? -> Wie ich nun schon bestimtm 3 mal gesagt habe dachte ich console sein all das, was mit der form auch da wäre nur ohne fenster(form). Is es halt nicht. Und da brauch ich dann nicht anfangen den benötigten kram irgendwie nachzubauen.

Es ist dasselbe, du musst nix nachbauen...
Es ist in einer Konsolenanwendung oft sinnvoll es nachzubauen, weil dann die ganzen Units, die eine VCL-Anwendung braucht, nicht benötigt werden. Z.B. wenn ich ein SFX-Modul baue, dann baue ich viel nach, und selbst das Formular habe ich nicht mit der VCL sondern mit Visual Studio gebaut und per Resource eingebunden. Einfach, weil dadurch mein Zip-Sfx-Modul gerade mal 31 KiB groß ist. Und das ließe sich noch weiter optimieren.

Aber zurück zur Übertragung von VCL-Komponenten auf non-VCL...
Du kannst durchaus auch die TTimer-Komponente in der Konsole benutzen. Hier der elegante Weg von user profile iconLuckie:
www.michael-puff.de/...imer_in_Konsole.html
und hier ein einfacherer, dafür aber nicht so eleganter Weg:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
program Project61;

{$APPTYPE CONSOLE}

uses
  Forms,    // für Application.ProcessMessages
  SysUtils, // für Sleep
  ExtCtrls; // für TTimer, und dadrin ist Forms auch eingebunden...

type
  TMyAppEvents = class
    procedure MyTimerOnTimer(Sender: TObject);
  end;

var
  MyAppEvents: TMyAppEvents;
  MyTimer: TTimer;
  TimerCount: Byte;
  UserName: String;

procedure TMyAppEvents.MyTimerOnTimer(Sender: TObject);
begin
  WriteLn('Hallo ' + UserName);
  Inc(TimerCount);
end;

begin
  TimerCount := 0;

  WriteLn('Hallo, dies ist lediglich ein kleiner Test!');
  Write('Wie ist dein Name: ');
  ReadLn(UserName);
  WriteLn('');

  MyAppEvents := TMyAppEvents.Create;
  MyTimer := TTimer.Create(nil);
  MyTimer.Interval := 1000;
  MyTimer.OnTimer := MyAppEvents.MyTimerOnTimer;
  MyTimer.Enabled := True;
  while TimerCount < 10 do
  begin
    Application.ProcessMessages;
    Sleep(100);
  end;
  // EDIT: Den Timer natürlich auch freigeben: :oops:, danke <a class="postlink userprofile" href="profile.php?mode=viewprofile&u=IngoD7&forcestr=1"><img class="profileicon crispscaling" alt="user profile icon" src="./graphics/bbcode/icon_profile_small.png" border="0" />IngoD7</a>...
  MyTimer.Free;
  MyAppEvents.Free;
end.

user profile iconRylon hat folgendes geschrieben:
Zitat:

Kann ich gerne drüber nachdenken und dann?


Ja, was passiert?

Naja, es funktioniert. Das ist natürlich passiert. Was sollte schon bei dem sehr einfachen ReadLn Befehl sonst passieren? :lol:
In meinem Beispiel für TTimer hab ich ReadLn ja auch benutzt...


Zuletzt bearbeitet von jaenicke am So 14.01.07 19:21, insgesamt 1-mal bearbeitet
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 14.01.07 13:30 
Rylon hat folgendes geschrieben:

Zitat:

Mir hat die Funktion noch nie einen String kaputt gemacht. Wäre man schön, wenn du ein konkretes Beispiel zeigen würdest.


Sorry, klingt jetzt nach einer faulen Ausrede, aber ich hab meinen kompletten Versuche mit der Console gelöscht -> Mangels Erfolg. Aber der Code war irgendwo aus dem Forum, wein wenig abgeädert

Nope, das was du sagst klingt wie eine Aurede. Du wirst dich doch sicherlich noch an den Strig erinnrn können, der angeblich von dieser Funktion zerstört wurde.

Zitat:
Aus dem Grund habe ich die D-Console als nutzlos abgestempelt, da die scheinbar immer der kompliziertere Weg ist. -> Außerdem, was ist das für eine Antwort? -> Wie ich nun schon bestimtm 3 mal gesagt habe dachte ich console sein all das, was mit der form auch da wäre nur ohne fenster(form). Is es halt nicht. Und da brauch ich dann nicht anfangen den benötigten kram irgendwie nachzubauen.

Es gibt keine Delphi-Konsole. Die Konsole hat rein gar nichts mit der Entwicklungsumgebung zu tun. Die Konsole ist eine Windows Umgebung für Programme ohne GUI, die vom Windows Kommandointerpreter zur Verfügung gestellt wird. Delphi stellt nur mehr oder weniger Funktionen bereit, um Anwendungen für die Konsole schreiben zu können. Es kann durchaus sein, dass andere Sprachen in dieser Richtung schon mehr Unterstützung mitbringen, aber all das kann man auch mit Delphi nachrüsten. Ich kann auch mit einem Trabbi die Ralley Paris - dakar fahren, allerdings werde ich wohl etwas mehr umbauen müssen, als bei einem Jeep.

Zitat:

Zitat:

Nein habe ih noch nicht. Aber dass es einfacher ist eine Komponente auf ein Formular zu ziehen, als alles selber zu erstellen im Code, liegt wohl auf der Hand.


Ich finde nicht, das es auf der hand liegt. (Man gehe mal davon aus eine variable der entsprechenden klasse zu deffinieren sei gleichwertig mit "auf-die-form-schmweißen")

Wenn für dich das nicht auf der Hand liegt, dann kannst du noch nicht allzuviel mit Delphi gemacht haben. Hast du je eine Komponente dynamsich erzeugt, wenn du die Komponente auf die Form gezogen hast? Wo hast du die Eigenschaften der Komponte festgelegt? Im Code zur Laufzeit oder zur Designzeit im ObjektInspektor? Auf was kannst du eine Komponente ziehen, wenn du keine Form hast, sondern eine Konsolenanwendung schreibst udn wo ist der Objektinspektor für eine Konsoleanwendung? Also liegt es wohl doch auf der Hand.

Zitat:

Zitat:

Ich schiebe hier keine große Nummer und ich bin nicht derjenige für den Delphi das Maß aller Dinge ist. Ich wähle meine Werkzeuge mit denen ich die mir gestellte Aufgabe am effizientesten lösen kann. Dazu gehört für mich auch C/C++, Java und PHP.


Schön und lobsam, das kann ich nich ;-) -> Aber warum dann der Aufstand?

Nicht ihc mache hier den Aufstand, sondern du. Ich versuche nur mit Argumenten deine Meinung zu widerlegen. Während du nur mit holen Phrasen kommst und noch auf kein Argument von mir eingegangen bist:
- Wie sieht der String au, de angeblich durch besagte Funktion kaputt gemacht wurde?
- Was fehlt dir in der Konsolenanwendung, was du angeblich in einer GUI Anwendung hast?

Zitat:

Zitat:

Warum benutzt du es dann? Da du selber sagst, dass du nur ein Hobbyprogrammierer bist, gibt es wohl auch keinen Arbeitgeber, der dir irgendwelche Vorgaben macht. Also, warum nutzt du dann nicht das Werkzeug, die deiner Meinung nach besser für dich geeignet sind und eventeull noch kostenlos zu erhalten sind?


Ich habs probiert, aber ich kann mti c++ nicht besondern, wie schon gesagt.

Dann guck dir mal Java oder C# an.

Zitat:
Zitat:

Wo habe ich bitte sehr geflammt?


-> siehe Hier
Zitat:

Das einzige was crap ist, ist der Stuss den du hier erzählst. Entschuldigug für die harten Worte, aber das ist nun mal so. Bevor du hier so ein Mist erzählst, solltest du dich erstmal etwas damit auseinandersetzen.

Guck mal nach, wer das Wort crap zu erst in die Diskussion eingebracht hat und wer Delphi als Müll bezeichnet hat, nur weil er wohl damit nicht klar kommt und anscheinend völlig flasche Vorstellungen hat, was Delphi, seiner Meinung nach, können müsste.

Zitat:

Weil ich die Sprache toll finde!

OK, für Delphi gibt es nicht so viele verfügbare IDEs wie für C/C++, aber du könntest dir mal FreePascal angucken, da hast du dann auch die Portierbarkeit nach Linux.

Zitat:

Zitat:

Das ist und war auch nie Ziel von Borland. Borland stellt mit Delphi ein Tool zur Verfügung, dass dahingehend optimiert und entwickelt wurde, um schnellstmöglich Anwendungen für den Benutzermodus in Win32 (bevorzugt GUI) zu entwickeln.


"nie ziel von Borland" -> Kylix ist vom Himmel gefallen?

Jepp, das trifft es ganz gut. Borland hat auf Drängen der Community Kylix entwicklet, aber recht schnell gesehen, dass es eine Fehlentscheidung war und das Projekt Kylix wieder eingestellt.

Zitat:
Viele. Also nur als Beispiel: Frag dich mal wieviele Spiele in Delphi geschreiben wurden. Und wieviele Betriebsysteme in Pascal, Programme die auch auf Linux laufen sollen, timimg-relevante software....

Das mag sein, dass es nicht allzuviele "Delphi"-Spiele gibt. Aber wie viele Datenbankanwendungen gibt es in Java oder C? Was ich sagen will ist, wenn ich mir nur Bereiche raussuche, in dem die jeweilige Sprache ihre Stärken hat, dann brauche ich mich nicht zu wundern, wenn die Mehrzahl der Programme für diesen Bereich in dieser Sprache geschrieben sind. Und "timing-relevante" Software wirst du unter Windows gar nicht finden, da Windows kein Echtzeitbetriebsystem ist, sondern auf Nachrichten und Ereignisse beruht.

Zitat:

Gut, nur wenn ich Programme schreibe, dann brauche ich mehr als die befehle readln und writeln.

Und wieder nur eine hole Phrase. Nenn doch endlich mal die Dinge beim Namen, dir dir für eine Konsolenanwendung angeblich fehlen. Die Konsole für Windows ist eben nur dafür ausgelegt Text auszugeben und einzugeben. Was soll dir da Delphi noch mehr bieten?
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.