AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Form aus DLL in fremden Programm ?

Offene Frage von "goose33"
Ein Thema von goose33 · begonnen am 29. Aug 2005
Antwort Antwort
goose33

Registriert seit: 26. Okt 2004
Ort: Merseburg
49 Beiträge
 
#1

Form aus DLL in fremden Programm ?

  Alt 29. Aug 2005, 12:38
Hallo,

folgendes Problem :

Ich hab ne Anwendung ( FS2004 ) in der ich ein Fenster erstellen möchte.
Das ganze geht über sogenannte Module ( das sind für den FS DLL's ).
Das geht soweit, das ich ein neues Menü im FS habe aus dem ich auf meine DLL
zugreifen kann.
In der initialisierung der DLL erstelle ich mein Fenster.
Das geht eigentlich auch soweit, nur das das Fenster

1. keinen Taskbareintrag haben soll
2. beim minimieren des FS auch minimiert werden soll.

Soweit ich das verstanden habe sollte das mit CreateParented gehen.
Geht eigentlich auch, nur das mein Fenster immer hinter allen anderen Fenstern ist, also
ich das nie sichtbar bekomme.
Es ist da, das ist sicher, denn wenn man ein anderes Fenster des FS schnell hin und herschiebt, dann
sieht man mein Fenster im Hintergrund und dann is es wieder hinter dem anderen Fenster verschwunden.

Ich hab also folgendes versucht : ( ich hab alles was ich so versucht habe in der Procedure stehen gelassen.)

Code:
library Project1;

uses
  Windows,
  Messages,
  Forms,
  SysUtils,
  Variants,
  Classes,
  Graphics,
  Controls,
  module,
  Unit1 in 'Unit1.pas' {Form1};

procedure ModuleInit; stdcall;
var
  HFSimWindow: HWND;
begin
  HFSimWindow := FindWindow('FS98MAIN', nil);
  Form1 := TForm1.CreateParented(HFSimWindow);
  //Form1 := TForm1.Create(Application);
  //Form1.ParentWindow := HFSimWindow;
  Form1.BringToFront;
  //SetWindowPos(Form1.Handle, HFSimWindow, 0, 0, 0, 0, SWP_NOSIZE + SWP_NOZORDER );
  SetWindowPos(Form1.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE);
  //Form1.FormStyle := fsStayOnTop;
end;

.
.
.
// hier wird eigentlich das fenster angezeigt
  procedure DoMenu;
  begin
    Form1.Show; // hier auch schon x - Möglichkeiten versucht
    SetWindowPos(Form1.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE );
  end;

// hier die unit1
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

end.
Also ich hab da noch verschiedene andere möglichkeiten ausprobiert und nix ging.
Jetzt bin ich Ratlos und hoffe einer von Euch kann helfen?

Vielen dank Euch !!!

Matthias
  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 14:34 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