Transparente Form

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Transparente Form

Beitrag von pluto »

Das wird nicht so leicht werden. Der gesammte Code dürft nur unter GTK2 laufen.... Du müsstest ihn komplett neu schreiben.
MFG
Michael Springwald

_X_
Beiträge: 250
Registriert: Di 16. Dez 2008, 20:13
OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
CPU-Target: 32/64Bit

Re: Transparente Form

Beitrag von _X_ »

Kuster Peter hat geschrieben:Ist ja toll, läuft leider mit Windows nicht. Was muss ich anpassen?
Eigentlich eine blöde Frage, ich habe das nicht umsonst in "API & Plattformspezifisches ‹ Linux" geschrieben, oder ? ;-)
Ich werde das ganze auch für Windoof implementieren, das kann aber noch ein Weilchen dauern, weil ich mein Windoof mal wieder updaten muss.
Das dauert schon mal nen ganzen Tag.

mfg _X_

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Transparente Form

Beitrag von pluto »

Eigentlich eine blöde Frage,

Es gibt keine Blöde Fragen.... mir ist es z.b. auch nicht aufgefallen, wo du dein Beitrag erstellst hast...
MFG
Michael Springwald

_X_
Beiträge: 250
Registriert: Di 16. Dez 2008, 20:13
OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
CPU-Target: 32/64Bit

Re: Transparente Form

Beitrag von _X_ »

pluto hat geschrieben:
Eigentlich eine blöde Frage,

Es gibt keine Blöde Fragen.... mir ist es z.b. auch nicht aufgefallen, wo du dein Beitrag erstellst hast...
Da hast du auch wieder Recht.

mfg _X_

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Re: Transparente Form

Beitrag von Targion »

Ich glaube, bei Windoof kann ich aushelfen. Ich habe mal ein Programm namens SimpleGlass geschrieben, welches jedes beliebige Windows in Windoof transparent machen kann. Das Projekt wird bald OSS!
Das ist allerdings Delphi-Code und ich habe grade kein Windows hier, um ihn zu testen. Also, probier's aus!

Code: Alles auswählen

procedure MakeTransparent(AHandle: THandle; AValue: byte = 0);
var
  Info: TOSVersionInfo;
  SetLayeredWindowAttributes: TSetLayeredWindowAttributes;
  var i: Integer;BValue:Byte;
begin
Info.dwOSVersionInfoSize := SizeOf(Info);
  GetVersionEx(Info);
  if (Info.dwPlatformId = VER_PLATFORM_WIN32_NT) and
    (Info.dwMajorVersion >= 5) then
  begin
    SetLayeredWindowAttributes := GetProcAddress(GetModulehandle(user32),'SetLayeredWindowAttributes');
    if Assigned(SetLayeredWindowAttributes) then
    begin
      SetWindowLong(AHandle, GWL_EXSTYLE, GetWindowLong(AHandle, GWL_EXSTYLE) or WS_EX_LAYERED);
      SetLayeredWindowAttributes(AHandle, 0, AValue, LWA_ALPHA);
    end;
  end;
  end;
end;

_X_
Beiträge: 250
Registriert: Di 16. Dez 2008, 20:13
OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
CPU-Target: 32/64Bit

Re: Transparente Form

Beitrag von _X_ »

Targion hat geschrieben:Das ist allerdings Delphi-Code und ich habe grade kein Windows hier, um ihn zu testen.
Dito. Dann hau ich mir morgen Windoof auf die Platte, und probiers aus.
Auf Mac OS sollte mein Code eigentlich laufen.
Dann sollte es das ganze auch bald ins svn schaffen.

mfg _X_

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Transparente Form

Beitrag von pluto »

Auf Mac OS sollte mein Code eigentlich laufen.

Nein ! Nur wenn der Anwendung auch dort GTk2 Installiert hat, für "Mac OS" ist ein anders Toolkit vorgesehen.

@Targion
Prima, dann könnten wir ja daraus eine Art Klasse / Interface erstellen, die es Automatisch die Richtige Funktion / Methode aufruft je nach Plattform, vielleicht wird das sogar in Lazarus aufgenommen als Standard Funktion.... Oder noch besser: Ein neues From mit dieser Eigenschaft, dürfte eigentlich kein Problem sein.... nur für den Desinger...
MFG
Michael Springwald

Teekeks
Beiträge: 359
Registriert: Mi 27. Mai 2009, 20:54
OS, Lazarus, FPC: OpenSuse11.4 x86 (Lazarus: 0.9.30 FPC 2.4.2)
CPU-Target: x86
Wohnort: Cottbus

