ShowMessage('Hello, World!');

Hier könnt ihr euch vorstellen, wie lange ihr programmiert, wie ihr dazu gekommen seit und was ihr sonst noch so macht.
Benutzeravatar
Niesi
Lazarusforum e. V.
Beiträge: 331
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!');

Beitrag von Niesi »

Horst42 hat geschrieben:
Di 24. Jan 2023, 15:58
Guten Tag!

Bin neu hier ...
Herzlich Willkommen ... :lol:
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

hum4n0id3
Beiträge: 301
Registriert: So 5. Mai 2019, 15:23

Re: ShowMessage('Hello, World!');

Beitrag von hum4n0id3 »

Niesi hat geschrieben:
So 29. Jan 2023, 05:56
Das sehe ich wie Mathias - ist allerdings auch eine "Geschmacksfrage", da kannste nicht drüber streiten.
Und eine Frage, wie Du Dir den Desktop von Lazarus einrichtest. Da geht sehr viel ...
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 :)

Benutzeravatar
Horst42
Beiträge: 3
Registriert: Di 24. Jan 2023, 15:46

Re: ShowMessage('Hello, World!');

Beitrag von Horst42 »

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. :D

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.

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: ShowMessage('Hello, World!');

Beitrag von theo »

Horst42 hat geschrieben:
So 29. Jan 2023, 11:46
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)? :?
Kann sein, dass das nur geht, wenn du zitiert wurdest.
Horst42 hat geschrieben:
So 29. Jan 2023, 11:46
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.
Wie meinst denn du das? https://wiki.freepascal.org/Pointer/de

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: ShowMessage('Hello, World!');

Beitrag von six1 »

Hi,
man kann in Pascal auch Pointer übergeben. Die Frage ist: Warum sollte man das ohne Not tun? :lol: :lol: :lol:
Gruß, Michael

Benutzeravatar
Niesi
Lazarusforum e. V.
Beiträge: 331
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!');

Beitrag von Niesi »

Horst42 hat geschrieben:
So 29. Jan 2023, 11:46

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.
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 ...

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: ShowMessage('Hello, World!');

Beitrag von theo »

Niesi hat geschrieben:
So 29. Jan 2023, 12:21
Also, ganz ehrlich, ich vermisse Pointer gar nicht - ich benutze sie nicht. Das ist aber auch in Pascal durchaus möglich ...
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;       

Benutzeravatar
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!');

Beitrag von Winni »

Horst42 hat geschrieben:
So 29. Jan 2023, 11:46
Guten Morgen zusammen,

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.

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);
Hier ist var s; string in der Begrifflichkeit der Geschweifte-Klammer-Menschen nix anderes als ein Pointer.

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

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: ShowMessage('Hello, World!');

Beitrag von theo »

Horst42 hat geschrieben:
So 29. Jan 2023, 11:46
Wenn man vom Borland C++-Builder zu Lazarus kommt, dann regt einen das dauernde Schreiben von "begin" und "end" schon nach wenigen Minuten auf.
Abhilfe: Schreibe "b" in den Editor und Drücke CTRL+J.

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: ShowMessage('Hello, World!');

Beitrag von Mathias »

Abhilfe: Schreibe "b" in den Editor und Drücke CTRL+J.
Kannte ich noch nicht, danke.
Also, ganz ehrlich, ich vermisse Pointer gar nicht - ich benutze sie nicht. Das ist aber auch in Pascal durchaus möglich ...
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 @.
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.
Sonst kommt es immer wieder zu Konflikten, wenn die Logik von C oder C++ auf Pascal übertragen wird.
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.
Kürzlich habe ich

Code: Alles auswählen

procedure Tdot.HandleEvent(e: PSDL_Event);
anstelle von

Code: Alles auswählen

procedure Tdot.HandleEvent(var e: TSDL_Event);
genommen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: ShowMessage('Hello, World!');

Beitrag von theo »

Mathias hat geschrieben:
So 29. Jan 2023, 13:35
Abhilfe: Schreibe "b" in den Editor und Drücke CTRL+J.
Kannte ich noch nicht, danke.
Das sind keine Geheimnisse, das kann man alles nachlesen:
https://wiki.freepascal.org/Lazarus_IDE_Tools/de

Benutzeravatar
Horst42
Beiträge: 3
Registriert: Di 24. Jan 2023, 15:46

Re: ShowMessage('Hello, World!');

Beitrag von Horst42 »

theo hat geschrieben:
So 29. Jan 2023, 12:08
Wie meinst denn du das? https://wiki.freepascal.org/Pointer/de
Oh, es gibt also noch etwas zu lernen. Vielleicht doch mal den alten Wirth aus der Mottenkiste hervorkramen. :lol:

Benutzeravatar
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!');

Beitrag von Winni »

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

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: ShowMessage('Hello, World!');

Beitrag von Mathias »

PS.: Eine Unsitte von Wirth ist, die Schleifen-Variablen i und j zu nennen.
Ich verwende auch i & j bei 2-Arrays um durchzuzählen bei 3D kommt noch das k hinzu.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

TSchnuckenbock
Beiträge: 71
Registriert: Do 20. Jul 2017, 23:47
OS, Lazarus, FPC: Win7 und Win10
CPU-Target: xxBit
Wohnort: Südheide (Schnuckenland)

Re: ShowMessage('Hello, World!');

Beitrag von TSchnuckenbock »

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. :lol:
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.

Antworten