Theme anlegen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
KemalO
Beiträge: 3
Registriert: Mo 10. Okt 2022, 15:47

Theme anlegen

Beitrag von KemalO »

Hallo Zusammen,

erst einmal outen um nicht gleich gesteinigt zu werden - bin kein Programmierer, kenne mich etwas mit PHP, HTML und so ein Zeugs aus.
Daher werden meine Begrifflichkeiten nicht immer fachlich korrekt sein. Danke fürs Verständnis :)

Beschäftige mich etwas mit Lazarus auf Windows und gefällt mir.
Programmiere gerade mit PascalScada um ein Modbus-Slave auszulesen.
Funktioniert bisher... Aber ich habe mal eine grundlegende andere Frage zum layouten der Formulare. :mrgreen:

So sehr ich es auch liebe das ich schnell Komponenten wie TButton in ein Form ziehen zu können, Raster fangen ....
so sehr stört es mich die Standardgröße. Irgendwie alles sehr klein. Als ob alles für eine Auflösung für 1024 x 768 vorgesehen ist. Klar, dafür soll Lazarus auch laufen, aber naja, ich habe 1900 x 1080 und dann sind alle Felder, Buttons Grids etc. sehr klein. Ich hoffe Ihr versteht was ich meine.

Jetzt kann man jeden Button anfassen, Schriftgröße, Größe etc. ändern. Aber dann ist man ggf. sehr lange beschäftigt wenn man mal 40 Fomulare macht. Und dann sehen alle Buttons zum Schluss anders aus weil man bei Formular 30 nicht mehr weis ob es 10 oder 12 Pixel waren. Oder mehrere sitzen am Projekt und der eine mag Gemüsebrühe und der andere Fleischbrühe und jedes Formular sieht dann ganz anders aus. Ich habe schon mit drei Formularen Problem das ich die Buttons gleich groß haben will. Dann schaue ich mir dort Höhe und Breite an.... Das Menü würde ich gerne auch größer machen, wobei das fast in jedem Programm die größe hat.
So schnell ich auch mit Lazarus bin etwas aufzubauen, umso länger scheint es mir das ich mich danach mit dem layouten beschäftige.

Ich würde mir wünschen das man ähnlich wie bei HTML/CSS eine css-Source-Datei hat und darauf die Buttons etc. zugreifen,
oder ich von Anfang an definieren kann wie die Buttons aussehen sollen. Also wenn ich auf TButton klicke dann ist er drei mal so groß wie jetzt und die Schrift auch. Am liebsten Prozentual zum Bildschirm gerne auch fest...
Größe/Schriftgröße, Schriftart.... Das gleich auch für Hintergrund usw.
Und alles skaliert sich, wenn das Programm verkleinert wird... Also Responsive sozusagen.

Ich kann mir auch vorstellen (so ist mein aktueller Ansatz) ersteinmal schnell schnell programmieren, und danach Layout global anpassen. Oder mein Monitor kann irgendwann 3000x2000 und dann ist wieder alles sehr klein und muss wieder 30 Formulare anpassen. Das erinnert mich an einzelne HTML-Seiten. Boah hat mich das damals genervt....Vielleicht kennt das jemand, bei mir ist es jetzt 25 Jahre her. (Ups wieder geoutet. Bin etwas älter).

Irgendwie hab ich jetzt keinen Ansatz gefunden wo ich mich weiter zu dem Thema einlesen kann. Habt Ihr für mich eine Stütze.
Keine Ahnung was bei Lazarus hier jetzt möglich ist - Komponentenbibliothek für ein Projekt definieren - Skalieren - auf eine .... verweisen.
Freue mich über Euer Feedback. Ich hoffe ich konnte mein Problem etwas bildlich darstellen.

P.S.: Das hat keine Prio für mich, will aber nicht Lazarus irgendwann den Rücken kehren weil das mich dann ggf. doch zu sehr stört.

Grüße
Kemal
###
Lazarus seit 2022 - Also erwartet nicht zu viel von mir :-)
Version: Naja, 2.x relativ aktuell.
Bin nur Hobby-Programmierer - Also nur privat, nicht beruflich - hab es auch nicht gelernt.
Achte nicht immer auf die Rechtschreibung - Sorry.

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

Re: Theme anlegen

Beitrag von theo »

