AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Border fremder Anwendung verstecken
Thema durchsuchen
Ansicht
Themen-Optionen

Border fremder Anwendung verstecken

Ein Thema von Björn Ole · begonnen am 8. Dez 2009 · letzter Beitrag vom 8. Dez 2009
Antwort Antwort
Benutzerbild von Björn Ole
Björn Ole

Registriert seit: 10. Jul 2008
166 Beiträge
 
Delphi XE Professional
 
#1

Border fremder Anwendung verstecken

  Alt 8. Dez 2009, 00:37
Nabend,


ich fange eine fremde Anwendung auf einem Panel meines Formulars mittels SetParent
und passe die Größe bei Änderungen mittels SetWindowPos an.

Nun möchte ich aber, dass, während ich die Anwendung gefangen habe,
diese keine Border hat (also praktisch BorderStyle = bsNone).

1. Möglichkeit
Border über die WinAPI verstecken lassen... worüber ich komischerweise nichts gefunden habe, dachte das würde gehen.

2. Möglichkeit
Die Bordermaße herausbekommen und entsprechend die Anwendung größer darstellen lassen,
sodass der Client Bereich genau über dem Panel liegt.
Mit GetWindowRect und GetClientRect hatte ich bisher aber keine Erfolge.

3. Möglichkeit
Kenn ich nicht, aber ich hoffe jemand von Euch kann helfen?!


Grüßerle,
Björn
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#2

Re: Border fremder Anwendung verstecken

  Alt 8. Dez 2009, 02:30
Schau dir mal Delphi-Referenz durchsuchenGetWindowLong und Delphi-Referenz durchsuchenSetWindowLong an.
Beispiele gibt es auch im der Dp zu finden.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Astat

Registriert seit: 2. Dez 2009
Ort: München
320 Beiträge
 
Lazarus
 
#3

Re: Border fremder Anwendung verstecken

  Alt 8. Dez 2009, 02:54
Hallo Björn Ole, dies sollte dir weiterhelfen.

Delphi-Quellcode:

function SetParent(hWndChild, hWndNewParent: HWND; NewParentWidth,
  NewParentHeight: integer): boolean;
var
  hWndPrevParent: HWND;
  PrefWindowLong: DWORD;
begin
  hWndPrevParent := Windows.SetParent(hWndChild, hWndNewParent);
  if hWndPrevParent = 0 then
    raise exception.create('ERROR: SetParent failed!');

  //-- Rahmen entfernen
  PrefWindowLong := SetWindowLong(hWndChild, GWL_STYLE,
    GetWindowLong(hWndChild ,GWL_STYLE) and WS_BORDER);
  if PrefWindowLong = 0 then
    raise exception.create('ERROR: PrefWindowLong(1)');

  //-- Titelmenü entfernen
  PrefWindowLong := SetWindowLong(hWndChild, GWL_STYLE,
    GetWindowLong(hWndChild,GWL_STYLE) and not WS_CAPTION);
  if PrefWindowLong = 0 then
    raise exception.create('ERROR: PrefWindowLong(2)');


  //- Auf Paranet skalieren
  if not SetWindowPos(hWndChild, 0 ,0, 0, 0, 0, SWP_NOSIZE or
    SWP_NOMOVE or SWP_NOZORDER or SWP_FRAMECHANGED) then
      raise exception.create('ERROR: PrefWindowLong(3)');

  //-- Neu zeichnen
  if not SetWindowPos(hWndChild, 0, 0, 0, NewParentWidth,
    NewParentHeight, SWP_NOZORDER or SWP_SHOWWINDOW) then
      raise exception.create('ERROR: PrefWindowLong(4)');

  result := true;
end;

hoffe etwas geholfen zu haben.

lg. Astat
Lanthan Astat
06810110811210410503210511511603209711003210010110 9032084097103
03211611111604403209711003210010110903210010510103 2108101116122
11610103209010110510810103206711110010103210511003 2068101108112
10410503210310111509910411410510109810111003211910 5114100046
  Mit Zitat antworten Zitat
Benutzerbild von Björn Ole
Björn Ole

Registriert seit: 10. Jul 2008
166 Beiträge
 
Delphi XE Professional
 
#4

Re: Border fremder Anwendung verstecken

  Alt 8. Dez 2009, 12:58
Ach ich Nuss...

Danke Euch beiden!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz