Diverse Anfängerfragen (gemischte Themen)

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Adromir
Beiträge: 37
Registriert: Sa 28. Apr 2018, 04:09

Diverse Anfängerfragen (gemischte Themen)

Beitrag von Adromir »

Sooo ich hab mich schon durch diverse Seiten gewühlt und Tutorials gelesen, dennoch habe ich ein paar Fragen, bei denen ich noch etwas Hänge. Ich wollte jetzt auch nicht 20 Threads aufmachen, deswegen fasse ich sie hier mal alle, thematisch geordnet zusammen. Ich entschuldige mich, falls falls manche Fragen zu trivial sind, aber manchmal steht einem ja doch das eigene Vorwissen im Weg und man ist sich nicht sicher, ob man etwas so machen kann, wie gewöhnt bzw. ob man was wirklich richtig Verstanden hat.

Lazarus IDE
1. Wenn ich bei manchen Komponenten im Formular die Caption ändere, verändert Lazarus manchmal auch den Namen der Komponente. Lässt sich das irgendwie verhindern?

Arrays
Wenn ich das richtig verstanden habe, ist das arbeiten mit Arrays nicht ganz so "einfach" wie ich es z.B. bei php gewohnt bin. Ich hab zwar schon gesehen, daß es dynamische Arrays gibt (wobei ich durch die Deklaration noch nicht so ganz durchgestiegen bin, besonders bei Mehrdimensionalen arrays) und habe auch schon Verstanden, das FPC keine gemischten Werte zulässt. Also wenn ich etwas vergleichbares haben wollte, käme dem ein Array of records am nähesten.. Geht das überhaupt? Macht das letztendlich Sinn?

Deklarationen & Vererbungen & Code Einbindung
In PHP habe ich mir angewöhnt, thematisch ähnliche Codeabschnitte zur Übersichtlichkeit in separate Dateien auszulagern. Dazu sind ja die Units da. Aber wo binde ich diese dann am besten ein? In der Hauptdatei (da scheint ja irgendwie nicht so viel zu passieren) oder in der Formular Unit, in der die Funktionen/Prozeduren aufgerufen werden? (gibt es da was zu beachten?) . Ebenso für globale Variabeln? Wo deklariere ich diese am besten?

Positionierung von Elementen
Werden Komponenten in einem Formular nur "absolut" positioniert, oder gibt es auch Möglichkeiten zur "relativen" Positionierung also sowas wie (10px neben dem vorherigen Element)?

Dateipfade
Wenn ich eine Datei ändern/laden möchte.. Also z.B. eine Ini-Datei laden möchte, wie müssen die Pfade geformt sein? Müssen das immer absolute Pfade sein (also z.B. "C:\meinprogram\konfiguration\meine.ini"), oder können die Pfade auch relativ vom Programm sein ("\konfiguration\meine.ini")

Ich glaube, daß war es fürs erste und schon mal ein großes Dankeschön für alle Mühen

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Diverse Anfängerfragen (gemischte Themen)

Beitrag von Socke »

Herzlich Willkommen im Forum!
Adromir hat geschrieben:Lazarus IDE
1. Wenn ich bei manchen Komponenten im Formular die Caption ändere, verändert Lazarus manchmal auch den Namen der Komponente. Lässt sich das irgendwie verhindern?

Es gibt die Eigenschaften Caption und Name; änderst du Name und hast bisher noch nicht Caption verändert, wird auch Caption geändert. Andersherum passiert das nicht.

Adromir hat geschrieben:Arrays
Wenn ich das richtig verstanden habe, ist das arbeiten mit Arrays nicht ganz so "einfach" wie ich es z.B. bei php gewohnt bin. Ich hab zwar schon gesehen, daß es dynamische Arrays gibt (wobei ich durch die Deklaration noch nicht so ganz durchgestiegen bin, besonders bei Mehrdimensionalen arrays) und habe auch schon Verstanden, das FPC keine gemischten Werte zulässt. Also wenn ich etwas vergleichbares haben wollte, käme dem ein Array of records am nähesten.. Geht das überhaupt? Macht das letztendlich Sinn?

Meinst du verschiedene Datentypen als Index? Das funktioniert nicht; Pascal erlaubt hier ausschließlich ordinale Datentypen (div. Integer, Mengen, Char ...).
Verschiedene Datentypen als Array-Elemente ergeben nur in wenigen Fällen Sinn. Versuche sie zu vermeiden, soweit möglich. Wenn du diese Daten an eine Prozedur/Funktion/Methode übergeben musst, kannst du array of const verwenden. Einen solchen Array kannst du aber nicht in Variablen zwischenspeichern. Alternativ kannst du einen Record mit dem Datentyp Variant erstellen.

Adromir hat geschrieben:Deklarationen & Vererbungen & Code Einbindung
In PHP habe ich mir angewöhnt, thematisch ähnliche Codeabschnitte zur Übersichtlichkeit in separate Dateien auszulagern. Dazu sind ja die Units da. Aber wo binde ich diese dann am besten ein? In der Hauptdatei (da scheint ja irgendwie nicht so viel zu passieren) oder in der Formular Unit, in der die Funktionen/Prozeduren aufgerufen werden? (gibt es da was zu beachten?) . Ebenso für globale Variabeln? Wo deklariere ich diese am besten?

Globale Variablen deklarierst du am besten gar nicht ;-) Eine Unit musst du in jeder anderen Unit einbinden, in der du diese verwendest. Jede Unit steht für sich, es sind keine Include-Dateien, die zu einem zusammenhängenden Text zusammengesetzt werden. Falls du tatsächlich globale Variablen brauchst, deklarierst du diese kontexbezogen in der dazugehörigen Unit.

Adromir hat geschrieben:Positionierung von Elementen
Werden Komponenten in einem Formular nur "absolut" positioniert, oder gibt es auch Möglichkeiten zur "relativen" Positionierung also sowas wie (10px neben dem vorherigen Element)?

Wähle im Objektinspektor die Eigenschaft Anchors aus. Darüber kannst du den Editor starten und das alles einstellen.

Adromir hat geschrieben:Dateipfade
Wenn ich eine Datei ändern/laden möchte.. Also z.B. eine Ini-Datei laden möchte, wie müssen die Pfade geformt sein? Müssen das immer absolute Pfade sein (also z.B. "C:\meinprogram\konfiguration\meine.ini"), oder können die Pfade auch relativ vom Programm sein ("\konfiguration\meine.ini")

Siehe GetAppConfigDir und GetAppConfigFile
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Adromir
Beiträge: 37
Registriert: Sa 28. Apr 2018, 04:09

Re: Diverse Anfängerfragen (gemischte Themen)

Beitrag von Adromir »

Erstmal ein ganz großes Danke!! Da hast du mir echt schon weiter geholfen. Zu GetAppConfigDir und GetAppConfigFile hab ich noch ne Nachfrage.. Wie speichere ich da Konfigurationen? Das ist mir noch nicht ganz klar. Zudem.. Mein Programm sollte "portabel" sein, also nix in irgendwelche Systemordner schreiben. Das wäre mir schon wichtig, würde da eigentlich lieber mit INI Dateien arbeiten.

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

Re: Diverse Anfängerfragen (gemischte Themen)

Beitrag von Mathias »

Wie speichere ich da Konfigurationen?
Wie du schon schreibst, in eine INI-Datei. Man könnte auch XML nehmen, aber für den Anfang ist INI sicher die beste Wahl.

Hier hat es ein kleines Beispiel wie dies geht. Wen etwas unklar ist, einfach fragen.
http://wiki.freepascal.org/Using_INI_Files/de
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Warf
Beiträge: 1907
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Diverse Anfängerfragen (gemischte Themen)

Beitrag von Warf »

Ich hatte mal angefangen ein Pascal Tutorial zu schreiben, habe aber irgendwann keine Zeit mehr gefunden weiter zu machen. Aber alle grundlegenden imperativen Pascal features sind schon drin. Nur der komplette OOP Teil fehlt noch (was ja mit das wichtigste ist).
Trozdem kannst du mal reinschauen, denn grade wenn es um Sprachfeatures geht (die nichts mit OOP zu tun haben) sollte da einiges erklärt sein (und auch viele Antworten zu deinen Fragen enthalten):
Link

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

Re: Diverse Anfängerfragen (gemischte Themen)

Beitrag von Mathias »

Im Wiki ist auch ein deutsches Tutorial in Arbeit: http://wiki.freepascal.org/Object_Pascal_Tutorial/de
Die englische Version scheint fertig zu sein.

habe aber irgendwann keine Zeit mehr gefunden weiter zu machen.
Ich kenne das Problem, ein Tutorial frisst sehr viel Zeit.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten