Programmieren vereinfachen

Für Fragen von Einsteigern und Programmieranfängern...
Andy Nightingale
Beiträge: 402
Registriert: Mo 13. Jan 2025, 12:11

Programmieren vereinfachen

Beitrag von Andy Nightingale »

Hallo Leute,
um nicht in jeder Form immer wieder das Gleiche machen zu müssen habe ich eine Unit wo z.B. alle Fenstersachen drin sind.wie:

Code: Alles auswählen

  procedure FensterAktivieren(Form: TForm);

begin

  // Falls minimiert, wieder normal machen
  if Form.WindowState = wsMinimized then
    Form.WindowState := wsNormal;

  // Fenster sichtbar machen, falls es versteckt ist
  if not Form.Visible then
    Form.Show;

  // Fenster in den Vordergrund holen
  Form.BringToFront;
  Form.SetFocus;
end;   
Nun möchte ich dort noch folgendes integrieren:

Code: Alles auswählen

 if FSchnellbericht = Nil then
     FSchnellberichtf := TFSchnellbericht.Create(Self);  
Da wo jetzt Schnellbericht steht ist eigentlich jede Form gemeint. Versteht ihr was ich meine? Hat jemand irgendeine Idee dazu? Wäre super.

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

Re: Programmieren vereinfachen

Beitrag von theo »

Andy Nightingale hat geschrieben: Mi 29. Apr 2026, 12:56 Versteht ihr was ich meine?
Ich verstehe es nicht.

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

Re: Programmieren vereinfachen

Beitrag von Andy Nightingale »

Hallo Theo,
musste grad extrem lachen.- :D wahrscheinlich hab ich echt das Talent das was ich möchte einfach nicht richtig erklären zu können. :lol:
Sorry....wie soll ich das sagen....also wenn ich ein Button anklicke dann öffnet sich ein Fenster. Im Button ist folgendes hinterlegt:

Code: Alles auswählen

procedure TForm1.ImageButtonScnellberichtClick(Sender: TObject);
begin

  if FSchnellbericht = Nil then// dies hier
     FSchnellbericht := TFSchnellbericht.Create(Self);//und dies hier möchte ich auch in FensterAktivieren mit drin haben.

  FensterPositionieren(FSchnellbericht, Mitte);
  FensterAktivieren(FSchnellbericht);


end;          
FSchnellbericht steht ja nur für ein Fenster. Ich öffne aber sehr viele Fenster(Form) deshalb wollte ich es vereinfachen und es in der procedure FensterAktivieren mit reinmachen damit ich nicht immer: if FSchnellbericht = Nil then// dies hier
FSchnellbericht := TFSchnellbericht.Create(Self) -reinschreiben muß :roll:

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

Re: Programmieren vereinfachen

Beitrag von theo »

Es fehlt immer noch der Kontext.
Wie/Wo ist denn FSchnellbericht deklariert?
Ist das ein Feld deiner Formularklasse (TForm1)?
Von welchem Typ ist denn "jede Form", wie du schreibst?

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

Re: Programmieren vereinfachen

Beitrag von Andy Nightingale »

theo hat geschrieben: Mi 29. Apr 2026, 13:59 Es fehlt immer noch der Kontext.
Wie/Wo ist denn FSchnellbericht deklariert?
Ist das ein Feld deiner Formularklasse (TForm1)?
Von welchem Typ ist denn "jede Form", wie du schreibst?
Hi Theo Schnellbericht ist eine Formularklasse (z.B.TForm1) deklariert. Es ist kein Feld sondern TForm1 oer wie in meinem Fall TFSchnellbericht. Der Typ ist Normal...also ein normales Fenster.

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

Re: Programmieren vereinfachen

Beitrag von theo »

Das hat keinen Sinn, wir reden aneinander vorbei.
Lade mal dein reduziertes Beispielprojekt hoch, dann kann ich das selber versuchen zu verstehen.

Kleiner Tipp für eine Lektüre: https://www.delphi-treff.de/tutorials/o ... ashkurs/8/

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

Re: Programmieren vereinfachen

Beitrag von Andy Nightingale »

theo hat geschrieben: Mi 29. Apr 2026, 14:57 Das hat keinen Sinn, wir reden aneinander vorbei.
Lade mal dein reduziertes Beispielprojekt hoch, dann kann ich das selber versuchen zu verstehen.

Kleiner Tipp für eine Lektüre: https://www.delphi-treff.de/tutorials/o ... ashkurs/8/
Hallo Theo,
was genau verstehst du denn nicht? Im Beispiel sind genau die Code drin die du oben siehst.
Ich frag mal die KI ob die mich versteht. Danke dir trotzdem....p.s ich möchte kein Delphi Kurs.-das hab ich alles gemacht.

Joh
Lazarusforum e. V.
Beiträge: 362
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Re: Programmieren vereinfachen

Beitrag von Joh »

Ich will mich jetzt mal nicht zum Thema aüßern, sondern zur Art und Weise...

Du (Andy) fragst hier was. Kommt keine Antwort, schreibst du, ICH HABS SELBST GELÖST... aber nicht wie.

Kommt eine Antwort mit Rückfrage, schreibst du: MIMIMI, ICH FRAG LIEBER DIE KI...

Aus welchem Kindergarten kommst du eigentlich?
Du bist hier nicht derjernige, der die anderen dafür bezahlt, für sie da zu sein.
Alles ist hier freiwillig, und wenn man Fragen stellt, muß man auch mit den Antworten / Rückfragen leben.

Und bei Rückfragen nicht patzig werden, sondern einmal in sich gehen und überlegen, was man bei der Fragestellung flasch gemacht hat.
Das gilt übrigens auch für "Ich habs selbst gelöst". Wer zu allgemeine Fragen ohne Beispiel stellt, wie soll man dem helfen?

und das hier im Forum, wo sich bei Problemen andere Leute hinsetzen und eigene Lösungen zum Problem entwickeln und als Antwort schreiben.

- ich mußte es nur mal loswerden
just my two Beer

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

Re: Programmieren vereinfachen

Beitrag von Andy Nightingale »

Joh hat geschrieben: Mi 29. Apr 2026, 16:07 Ich will mich jetzt mal nicht zum Thema aüßern, sondern zur Art und Weise...

Du (Andy) fragst hier was. Kommt keine Antwort, schreibst du, ICH HABS SELBST GELÖST... aber nicht wie.

Kommt eine Antwort mit Rückfrage, schreibst du: MIMIMI, ICH FRAG LIEBER DIE KI...

Aus welchem Kindergarten kommst du eigentlich?
Du bist hier nicht derjernige, der die anderen dafür bezahlt, für sie da zu sein.
Alles ist hier freiwillig, und wenn man Fragen stellt, muß man auch mit den Antworten / Rückfragen leben.

Und bei Rückfragen nicht patzig werden, sondern einmal in sich gehen und überlegen, was man bei der Fragestellung flasch gemacht hat.
Das gilt übrigens auch für "Ich habs selbst gelöst". Wer zu allgemeine Fragen ohne Beispiel stellt, wie soll man dem helfen?

und das hier im Forum, wo sich bei Problemen andere Leute hinsetzen und eigene Lösungen zum Problem entwickeln und als Antwort schreiben.

- ich mußte es nur mal loswerden
Hallo Jo,

ich muß auch einmal was loswerden.
Ich habe ganz normal gefragt. Theo hat es nicht verstanden...dann habe ich geantwortet und es nochmal erklärt. Dann hat er geantwortet mit dem Zusatz: Hier lerne erst einmal die Grundlagen. Ich war in keiner Weise patzig. ( zeige mir wo ich das war???)Dann wußte ich mir nicht zu helfen und befragte die andere Quelle ( sage nicht das Wort sonst ist meine Antwort wieder weg) dazu und wollte nur wissen ob das was ich sagte so unverständlich ist.

Die andere Quelle sagte sinngemäß: das wäre eine sehr gute Idee und es wäre alles sehr gut verständlich.

Ich verstehe Jo ich als Anfänger muß Seitenhiebe schlucken und wenn ich nicht mehr weiter weiß weil ich Denke: ohhh ich muß blöd sein das es wieder nicht verstanden wird selbst wenn ich es merhfach erläutere....dann denke ich:....mal sehen was eine andere Quelle dazu sagt. Was kam heraus....meine Frage war super und auch super erklärt. Also erst erklärt man etwas mehrfach dann wird man als blöd hingestellt und dann kommt noch jemand wie du und tritt nochmal nach.- echt super Danke dir.

Du unterstellst mir Sachen die ich nie gesagt habe und meine Fragestellung war korrekt.-hab mich sogar dafür bedankt. Du selbst bist respektlos.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2897
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Programmieren vereinfachen

Beitrag von m.fuchs »

Andy Nightingale hat geschrieben: Mi 29. Apr 2026, 17:15 Die andere Quelle sagte sinngemäß: das wäre eine sehr gute Idee und es wäre alles sehr gut verständlich.
Natürlich sagt diese „Quelle” das. Die LLM sind darauf trainiert dem Fragenden Bestätigung zu geben und so oft wie möglich zuzustimmen. Verständnis worum es geht, haben die Dinger natürlich nicht.

Deswegen ist es auch so gefährlich wenn man besonders mit wenig Wissen das Zeug nutzt.

Nachhaltiger für dich währe es, wenn du durch Umformulieren und bessere Beschreibung deines Problems in der Interaktion mit Menschen zu einer Lösung kommst.
0118999881999119725-3

Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

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

Re: Programmieren vereinfachen

Beitrag von Andy Nightingale »

m.fuchs hat geschrieben: Mi 29. Apr 2026, 17:25
Andy Nightingale hat geschrieben: Mi 29. Apr 2026, 17:15 Die andere Quelle sagte sinngemäß: das wäre eine sehr gute Idee und es wäre alles sehr gut verständlich.
Natürlich sagt diese „Quelle” das. Die LLM sind darauf trainiert dem Fragenden Bestätigung zu geben und so oft wie möglich zuzustimmen. Verständnis worum es geht, haben die Dinger natürlich nicht.

Deswegen ist es auch so gefährlich wenn man besonders mit wenig Wissen das Zeug nutzt.

Nachhaltiger für dich währe es, wenn du durch Umformulieren und bessere Beschreibung deines Problems in der Interaktion mit Menschen zu einer Lösung kommst.
Hallo M.fuchs,

das habe ich ja gemacht. Mehrfach erklärt. Dann sagte Theo...das hat kein Sinn wir reden aneinander vorbei. Bei meinem vorigen Post wurde der 900 mal angeklickt und keiner hatte geantwortet. Man wird ja regelrecht in solche "anderen Quellen" getrieben. Was soll ich denn machen mfuchs?.- verstehst du was ich geschrieben habe?

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2897
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Programmieren vereinfachen

Beitrag von m.fuchs »

Andy Nightingale hat geschrieben: Mi 29. Apr 2026, 17:41 das habe ich ja gemacht. Mehrfach erklärt. Dann sagte Theo...das hat kein Sinn wir reden aneinander vorbei. Bei meinem vorigen Post wurde der 900 mal angeklickt und keiner hatte geantwortet. Man wird ja regelrecht in solche "anderen Quellen" getrieben. Was soll ich denn machen mfuchs?.- verstehst du was ich geschrieben habe?
Was man immer machen kann: minimalen Beispielquellcode posten, sagen was man macht, was passiert und was man erwartet. Das kann manchmal sehr anstrengend sein die richtigen Worte zu finden (das passiert Alten Hasen genauso wie Anfängern) - aber man wenn man die eigenen Schritte für andere verständlich formuliert, hilft einem das selber auch weiter.

Ich habe deine Fragestellung auch nicht so richtig verstanden. Mir ist nicht klar ob du eine Erklärung brauchst was Self ist oder wie Generics funktionieren. Irgendetwas in diese Richtung vermute ich.
0118999881999119725-3

Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

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

Re: Programmieren vereinfachen

Beitrag von wp_xyz »

Andy Nightingale hat geschrieben: Mi 29. Apr 2026, 12:56 Nun möchte ich dort noch folgendes integrieren:

