Bildschirmschoner in Lazarus

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Lapiz123
Beiträge: 9
Registriert: Do 14. Jan 2021, 20:42

Bildschirmschoner in Lazarus

Beitrag von Lapiz123 »

Guten Tag liebe Gemeinde,
Ich würde gerne einen Bildschirmschoner in Lazarus erstellen, ich würde diesen dann gerne per Buttonklick öffnen können. Ich weiß leider nicht, was für Code dafür benötigt wird, daher würde ich gerne von euch Hilfe erhalten. Also wenn ihr Hilfe habt oder sogar schon fertige Projekte dieser Art habt, dann lasst sie mir gerne zu kommen. Wäre euch sehr dankbar.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4436
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: Bildschirmschoner in Lazarus

Beitrag von af0815 »

Was für ein Betriebssystem?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Timm Thaler
Beiträge: 1172
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Bildschirmschoner in Lazarus

Beitrag von Timm Thaler »

af0815 hat geschrieben:
Do 14. Jan 2021, 21:35
Was für ein Betriebssystem?
Die Frage ist eher: Was für ein Jahrhundert?

Bildschirmschoner macht man seit TFT nicht mehr.
Lapiz123 hat geschrieben:
Do 14. Jan 2021, 20:52
Ich weiß leider nicht, was für Code dafür benötigt wird, daher würde ich gerne von euch Hilfe erhalten.
Fullscreen oder Windowed? Text, Bilder, einfache Grafik oder 3D? Was soll dargestellt werden?

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4436
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: Bildschirmschoner in Lazarus

Beitrag von af0815 »

Nachdem es der erste Post des Users war, warten wir mal ab.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Lapiz123
Beiträge: 9
Registriert: Do 14. Jan 2021, 20:42

Re: Bildschirmschoner in Lazarus

Beitrag von Lapiz123 »

Timm Thaler hat geschrieben:
Do 14. Jan 2021, 22:32
af0815 hat geschrieben:
Do 14. Jan 2021, 21:35
Was für ein Betriebssystem?
Die Frage ist eher: Was für ein Jahrhundert?

Bildschirmschoner macht man seit TFT nicht mehr.
Lapiz123 hat geschrieben:
Do 14. Jan 2021, 20:52
Ich weiß leider nicht, was für Code dafür benötigt wird, daher würde ich gerne von euch Hilfe erhalten.
Fullscreen oder Windowed? Text, Bilder, einfache Grafik oder 3D? Was soll dargestellt werden?
Das Betriebssystem ist Windows. Und ich es wäre schön wenn es Fullscreen ist mit Grafik. Zu der Frage, welches Jahrhundert wir haben, gute Frage mein Lehrer ist auch aus dem letzten Jahrtausend ^^ . Danke für eure schnellen Antworten

Warf
Beiträge: 1526
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: MacOS | Win 10 | Linux
CPU-Target: x86_64
Wohnort: Aachen

Re: Bildschirmschoner in Lazarus

Beitrag von Warf »

Du machst ne form mit der Eigenschaft Borderstyle auf bsNone, Formstyle fsSystemStayOnTop und WindowState auf wsMaximized.

Damit deckt die Form den gesammten bildschirm ab und ist über allen anderen Fenstern. Die grafiken kannst du dann mit nem Canvas zeichnen, OpenGL wenn du ganz motiviert bist, oder die faule variante, einfach ein paar TShapes über die form wandern lassen.

Eine alternative wäre auch, du könntest dir das Canvas handle vom Desktop holen und direkt auf dem bildschirm rumzeichnen:

Code: Alles auswählen

var
  hnd: HDC;
  cvs: TCanvas;
begin
  hnd := GetDC(0); // uses windows
  cvs := TCanvas.Create;
  try
    cvs.Handle:=hnd;
    cvs.FillRect(0,0, Screen.Width, Screen.Height);
  finally
    cvs.Free;
  end;

