Herzlich Willkommen ...
ShowMessage('Hello, World!');
- Niesi
- Lazarusforum e. V.
- Beiträge: 338
- Registriert: So 26. Jun 2016, 19:44
- OS, Lazarus, FPC: Linux Mint Cinnamon (Windows wenn notwendig), Lazarus 3.0 FPC 3.3.1
Re: ShowMessage('Hello, World!');
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...
Re: ShowMessage('Hello, World!');
Ich wollte mich darüber auch gar nicht streiten. Und ich weiß, wo ich mich befinde und wie es mit der Meinung entsprechend aussieht. Das ist in einem Python, C# oder PHP-Forum nicht anders. Ich arbeite am liebsten mit PHP, und sehe es so das da draußen noch viele andere sehr schicke Dinge, Entwicklungstechnischer Natur, existieren.
Hallo Horst
Re: ShowMessage('Hello, World!');
Guten Morgen zusammen,
vielen Dank für die nette Begrüßung. Merkwürdigerweise habe ich erst soben die allererste Benachrichtigungs-E-Mail erhalten, dass jemand geantwortet hat. Klemmt es hier im Forum beim E-Mail-Versand oder bei mir (Spam-Ordner ist aber leer)?
Wenn man vom Borland C++-Builder zu Lazarus kommt, dann regt einen das dauernde Schreiben von "begin" und "end" schon nach wenigen Minuten auf. Und wer weiß wie viele Minuten ich schon kopfkratzend vor dem Code gesessen und mich gefragt habe, was zum Teufel der Compiler jetzt wieder zu meckern hat, obwohl doch alles völlig korrekt aussah, bis ich dann irgendwann erkannte, dass ich bei der Zuweisung wieder den Doppelpunkt beim "foo := bar" vergessen hatte.
Was ich vermisse sind Pointer. Jetzt muss ich mich mit diesem CallBack-Mechanismus auseinandersetzen, wo ich vorher in C++ einfach ein paar Pointer übergeben konnte... Aber nun ja, auch das wird sich finden.
Ansonsten ist das schon echt phantastisch, dass ich einfach hier und dort compilieren kann und ein identisch funktionierendes Executable erhalte.
vielen Dank für die nette Begrüßung. Merkwürdigerweise habe ich erst soben die allererste Benachrichtigungs-E-Mail erhalten, dass jemand geantwortet hat. Klemmt es hier im Forum beim E-Mail-Versand oder bei mir (Spam-Ordner ist aber leer)?
Wenn man vom Borland C++-Builder zu Lazarus kommt, dann regt einen das dauernde Schreiben von "begin" und "end" schon nach wenigen Minuten auf. Und wer weiß wie viele Minuten ich schon kopfkratzend vor dem Code gesessen und mich gefragt habe, was zum Teufel der Compiler jetzt wieder zu meckern hat, obwohl doch alles völlig korrekt aussah, bis ich dann irgendwann erkannte, dass ich bei der Zuweisung wieder den Doppelpunkt beim "foo := bar" vergessen hatte.
Was ich vermisse sind Pointer. Jetzt muss ich mich mit diesem CallBack-Mechanismus auseinandersetzen, wo ich vorher in C++ einfach ein paar Pointer übergeben konnte... Aber nun ja, auch das wird sich finden.
Ansonsten ist das schon echt phantastisch, dass ich einfach hier und dort compilieren kann und ein identisch funktionierendes Executable erhalte.
Re: ShowMessage('Hello, World!');
Kann sein, dass das nur geht, wenn du zitiert wurdest.
Wie meinst denn du das? https://wiki.freepascal.org/Pointer/de
Re: ShowMessage('Hello, World!');
Hi,
man kann in Pascal auch Pointer übergeben. Die Frage ist: Warum sollte man das ohne Not tun?
man kann in Pascal auch Pointer übergeben. Die Frage ist: Warum sollte man das ohne Not tun?
Gruß, Michael
- Niesi
- Lazarusforum e. V.
- Beiträge: 338
- Registriert: So 26. Jun 2016, 19:44
- OS, Lazarus, FPC: Linux Mint Cinnamon (Windows wenn notwendig), Lazarus 3.0 FPC 3.3.1
Re: ShowMessage('Hello, World!');
Also, ganz ehrlich, ich vermisse Pointer gar nicht - ich benutze sie nicht. Das ist aber auch in Pascal durchaus möglich ...
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...
Re: ShowMessage('Hello, World!');
Pointer sind immer da, sie fallen nur nicht so auf.
Sobald du im objfpc Modus im Code ein Ereignis einhängen willst, benutzt du z.B. den Pointer auf den Event-Handler:
Code: Alles auswählen
Button1.OnClick:=@Button1Click;
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: ShowMessage('Hello, World!');
Hi!
Bei dem Design von Pascal hat N. Wirth versucht, die Pointer soweit möglich in der Syntax zu verstecken und nur da zu Einsatz kommen zu lassen, wo sie wirklich gebraucht werden
Beispiel:
Code: Alles auswählen
Procedure Irgendwas (var s : string);
Ich empfehle aber ausdrücklich, sich von der Gedankenwelt "alles ist ein Pointer" zu trennen, und sich mit der Logik von Pascal anzufreunden. Sonst kommt es immer wieder zu Konflikten, wenn die Logik von C oder C++ auf Pascal übertragen wird.
Pascal ist eine der ersten Hochsprachen, während C ja nur ein besserer Assembler ist.
Winni
-
- Beiträge: 6210
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: ShowMessage('Hello, World!');
Kannte ich noch nicht, danke.Abhilfe: Schreibe "b" in den Editor und Drücke CTRL+J.
Das stimmt in reinem Pascal kann man auf die ^ verzichten. Aber sobald man Libs von C anspricht geht es kaum ohne, aber dann reicht meistens das @.Also, ganz ehrlich, ich vermisse Pointer gar nicht - ich benutze sie nicht. Das ist aber auch in Pascal durchaus möglich ...
Seit es "class" und dynamischen Arrays gibt, hat man kaum mehr Kontakt mit den Pointern. Früher mit "object" hatte man noch viele Pointer gebraucht, wen es dynamisch sein sollte. Gutes Beispiel Free-Vision.
Das passiert mir auch immer wieder, wen man C-Libs braucht und es bei einem C-Programm abguckt, wie sie es da machen. Da einem ab und zu das kleine "var" in Proceduren unter.Sonst kommt es immer wieder zu Konflikten, wenn die Logik von C oder C++ auf Pascal übertragen wird.
Kürzlich habe ich
Code: Alles auswählen
procedure Tdot.HandleEvent(e: PSDL_Event);
Code: Alles auswählen
procedure Tdot.HandleEvent(var e: TSDL_Event);
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: ShowMessage('Hello, World!');
Das sind keine Geheimnisse, das kann man alles nachlesen:
https://wiki.freepascal.org/Lazarus_IDE_Tools/de
Re: ShowMessage('Hello, World!');
Oh, es gibt also noch etwas zu lernen. Vielleicht doch mal den alten Wirth aus der Mottenkiste hervorkramen.theo hat geschrieben: ↑So 29. Jan 2023, 12:08Wie meinst denn du das? https://wiki.freepascal.org/Pointer/de
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: ShowMessage('Hello, World!');
Hi!
Das Standardwerk von Wirth ist
"Algorithmen und Datenstrukturen"
Hab ich im Netz auch schon als (illegale) PDF gesehen.
Winni
PS.: Eine Unsitte von Wirth ist, die Schleifen-Variablen i und j zu nennen.
Das provoziert Verwechslungen.
Besonders zu Apple ][ Zeiten, wo i und j sich in genau einem Pixel unterschieden ...
Winni
Das Standardwerk von Wirth ist
"Algorithmen und Datenstrukturen"
Hab ich im Netz auch schon als (illegale) PDF gesehen.
Winni
PS.: Eine Unsitte von Wirth ist, die Schleifen-Variablen i und j zu nennen.
Das provoziert Verwechslungen.
Besonders zu Apple ][ Zeiten, wo i und j sich in genau einem Pixel unterschieden ...
Winni
-
- Beiträge: 6210
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: ShowMessage('Hello, World!');
Ich verwende auch i & j bei 2-Arrays um durchzuzählen bei 3D kommt noch das k hinzu.PS.: Eine Unsitte von Wirth ist, die Schleifen-Variablen i und j zu nennen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 72
- Registriert: Do 20. Jul 2017, 23:47
- OS, Lazarus, FPC: Win7 und Win10
- CPU-Target: xxBit
- Wohnort: Südheide (Schnuckenland)
Re: ShowMessage('Hello, World!');
Moin Horst,
erstmal willkommen in der Lazarus/Pascal-Welt.
Wie schon geschrieben wurde, würde ich auch empfehlen, bei Pascal Pointer nur sparsam einzusetzen.
Lazarus/Pascal/Delphi bieten viele schöne und gut zu handhabende Datentypen wie z.B. Arrays.
Ich betreue ein Uralt-Projekt, dessen Anfänge irgendwo im Turbo-Pascal-Zeitalter liegen. Der damalige Initiator des Projektes setzte an enigen Stellen Pointer ein, um durch mit GetMem angeforderte Speicherbereiche zu navigieren.
Damals war das eine gute und notwendige Lösung, heute ein Graus. Speicher und Geschwindigkeit sind oftmals keine Dinge mehr, auf die man großartig Rücksicht nehmen muß. So sind wenigstens meine (Berufs)Erfahrungen mit 20 Jahren Delphi.
Irgendwann stolperte ich vor langer Zeit mal über ein Lazarus......seitdem verfolge ich es immer ein bischen und habe immer ein paar Lazarus-Versionen (FPCDeluxe sei Dank) auf meinem Rechner.
Und auch ich nehme i, j und k als Schleife-Variablen.
Aber auch p und q oder manchmal auch was ganz anderes.
Gelernt hatte ich übrigens auf Commodore CBM Basic und als es den C64 gab, hatte ich auch mal was mit irgendeinem Pascal gemacht, so meine Erinnerung. Könnte aber auch ein Pascal auf einem Apple-II-Nachbau von unserem Lehrer gewesen sein. Lang ist's her (über 35 Jahre würde ich sagen....).
Letztens hatte ich mal ein Linux (OpenSuse) in einer VM installiert und mir ein Lazarus gezogen.....das funktionierte. Das ist alles schon echt 'ne nette Sache, wie sich Lazarus in den vielen Jahren entwickelt hat.
Aus dem Bauch raus würde ich übrigens behaupten, daß begin und end da automatisch immer stehen, wenn man eine Methode anfängt....kann aber auch eine Delphi-Auto-Vervollständigung sein...oder vielleicht schreib ich auch selber begin und end....ich weiß es schlicht nicht. Dafür geht es zu schnell.....
Gruß und viel Spaß
aus dem Land der Schnucken.
erstmal willkommen in der Lazarus/Pascal-Welt.
Wie schon geschrieben wurde, würde ich auch empfehlen, bei Pascal Pointer nur sparsam einzusetzen.
Lazarus/Pascal/Delphi bieten viele schöne und gut zu handhabende Datentypen wie z.B. Arrays.
Ich betreue ein Uralt-Projekt, dessen Anfänge irgendwo im Turbo-Pascal-Zeitalter liegen. Der damalige Initiator des Projektes setzte an enigen Stellen Pointer ein, um durch mit GetMem angeforderte Speicherbereiche zu navigieren.
Damals war das eine gute und notwendige Lösung, heute ein Graus. Speicher und Geschwindigkeit sind oftmals keine Dinge mehr, auf die man großartig Rücksicht nehmen muß. So sind wenigstens meine (Berufs)Erfahrungen mit 20 Jahren Delphi.
Irgendwann stolperte ich vor langer Zeit mal über ein Lazarus......seitdem verfolge ich es immer ein bischen und habe immer ein paar Lazarus-Versionen (FPCDeluxe sei Dank) auf meinem Rechner.
Und auch ich nehme i, j und k als Schleife-Variablen.
Aber auch p und q oder manchmal auch was ganz anderes.
Gelernt hatte ich übrigens auf Commodore CBM Basic und als es den C64 gab, hatte ich auch mal was mit irgendeinem Pascal gemacht, so meine Erinnerung. Könnte aber auch ein Pascal auf einem Apple-II-Nachbau von unserem Lehrer gewesen sein. Lang ist's her (über 35 Jahre würde ich sagen....).
Letztens hatte ich mal ein Linux (OpenSuse) in einer VM installiert und mir ein Lazarus gezogen.....das funktionierte. Das ist alles schon echt 'ne nette Sache, wie sich Lazarus in den vielen Jahren entwickelt hat.
Aus dem Bauch raus würde ich übrigens behaupten, daß begin und end da automatisch immer stehen, wenn man eine Methode anfängt....kann aber auch eine Delphi-Auto-Vervollständigung sein...oder vielleicht schreib ich auch selber begin und end....ich weiß es schlicht nicht. Dafür geht es zu schnell.....
Gruß und viel Spaß
aus dem Land der Schnucken.