Code: Alles auswählen

 if FSchnellbericht = Nil then
     FSchnellberichtf := TFSchnellbericht.Create(Self);  
Da wo jetzt Schnellbericht steht ist eigentlich jede Form gemeint. Versteht ihr was ich meine? Hat jemand irgendeine Idee dazu? Wäre super.
Heißt das, dass deine "Fenster-Sachen"-Unit diesen Schnellbericht zur Verfügung stellen soll?

Gibt es diesen Schnellbericht schon in einer eigenen Unit, zusammen mit der zugehörigen lfm-Datei? In diesem Fall müsstest du beide Units ("Fenster-Sachen"-Unit und Schnellbericht-Unit (+.lfm)) in ein Laufzeit-Package packen. In Packages kannst du alle möglichen Units zusammenfassen. Wie das geht, steht im wiki beschrieben (https://wiki.freepascal.org/Lazarus_Pac ... uick_Start). Wenn nun in einem Projekt eine dieser Units benötigt wird, fügst du das Package im Projekt-Inspektor als "Neue Anforderung" dem Projekt hinzu, und kannst dann jede der enthaltenen Units in der "uses"-Zeile eintragen.

Falls es den Schnellbericht nicht als eigene Unit gibt, kannst du aber auch durchaus in der "Fenster-Sachen"-Unit die TSchnellBericht-Klasse per Code erzeugen. Hat den Vorteil, dass du keine eigene Unit dafür brauchtst - was aber auch ein Nachteil sein kann... Nachteil ist auf jeden Fall, dass das etwas komplizierter ist (andererseits aber auch eine tolle Übung, um Lazarus zu lernen).

Was soll denn der Schnellbericht berichten?

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

Re: Programmieren vereinfachen

Beitrag von Andy Nightingale »

wp_xyz hat geschrieben: Mi 29. Apr 2026, 17:57
Andy Nightingale hat geschrieben: Mi 29. Apr 2026, 12:56 Nun möchte ich dort noch folgendes integrieren:

Code: Alles auswählen

 if FSchnellbericht = Nil then
     FSchnellberichtf := TFSchnellbericht.Create(Self);  
Da wo jetzt Schnellbericht steht ist eigentlich jede Form gemeint. Versteht ihr was ich meine? Hat jemand irgendeine Idee dazu? Wäre super.
Gibt es diesen Schnellbericht schon in einer eigenen Unit, zusammen mit der zugehörigen lfm-Datei? In diesem Fall müsstest du beide Units ("Fenster-Sachen"-Unit und Schnellbericht-Unit (+.lfm)) in ein Laufzeit-Package packen. In Packages kannst du alle möglichen Units zusammenfassen. Wie das geht, steht im wiki beschrieben (https://wiki.freepascal.org/Lazarus_Pac ... uick_Start). Wenn nun in einem Projekt eine dieser Units benötigt wird, fügst du das Package im Projekt-Inspektor als "Neue Anforderung" dem Projekt hinzu, und
Hallo wp_xyz,

das mit dem Package ist eine sehr gute Idee. Danke für den Link. :D

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

Re: Programmieren vereinfachen

Beitrag von Andy Nightingale »

m.fuchs hat geschrieben: Mi 29. Apr 2026, 17:57
Andy Nightingale hat geschrieben: Mi 29. Apr 2026, 17:41 das habe ich ja gemacht. Mehrfach erklärt. Dann sagte Theo...das hat kein Sinn wir reden aneinander vorbei. Bei meinem vorigen Post wurde der 900 mal angeklickt und keiner hatte geantwortet. Man wird ja regelrecht in solche "anderen Quellen" getrieben. Was soll ich denn machen mfuchs?.- verstehst du was ich geschrieben habe?
Ich habe deine Fragestellung auch nicht so richtig verstanden. Mir ist nicht klar ob du eine Erklärung brauchst was Self ist oder wie Generics funktionieren. Irgendetwas in diese Richtung vermute ich.
Hallo m.fuchs,
das werde ich mir merken. Es sind die Generics die ich meinte. Habe mir da gerade eine Abhandlung angesehen. Danke dir.

Antworten