Lapiz123
Beiträge: 9
Registriert: Do 14. Jan 2021, 20:42

Re: Bildschirmschoner in Lazarus

Beitrag von Lapiz123 »

Warf hat geschrieben:
Sa 16. Jan 2021, 17:46
Du machst ne form mit der Eigenschaft Borderstyle auf bsNone, Formstyle fsSystemStayOnTop und WindowState auf wsMaximized.

Damit deckt die Form den gesammten bildschirm ab und ist über allen anderen Fenstern. Die grafiken kannst du dann mit nem Canvas zeichnen, OpenGL wenn du ganz motiviert bist, oder die faule variante, einfach ein paar TShapes über die form wandern lassen.

Eine alternative wäre auch, du könntest dir das Canvas handle vom Desktop holen und direkt auf dem bildschirm rumzeichnen:

Code: Alles auswählen

var
  hnd: HDC;
  cvs: TCanvas;
begin
  hnd := GetDC(0); // uses windows
  cvs := TCanvas.Create;
  try
    cvs.Handle:=hnd;
    cvs.FillRect(0,0, Screen.Width, Screen.Height);
  finally
    cvs.Free;
  end;
Wärst du so nett und könntest mir das komplette Projekt als Zip senden ^^

Socke
Lazarusforum e. V.
Beiträge: 2858
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: Bildschirmschoner in Lazarus

Beitrag von Socke »

Lapiz123 hat geschrieben:
Sa 16. Jan 2021, 21:54
Wärst du so nett und könntest mir das komplette Projekt als Zip senden ^^
Deine Hausaufgaben musst du schon selbst machen :lol:

Ein anderer Weg war doch: Form maximieren, ohne Fensterdekoration (BorderStyle) und dann die Programmdatei von .exe nach .scr umbenennen. Dann kannst du direkt auf dem Form oder auf einem TImage darauf zeichnen. Für einfache Bilder reicht oder Text reicht das aus - für schnelle Bildwechsel oder 3D-Grafik nicht.
Zumindest war das zu meiner Schulzeit unter Delphi 7 so.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Lapiz123
Beiträge: 9
Registriert: Do 14. Jan 2021, 20:42

Re: Bildschirmschoner in Lazarus

Beitrag von Lapiz123 »

Socke hat geschrieben:
Sa 16. Jan 2021, 22:01
Lapiz123 hat geschrieben:
Sa 16. Jan 2021, 21:54
Wärst du so nett und könntest mir das komplette Projekt als Zip senden ^^
Deine Hausaufgaben musst du schon selbst machen :lol:

Ein anderer Weg war doch: Form maximieren, ohne Fensterdekoration (BorderStyle) und dann die Programmdatei von .exe nach .scr umbenennen. Dann kannst du direkt auf dem Form oder auf einem TImage darauf zeichnen. Für einfache Bilder reicht oder Text reicht das aus - für schnelle Bildwechsel oder 3D-Grafik nicht.
Zumindest war das zu meiner Schulzeit unter Delphi 7 so.
Was ist dieses HDC weil bei mir steht "Identifier not found"

Timm Thaler
Beiträge: 1172
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Bildschirmschoner in Lazarus

Beitrag von Timm Thaler »

Es ist leider nicht mehr so einfach wie bei TurboPascal. Es gibt verschiedene Libs die auf unterschiedliche Art Grafik unterstützen.

Schau mal hier durch: https://wiki.freepascal.org/Developing_with_Graphics/de

Was davon für Dich geeignet ist hängt davon ab, was Du machen willst.

Da wir hier weder wissen, was Du in Pascal "drauf hast" noch was Du darstellen willst musst Du entweder konkreter werden oder Dich da durchackern.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4436
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: Bildschirmschoner in Lazarus

Beitrag von af0815 »

Dann stell mal deine Hausaufgabe hier ein. Nur Projektsourcen ohne exe, ppu,... dann kann man mal drübersehen und dir Hinweise geben.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten