Autor Beitrag
spanier
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Do 04.01.07 19:17 
Hallo Zusammen,

ich habe mal eine Frage und hoffe das ihr mir helfen könnt.

Ich entwickle zurzeit in Delphi 6 ein Anwendung welche sich über mehrere Dlls erstreckt. Alle Dlls und die Exe verwenden Laufzeitpackages und als Owner der Formulare reiche ich das Hauptformular durch. Jetzt habe ich folgendes Problem:

In der Taskleiste taucht immer ein neuer Eintrag auf, sobald ich ein neues Fenster öffne. Obwohl alles zur gleichen Application gehört und ich als Owner das Hauptformular angebe.

Dies tritt sogar bei Fenstern auf,welche in der Exe Datei implementiert sind. Was bedeutet das es wohl kein sharing Problem zwischen den Dlls ist.

Warum verhält sich meine Anwendung so und wie unterbinde ich dies ?


Vielen Danke für die Hilfe

Spanier
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Do 04.01.07 21:30 
übergebe deinen DLLs die Application.
z.b. ProcInDll(Application.Handle);

in deiner DLL setzt du:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure ProcInDll(AHandle:THandle);
begin
Application.Handle:= AHandle;
  do somthing;
end;


grez
msch

_________________
ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
spanier Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Do 04.01.07 23:07 
Ich habs probiert und es funktioniert nicht. Das hätte nämlich sonst nicht erklärt warum das auch bei Fenster passiert, die in der Exe Datei Implemtiert sind. Denn dort ist das Application Objekt definitiv das richtige.

mfg

spanier
spanier Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Do 04.01.07 23:20 
Ich habe beim testen bemerkt das dieses Verhalten nur auftritt wenn man mit Laufzeitpackages arbeitet. Sind diese abgehakt funktioniert es. Komisch ?
spanier Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 08.01.07 14:12 
Ich habs gefunden :-) Juhu.

Es lag daran das,dass Handle des Application Objects nicht automatisch nach dem Aufruf von Application.CreateForm() gesetzt wurde und ich somit die ganze Zeit Handle 0 an die Dlls übergeben habe.

Vielen Dank und mfg

Spanier