Was zurück geben - Fensterpositionen

Für Fragen von Einsteigern und Programmieranfängern...
Benutzeravatar
Zvoni
Beiträge: 522
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
CPU-Target: 64Bit
Wohnort: BW

Re: Was zurück geben - Fensterpositionen

Beitrag von Zvoni »

Zvoni hat geschrieben: Mo 2. Feb 2026, 09:51 *senf*
O.g. Code positioniert IMMER gemäss Desktop/Monitor

Und jetzt werf ich noch Pfeffer in die Suppe......
Was ist mit modalen Fenstern?
Was ist mit Positionierung zum "Mutter"-Fenster (egal ob jetzt modal oder nicht)?
Andy Created ja das zweite Fenster "FAuswertungen" mit Owner "Self" (=TForm1)
Andy Nightingale hat geschrieben: Mo 2. Feb 2026, 11:32 Hallo Zvoni, versteh ich leider nicht ganz. Das Hauptfenster ist immer mittig. die modalen auch. Versteh ich was falsch? Grüße
Dann setzt du eine "Konvention" voraus, was meiner Meinung nach suboptimal bei "generischen" Funktionen ist.
Insbesondere, da du ja deine Funktion hier für andere Leute zur Verfügung stellen willst.

Beispiel: Ich hatte mal einen ähnlichen Fall, wo ich ein "zweites" Fenster in Relation zum ersten Fenster positionieren wollte.
Dieses zweite Fenster sollte immer rechts an das erste Fenster "anschliessen", egal wo das erste Fenster positioniert war, und egal wie gross/breit (!!) das erste Fenster war.

Mit deiner generischen Funktion wäre das nicht zu erreichen, da du ausschliesslich auf die Screen-Grösse zugreifst
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Benutzeravatar
Zvoni
Beiträge: 522
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
CPU-Target: 64Bit
Wohnort: BW

Re: Was zurück geben - Fensterpositionen

Beitrag von Zvoni »

Wie wir wissen, bist du ja Anfänger (Hast es ja oft genug erwähnt :D )

1) Wenn du solche Sachen programmierst, musst du dir immer die Frage stellen: "Brauche ich das jetzt nur für dieses eine Mal?"
Weil wenn die Antwort auf diese Frage "Nein" ergibt, solltest du immer versuchen, möglichst alle Fälle abzudecken.
Insbesondere wenn du diesen Code anderen Leuten zur Verfügung stellst.
In so einem Fall wächst dann deine eigene Code-Sammlung von alleine an, welche du immer wieder verwenden kannst.

2) Generell muss man die Frage stellen: Funktional oder OOP? Beides hat seine Vor- und Nachteile, geschweige denn "feurige" Verfechter beider Lager.
Du hast jetzt in deinem "Beispiel" den funktionalen Ansatz genommen.
In deinem konkreten Fall würde ich eher OOP nehmen, da du ja Eigenschaften einer Form veränderst (und die Position eines Fenster ist eine Eigenschaft).
Würde es wahrscheinlich als Class-Helper machen. In dem Fall muss man nur daran denken, diese Unit als letztes in "Uses" einzubinden (zumindest NACH der Forms-Unit).
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Andy Nightingale
Beiträge: 340
Registriert: Mo 13. Jan 2025, 12:11

Re: Was zurück geben - Fensterpositionen

Beitrag von Andy Nightingale »

Zvoni hat geschrieben: Mo 2. Feb 2026, 12:00
Zvoni hat geschrieben: Mo 2. Feb 2026, 09:51 *senf*
O.g. Code positioniert IMMER gemäss Desktop/Monitor

Und jetzt werf ich noch Pfeffer in die Suppe......
Was ist mit modalen Fenstern?
Was ist mit Positionierung zum "Mutter"-Fenster (egal ob jetzt modal oder nicht)?
Andy Created ja das zweite Fenster "FAuswertungen" mit Owner "Self" (=TForm1)
Hallo Zvoni,

ich verstehe.- ok aber ich entgegne dem einmal.-man könnte wahrscheinlich daraus eine "eierlegende Wollmilchsau" herprogrammieren. Jeder kann da ja noch etwas hineininterpretieren. Meine Intension war einfach etwas gutes zu tun und etwas als "kleine Erleichterung" für "Anfänger" zu geben. Wie der Einzelne das dann ausbaut bleibt Ihm überlassen. Danke dir für deine Ideen :D

Benutzeravatar
Zvoni
Beiträge: 522
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
CPU-Target: 64Bit
Wohnort: BW

Re: Was zurück geben - Fensterpositionen

Beitrag von Zvoni »

Andy Nightingale hat geschrieben: Mo 2. Feb 2026, 13:09 Hallo Zvoni,

ich verstehe.- ok aber ich entgegne dem einmal.-man könnte wahrscheinlich daraus eine "eierlegende Wollmilchsau" herprogrammieren. Jeder kann da ja noch etwas hineininterpretieren. Meine Intension war einfach etwas gutes zu tun und etwas als "kleine Erleichterung" für "Anfänger" zu geben. Wie der Einzelne das dann ausbaut bleibt Ihm überlassen. Danke dir für deine Ideen :D
Wie so immer: Viele Wege führen nach Rom.
Hab mir deinen Code nochmal angeschaut.
Würde wahrscheinlich aus den 5 Case Of-Fällen nur 2 machen, da ausser für "Mitte" die anderen per Multiplikationsfaktoren berechnet werden können.
Dazu braucht man nur ein Lookup-Array mit den Faktoren

irgendwas in der Art (Aircode/Ungetestet)

Code: Alles auswählen

type
  TPosition = (LinksOben, RechtsOben, LinksUnten, RechtsUnten, Mitte);
  
 Const
   Faktoren:Array[TPosition] of Array[0..3] Of Int8=((0,1,0,1),(-1,-1,0,1),(0,1,-1,-1),(-1,-1,-1,-1),(0,0,0,0));
 //..................
 
 Case Position of
   Mitte:
      begin
        X := WorkArea.Left + (WorkArea.Width - Form.Width) div 2;
        Y := WorkArea.Top + (WorkArea.Height - Form.Height) div 2;
      end;
   Else
     Begin
        X := WorkArea.Right + Faktoren[Position][0]*Form.Width +  Faktoren[Position][1]*RandAbstand;  
        Y := WorkArea.Bottom +  Faktoren[Position][2]*Form.Height + Faktoren[Position][3]*RandAbstand; 
     End;
Aber jetzt hör ich auf... :D
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

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

Re: Was zurück geben - Fensterpositionen

Beitrag von wp_xyz »

Die Kritik ist gut gemeint, kann aber meiner Meinung nach den ursprünglichen Autor auch leicht demotivieren. Er ist Anfänger, und jede Programmieraktivität ist absolut zu begrüßen, auch wenn man es selbst anders und "besser" gemacht hätte. Nur wenn man etwas schreibt, wird man von Mal zu Mal besser.

Benutzeravatar
Zvoni
Beiträge: 522
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
CPU-Target: 64Bit
Wohnort: BW

Re: Was zurück geben - Fensterpositionen

Beitrag von Zvoni »

wp_xyz hat geschrieben: Mo 2. Feb 2026, 13:47 Die Kritik ist gut gemeint, kann aber meiner Meinung nach den ursprünglichen Autor auch leicht demotivieren. Er ist Anfänger, und jede Programmieraktivität ist absolut zu begrüßen, auch wenn man es selbst anders und "besser" gemacht hätte. Nur wenn man etwas schreibt, wird man von Mal zu Mal besser.
Korrekt.
Andererseits finde ich es nie verkehrt einem Anfänger auch zu zeigen, wie man es (vielleicht?) anderst, einfacher, eleganter machen kann.
Eben weil sie Anfänger sind, und vielleicht nicht daran denken.
Und meine "Kritik" war nicht Kritik im herkömmlichen Sinne, da sein Code ja für seinen Fall ja funktioniert.
Nur ich denke halt immer 3-4-5 Schritte weiter im Voraus.

Ich bin immer heilfroh, von anderen Leuten "Alternativen" oder Verbesserungsvorschläge zu erhalten.
Nur dann lerne ich auch tatsächlich was dazu
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Andy Nightingale
Beiträge: 340
Registriert: Mo 13. Jan 2025, 12:11

Re: Was zurück geben - Fensterpositionen

Beitrag von Andy Nightingale »

wp_xyz hat geschrieben: Mo 2. Feb 2026, 13:47 Die Kritik ist gut gemeint, kann aber meiner Meinung nach den ursprünglichen Autor auch leicht demotivieren. Er ist Anfänger, und jede Programmieraktivität ist absolut zu begrüßen, auch wenn man es selbst anders und "besser" gemacht hätte. Nur wenn man etwas schreibt, wird man von Mal zu Mal besser.
Hallo WP,
im Grunde bin ich froh wenn man mir auch zeigt was man wie und wo besser oder anders machen kann.-aber in diesem Fall war es ein wenig drüber.-und auch tatsächlich demotivierend. Man denkt dann als erstes die Leute sagen: hey cool Danke .-weiter so.- stattdessen kam: aber das würde ich so oder so machen. Dann denkt man.-häää wie soll ich als Anfänger etwas mit generik und andere Fachausdrücke etwas anfangen. Ich bin froh wenn ich meine Anwendung mit direkter Programmierung und so einfach wie möglich fertig stellen kann und der Kunde zufrieden ist. So eine Anwendung wächst ja auch mit der Zeit und dann bin ich doch froh wenn ich wieder etwas zu berechnen habe. Was habe ich davon wenn ich jetzt 30 oder 40 tausend Euro verdiene, aber danach nichts mehr. Ich bin doch froh das der Kunde dann sagt:...ähh ich hätte dies oder das noch gerne anders.....dann sage ich...na klar super....kann ich machen...kostet aber dies oder das...so habe ich es in der Vergangenheit gemacht und das war super. Wenn ich jetzt alles perfekt mache dann habe ich später keine Arbeit mehr. Grüße und Danke 8)