Re: Transparente Form

Beitrag von Teekeks »

Hi!
Leider funktioniert das immer noch nicht mit KDE3 :(
Ich werde mich mal weiterhin belesen, mal gucken ob ich was raus finde...

Gruß Teekeks

_X_
Beiträge: 250
Registriert: Di 16. Dez 2008, 20:13
OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
CPU-Target: 32/64Bit

Re: Transparente Form

Beitrag von _X_ »

So weit ich weiß, geht das unter KDE3 nur mit einem alternativen Fenstermanager, also z.B. Compiz-Fusion.
Und ich hab mir auch gleich mal die Mühe gemacht, das zu testen, Ergebnis: mit Compiz-Fusion + KDE3 funktioniert das.

mfg _X_

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

Re: Transparente Form

Beitrag von theo »

Wer will das eigentlich haben?
Das verwenden doch die Fenstermangager z.T beim Verschieben etc.
Da würde ich nicht reinfummeln.

_X_
Beiträge: 250
Registriert: Di 16. Dez 2008, 20:13
OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
CPU-Target: 32/64Bit

Re: Transparente Form

Beitrag von _X_ »

theo hat geschrieben:Wer will das eigentlich haben?
Ich.
theo hat geschrieben:Das verwenden doch die Fenstermangager z.T beim Verschieben etc.
Da würde ich nicht reinfummeln.
Ich kenne genug Programme, die machen das auch; Also warum sollte ich es nicht machen?

mfg _X_

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

Re: Transparente Form

Beitrag von theo »

_X_ hat geschrieben:Ich kenne genug Programme, die machen das auch; Also warum sollte ich es nicht machen?

Und welchen Zweck erfüllt das? (Ausser zu beweisen, dass man total gut programmieren, und lustige semi-transparente Fenster basteln kann).
Für mich ist das - wie Farb- und Fontspiele - abzulehnen. D.h. gehört in die Systemkonfiguration, nicht in die Anwendung.

_X_
Beiträge: 250
Registriert: Di 16. Dez 2008, 20:13
OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
CPU-Target: 32/64Bit

Re: Transparente Form

Beitrag von _X_ »

Ich habe das eigentlich nur gemacht, weils die VCL kann.

mfg _X_

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Transparente Form

Beitrag von pluto »

So weit ich weiß, geht das unter KDE3 nur mit einem alternativen Fenstermanager, also z.B. Compiz-Fusion.

Also bei mir geht das unter KDE3.5 allerdings mit deiner Funktion leider auch nicht. Ich verwende den Standard Window-Manger

Und welchen Zweck erfüllt das? (Ausser zu beweisen, dass man total gut programmieren, und lustige semi-transparente Fenster basteln kann).
Für mich ist das - wie Farb- und Fontspiele - abzulehnen. D.h. gehört in die Systemkonfiguration, nicht in die Anwendung.

Ja, da hast du irgendwie nicht ganz unrecht, aber in vielen Programmen kann man das einstellen. Und ich möchte nicht überall Transparent haben. Im Moment habe ich das bei mir so das es eigentlich stört und man kann einen Text nur sehr schwer lesen wenn diese Funktion eingeschaltet ist, aber zum Glück kann ich mit alt + ScrollRad das einstellen. Auch mit "KDE3.5", aber wie gesagt ohne Lazarus, leider.
Letztendlich ist das nur eine Spielerei mehr nicht. Eine machbarkeit. und wie _X_ schon sagte: damit wird Lazarus noch Kompatibler zu Delphi *G* das ist doch ein Argument was wir häufig hören *G*.
Allerdings gefällt mir die Funktion nicht 100%ig, mir fehlen gewisse Einstellungens Möglichkeiten. Z.B. meine ich das der Inhalt vom Aktiven Fenster auch stark beeinflusst wird, oder das es abschaltbar ist, dass auch die Fenster die unter einem anderen Fenster liegen durchschimmern. Schöner währe das wenn man das einstellen könnte.
Kann man das bei Compiz ?
MFG
Michael Springwald

Kuster Peter
Beiträge: 205
Registriert: So 2. Dez 2007, 20:47
OS, Lazarus, FPC: Windows XP Lazarus immer neueste Version
CPU-Target: xxBit
Wohnort: Schweiz

Re: Transparente Form

Beitrag von Kuster Peter »

Ich habe Windows und der Compiler reklamiert schon bei folender Zeile:

Info: TOSVersionInfo;

Ich habe da so eine verrückte Idee: Ein Programm von dem man nur die Lables, die Datenbankfelder und die Buttons sieht, der rest ist transparent.

Peter

Antworten