KemalO hat geschrieben:
Mo 10. Okt 2022, 16:13
Irgendwie hab ich jetzt keinen Ansatz gefunden wo ich mich weiter zu dem Thema einlesen kann. Habt Ihr für mich eine Stütze.
Keine Ahnung was bei Lazarus hier jetzt möglich ist - Komponentenbibliothek für ein Projekt definieren - Skalieren - auf eine .... verweisen.
Freue mich über Euer Feedback. Ich hoffe ich konnte mein Problem etwas bildlich darstellen.
Nur mal auf die Schnelle ein paar Wiki Links:

https://wiki.lazarus.freepascal.org/High_DPI/de
https://wiki.lazarus.freepascal.org/Autosize_/_Layout
https://wiki.lazarus.freepascal.org/Anchor_Sides/de

Später bekommst du bestimmt noch ausführlichere Antworten.

wp_xyz
Beiträge: 4888
Registriert: Fr 8. Apr 2011, 09:01

Re: Theme anlegen

Beitrag von wp_xyz »

theo hat schon das richtige Stichwort gegeben: LCLScaling skaliert alle Controls auf dem Formular in Abhängigkeit von der Pixeldichte des Bildschirms, ohne dass du eine Zeile Code dafür schreiben musst (im Idealfall). Also: Wenn du ein Formular auf einem Bildschirm mit 96 ppi entwirfst, wird es zusammen mit allen Controls auf einem Bildschirm mit 192 ppi doppelt so groß erscheinen. Dafür muss nur das Häkchen bei LCLScaling in den Projekt-Optionen gesetzt sein. Du brauchst mindestens Lazarus 2.0 (für eine Grundversion reicht aber auch schon v1.8).

Allerdings hakt es gelegentlich noch hier und da. Komponenten müssen ein paar zusätzliche Zeilen Code enthalten, damit sie mit dem LCLScaling zusammenarbeiten. Bei PascalSCADA, wie bei vielen anderen Fremdkomponenten, befürchte ich aber, dass sich niemand diese Mühe gemacht hat. Oder man hat die Skalierung auf eine Weise gelöst, die vielleicht nicht mit dem LCLScaling zusammenarbeitet.

KemalO
Beiträge: 3
Registriert: Mo 10. Okt 2022, 15:47

Re: Theme anlegen

Beitrag von KemalO »

Hallo theo,
hallo wp_xyz,

vielen Dank für die Tipps und die Links wo ich nachlesen kann.
Jetzt habe ich endlich mal Schlagworte bei denen ich mich mal einlesen kann.
Das hilft schon sehr und an sowas habe ich gar nicht gedacht - Sieht man mal. AutoSize und HighDPI finde ich schon einmal gut.

@wp_xys - Ja, das Problem mit Fremdkomponenten wird sicherlich kommen. Denke aber das wird bei mir eher selten kommen.
In meinem Fall ist PascalScada nur ein Übungsprojekt und da kann alles Standard vorerst bleiben.
Ich will nur schon mal vorausdenken für andere Projekte die ggf. mal größer werden könnten (für meine Begriffe).

Ich würde mir nur noch wünschen, das wenn ich einen Standard TButton hinzufüge dieser automatisch in einer von mir festgelegten Größe hinzugefügt wird. Ich finde den aktuellen einfach immer zu klein. Oder beim Label ist die Schriftart immer sehr klein.
Kann ich bei den Standard irgendwie definieren das diese immer bestimmte Maße etc. haben?
K.A. Vielleicht kopiert man etwas (Komponentenbiliothek) nenne diese Standard-Kemal, bearbeite irgendwelche Dateiinhalte und wenn ich einen neuen TButtonKemal hinzufüge, dann sieht der immer so aus. Wenn ich ein Formular erzeuge, dann ist der Hintergrund immer weiß, wenn ich ein Label erzeuge, dann ist die Schrift immer 12pt und blau... hier fehlt mir komplett das wissen.
Kopieren - Neu machen gefällt mir nicht, da ich glaube das ich sonst irgendwann Update Probleme mit neuen Versionen bekommen könnte. Hier würde ich mir wünschen es gibt eine ini-Datei (nur als Beispiel) auf den die Standard-Komponente zugreift, wenn vorhanden und dann den Button so erzeugt. Wenn nicht, dann wird Standard erzeugt. Ist bei Lazarus so etwas vorgesehen?

Ich habe irgendwo mal gelesen das man eigenen Komponenten erstellen kann oder so, bringe aber das Wissen nicht mehr zusammen und ob das dann ein praktischer Ansatz ist will ich mal komplett offen stehen lassen :-)

Danke für Anregungen und nochmals super Danke für die bereits genannten Antworten.
###
Lazarus seit 2022 - Also erwartet nicht zu viel von mir :-)
Version: Naja, 2.x relativ aktuell.
Bin nur Hobby-Programmierer - Also nur privat, nicht beruflich - hab es auch nicht gelernt.
Achte nicht immer auf die Rechtschreibung - Sorry.

wp_xyz
Beiträge: 4888
Registriert: Fr 8. Apr 2011, 09:01

Re: Theme anlegen

Beitrag von wp_xyz »

KemalO hat geschrieben:
Di 11. Okt 2022, 14:05
Ich würde mir nur noch wünschen, das wenn ich einen Standard TButton hinzufüge dieser automatisch in einer von mir festgelegten Größe hinzugefügt wird. Ich finde den aktuellen einfach immer zu klein. Oder beim Label ist die Schriftart immer sehr klein.
Kann ich bei den Standard irgendwie definieren das diese immer bestimmte Maße etc. haben?
Lazarus verwendet die Systemeinstellungen für die Komponenten. Wenn dir also die Schrift zu klein ist, dann ist sie auch in allen anderen Programmen zu klein, und du musst im Betriebssystem die Skalierung ändern. In Windows 11 geht das über "Einstellungen" > "System" > "Skalierung" > den Prozentsatz höher stellen.
KemalO hat geschrieben:
Di 11. Okt 2022, 14:05
Wenn ich ein Formular erzeuge, dann ist der Hintergrund immer weiß, wenn ich ein Label erzeuge, dann ist die Schrift immer 12pt und blau...
Wenn das deine Anforderungen sind, insbesondere blaue Schrift, ist Lazarus wahrscheinlich nicht das Tool der Wahl. Lazarus zeichnet alle Bildschirmkomponenten mit den Funktionen des Betriebssystems, und damit sind individuelle Farbeinstellungen nicht immer möglich (selbst wenn es ein Property im Objekt-Inspektor dafür gibt). Wieder dieselbe Antwort wie oben: Wenn du blaue Schrift willst, musst du im Betriebssystem ein Thema mit blauer Schrift auswählen - damit wäre die Schrift bei allen Anwendungen blau. Wobei: ich weiß gar nicht, ob es unter Windows sowas gibt, unter Linux vielleicht. Oder du lässt die Standardkomponenten von Lazarus links liegen und verwendest nur solche, die sich selbst (also ohne Themenunterstützung) zeichnen, z.B. BGRAControls o.ä. (und hoffst, dass das von dir benötigte Control nicht fehlt, und dass der Betreuer dieser Komponentenbibliothek nicht irgendwann sagt: Leute, jetzt reichts...)

Die einfachste Art, die Schrift für alle Komponenten eines Formulars größer zu machen, ist, die Schrift des Formulars selbst größer einzustellen. Infolge des ParentFont-Mechanismus, den alle Controls unterstützen, übernehmen dann alle Komponenten diese Schrift, sofern deren ParentFont=true ist. Auf diesem Weg kannst du auch die Schrift-Farbe verändern, aber halt wiegesagt, wird das von manchen Controls ignoriert, und so ein Formular mit schwarz-blau gemischter Schrift ist ohnehin der letzte Schrei!

KemalO
Beiträge: 3
Registriert: Mo 10. Okt 2022, 15:47

Re: Theme anlegen

Beitrag von KemalO »

Hallo wp_xyz,

boah schnelle Antwort. Das Forum lebt!

Neee - Sind nicht wirklich Anforderungen, sondern Gedanken - was wäre wenn - hätte hätte, Fahrradkette.
Nur die Gedanken sind im Kopf und schwirren die Ganze Zeit herum und ich kann es nicht einordnen.
Lieber lebe ich mit Einschränkungen(naja, sind keine Einschränkungen, sondern Ansatz ist gut und macht Sinn- ich denke zu sehr web als OS-GUI nenne ich es mal), als von Lazarus und FPC jetzt weg zu gehen. Ich glaube das was ich umsetzen will kann ich umsetzen und Form Follows Function.