Andy Nightingale
Beiträge: 340
Registriert: Mo 13. Jan 2025, 12:11

Re: Was zurück geben - Fensterpositionen

Beitrag von Andy Nightingale »

Zvoni hat geschrieben: Mo 2. Feb 2026, 14:50
wp_xyz hat geschrieben: Mo 2. Feb 2026, 13:47 Die Kritik ist gut gemeint, kann aber meiner Meinung nach den ursprünglichen Autor auch leicht demotivieren. Er ist Anfänger, und jede Programmieraktivität ist absolut zu begrüßen, auch wenn man es selbst anders und "besser" gemacht hätte. Nur wenn man etwas schreibt, wird man von Mal zu Mal besser.

Ich bin immer heilfroh, von anderen Leuten "Alternativen" oder Verbesserungsvorschläge zu erhalten.
Nur dann lerne ich auch tatsächlich was dazu
Hallo Zvoni, ja das schätze ich ja auch an dir und finde es super. Aber in diesem Fall wollte ich nur etwas geben und fertig. Danke dir. Bleib so wie du bist :D

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

Re: Was zurück geben - Fensterpositionen

Beitrag von theo »

Andy Nightingale hat geschrieben: Mo 2. Feb 2026, 15:11 ich als Anfänger etwas mit generik und andere Fachausdrücke etwas anfangen. Ich bin froh wenn ich meine Anwendung mit direkter Programmierung und so einfach wie möglich fertig stellen kann und der Kunde zufrieden ist.
Wie kommt man eigentlich als Anfänger zu Kunden?
Bist du dir sicher, dass das gut ist für alle Beteiligten?
Nicht böse gemeint, aber mir wäre dabei etwas unwohl.

"Ich habe mal einen Arztroman gelesen und denke, dass ich jetzt über genügend Wissen verfüge, deinen Blinddarm zu entfernen."

Würdest du dich unter mein Messer legen? :wink:

Andy Nightingale
Beiträge: 340
Registriert: Mo 13. Jan 2025, 12:11

Re: Was zurück geben - Fensterpositionen

Beitrag von Andy Nightingale »

theo hat geschrieben: Mo 2. Feb 2026, 16:26
Andy Nightingale hat geschrieben: Mo 2. Feb 2026, 15:11 ich als Anfänger etwas mit generik und andere Fachausdrücke etwas anfangen. Ich bin froh wenn ich meine Anwendung mit direkter Programmierung und so einfach wie möglich fertig stellen kann und der Kunde zufrieden ist.
Wie kommt man eigentlich als Anfänger zu Kunden?
Bist du dir sicher, dass das gut ist für alle Beteiligten?
Nicht böse gemeint, aber mir wäre dabei etwas unwohl.
"Ich habe mal einen Arztroman gelesen und denke, dass ich jetzt über genügend Wissen verfüge, deinen Blinddarm zu entfernen."
Würdest du dich unter mein Messer legen? :wink:
Hallo Theo,
gute Fragen. Ich bin ja nur Anfänger in Lazarus, aber nicht Anfänger in große Projekte umsetzen.

Meine "alte Software" unter anderem Client - Server Datenbankentwicklungen für mehrere Institute und Professoren und viele Studenten und Ärzte ca. 200 Clients läuft schon über 20 Jahre. Ich habe mehrere Supportverträge und weiß wie man damit gutes Geld verdient.

Nun habe ich durch Empfehlung noch zwei weitere größere Institute bekommen. Aber meine Projekte werden nun alle Step by Step in Lazarus realisiert. Bei mir ist es so, dass wenn ich einmal etwas kapiert habe ich dann sehr schnell Projekte realisieren kann. Ich bin zwar in Lazarus noch Anfänger, aber ich merke das ich alles schon recht gut nachvollziehen kann. Mein erstes großes Lazarus Projekt wird diesen Monat fertig. Auch könnte ich deinen Blinddarm selbst herausholen da ich nicht nur eine Technikerausbildung sondern auch eine medizinische Ausbildung habe. Wie du siehst vertrauen mir meine jahrelangen Kunden. Ich finde das Lazarus ein tolles Tool ist. Der Punkt ist, dass ich ein "Macher" bin. Ich kenne einige Programmierer die halten sich gerade so über Wasser.-weil Sie einfach nie gelernt haben sich und ihr Produkte bzw. Können zu vermarkten. :D

Antworten