Danke für den Hinweis das Lazarus die Umgebung vom Betriebssysteme nimmt. Hier bin ich praktisch auch schon einmal beim TButton gestolpert. Ich wollte die Schriftfarbe vom Button ändern und das ging nicht. Musst dann einen anderen nehmen, ich glaube ich habe dann TSpeedButton genommen - BGRAControls wollte ich mich nicht auch noch einlesen, ich glaube daaaas kann vieeeel - Ist ja noch alles üben üben üben.
Grund: Ich wollte, wenn eine Verbindung aufgebaut ist, dass dann die Button-Schrift grün wird und wenn die Verbindung nicht aufgebaut ist die Button-Schrift rot wird. Wegen PascalScada usw. Ging nicht mit TButton wegen Windows...wie von Dir beschrieben - ich glaube es war so... bin mir nicht mehr sicher.
Danke für den Reminder - hast mich hier wieder abgeholt.

Das mit dem ParentFont-Mechanismus ist mir auch neu. Kenne ich auch noch gar nicht. Vielleicht hilft das mir schon weiter.
Das schaue ich mir auch mal näher an.

Also ich habe schon vieeeele Inputs erhalten und falls ich dann mal wirklich - Layout Probleme bekomme, dann weiss ich das es gute Lösungsansätze gibt.

Danke Euch.
###
Lazarus seit 2022 - Also erwartet nicht zu viel von mir :-)
Version: Naja, 2.x relativ aktuell.
Bin nur Hobby-Programmierer - Also nur privat, nicht beruflich - hab es auch nicht gelernt.
Achte nicht immer auf die Rechtschreibung - Sorry.

charlytango
Beiträge: 843
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: Theme anlegen

Beitrag von charlytango »

KemalO hat geschrieben:
Di 11. Okt 2022, 14:57
ich denke zu sehr web als OS-GUI nenne ich es mal
Ich habe diese Thread nochmal durchgelesen und mir fällt da das eine oder andere auf.

Unabhängig davon dass wir uns mit "web" in der aktuellen Form (also dynamisch Webseiten mit Code und allem drum und dran) IMHO etliche Probleme mehr eingetreten haben (zb Angreifbarkeit) denke ich dass hier einige Begrifflichkeiten vermischt werden.

Klar kann man jetzt eine Zange zum Einschlagen einer Schraube verwenden und die auch noch farbig umpinseln. Nur wäre es das falsche Werkzeug für die ganz falsche Aufgabe.
Oder einen pinken Ferrari mit angezogener Handremse und Akkuextension auf dem Rücksitz durch die Innenstadt schieben.

Aber vermutlich ist das der Zug der Zeit. Für mich ist ein Ferrari gefälligst rot und sein bevorzugtes Biotop sind Autobahn und Rennstrecke.

Ähnlich verhält es sich bei mir auch bei der Wahl des richtigen (Software)Werkzeugs für eine bestimmte Aufgabe.

Mit Lazarus kannst du genauso vieles anfangen, einiges sogar verbiegen. Aber sein bevorzugtes Biotop ist IMHO Anwendungsentwicklung von Programmen unterschiedlicher Betriebssysteme (also im wesentlichen das was du unter dem Menüpfad File-New-Project findest).
Für mich zählen da schon die HTML- und Javascript-Ansätze zu den Exoten. Wenn ich JS programmieren wollen würde dann würde ich das in dessen bevorzugter Entwicklungsumgebung machen alleine schon weil die Unterstützung dort eben besser ist. (mich schüttelt es alleine bei der Vorstellung gggg)

Klar ist dass beim Lazarus-Ansatz oft der kleinste gemeinsame Nenner der unterstützten Betriebssysteme ein Thema ist aber auch individuelle Besonderheiten eines bestimmten OS.

Und wenn das bisher alles Übungsprojekte sind und nur dein Kopf "was wäre wenn" Spielchen spielt dann kannst du sicher nach der x-ten (aus Übungszwecken geschriebenen) CD-Verwaltung genauer sagen ob dir das Werkzeug eventuell tauglich für deinen Anwendungszweck ist. Ob es dann auch wirklich "gut in der Hand liegt" weißt du ohnedies erst nach dem zweiten größeren Projekt.

In diesem Sinne... Happy Coding

...just my 2 cents

Antworten