AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Multimonitor Problem / Tabsheets werden "verschoben" dargest
Thema durchsuchen
Ansicht
Themen-Optionen

Multimonitor Problem / Tabsheets werden "verschoben" dargest

Ein Thema von Boppe · begonnen am 1. Aug 2008 · letzter Beitrag vom 1. Aug 2008
Antwort Antwort
Boppe

Registriert seit: 28. Feb 2007
Ort: München
39 Beiträge
 
Delphi 2007 Professional
 
#1

Multimonitor Problem / Tabsheets werden "verschoben&quo

  Alt 1. Aug 2008, 08:28
Morgen Zusammen!
Ich entwickle meine Anwendungen im Büro auf einem Laptop mit angeschlossenem externen Monitor. Wobei der Externe, sofern angeschlossen, als primär Monitor läuft.

Im Moment arbeite ich an einem etwas größeren Programm, welches verschiedene Forms aus dll´s einbindet und diese als TabSheet auf einer PageControl darstellt. So ne Art Modulsystem. Die Diskussionen über Sinn oder Unsinn dieser Methode sind mir durchaus bekannt.

Starte ich nun meine Anwendungen zuhause, ohne zweiten Monitor, werden die eingebundenen Forms total verschoben dargestellt.

Die Zuweisung erfolgt über
Delphi-Quellcode:
function TLoader.ModulToTab(FPageControl: TPageControl; FModul: TModul): integer;
var
  Tab : TMyTabSheet;
  WinName: Array [0..255] of char;
begin
  Tab:= TMyTabSheet.Create(FPageControl);
  Tab.PageControl := FPageControl;
  Windows.SetParent(FModul._HWND, Tab.handle);
  GetWindowText(FModul._HWND, WinName,255);
  Tab.Caption := FModul.Name;// WinName;
  Tab.Name := FModul.Name;
  Tab.TabVisible := True;
  Tab.Modul := FModul;
  Windows.ShowWindow(FModul._HWND, SW_SHOWMAXIMIZED);
  FPageControl.ActivePage := Tab;
  result := FPageControl.TabIndex;
end;
Beim ändern der Hauptform bzw. beim anzeigen des jeweiligen Tabs wird eine Methode in der dll aufgerufen welche die Größe und die Position anpassen sollte

Delphi-Quellcode:
procedure FormRefresh;
begin
    if Modul.Control.ClassNameIs('TPageControl') then
    begin
      DLLForm.Constraints.MaxWidth := TPageControl(Modul.Control).Width-10;
      DLLForm.Constraints.MaxHeight:= TPageControl(Modul.Control).Height-10;
      DLLForm.Align := alClient;
    end;
end;
Jemand ne Ahnung woran das liegen könnte?

Gruß
Boppe
Miniaturansicht angehängter Grafiken
verschoben_1_monitor_742.jpg   normal_2_monitore_364.jpg  
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#2

Re: Multimonitor Problem / Tabsheets werden "verschoben

  Alt 1. Aug 2008, 09:59
Seltsam, kann mir nicht vorstellen, dass das ein Multi-Monitorproblem ist. Liegt es vielleicht daran, dass die verschiedenen Monitore eine unterschiedliche Pixeldichte haben??
Ralph
  Mit Zitat antworten Zitat
Boppe

Registriert seit: 28. Feb 2007
Ort: München
39 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Multimonitor Problem / Tabsheets werden "verschoben

  Alt 1. Aug 2008, 10:08
Hallo taaktaak

Zitat von taaktaak:
Seltsam, kann mir nicht vorstellen, dass das ein Multi-Monitorproblem ist. Liegt es vielleicht daran, dass die verschiedenen Monitore eine unterschiedliche Pixeldichte haben??
Keine Ahnung ehrlich gesagt!

Ich könnte mir höchstens noch vorstellen, dass es vielleicht mit der Reihenfolge zusammenhängt, in der die Forms gezeichnet werden.
Allerdings fehlt mir hier komplett ein Ansatz wo denn das Problem liegen könnte.......
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#4

Re: Multimonitor Problem / Tabsheets werden "verschoben

  Alt 1. Aug 2008, 10:16
Mal eine Frage, benutzt Du TForm oder TFrame um die Sachen anzuzeigen ? Wenn Du TForm benutzt, versuche es mal mit TFrame, vielleicht funktioniert es ja besser. Ist nur so eine Vermutung.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#5

Re: Multimonitor Problem / Tabsheets werden "verschoben

  Alt 1. Aug 2008, 10:28
Hallo,

vergleich mal die Werte von

Delphi-Quellcode:
DLLForm.Constraints.MaxWidth := TPageControl(Modul.Control).Width-10;
DLLForm.Constraints.MaxHeight:= TPageControl(Modul.Control).Height-10;
in den beiden Situationen miteinander.

Verschoben sieht mir so aus, als wäre der Bildschirm aus Programmsicht größer, als er tatsächlich ist.
Sind da eventuell einfach nur Einstellungen am Monitor nicht so ganz in Ordnung? Das Bild dort mal soweit verkleinern, dass rundherum ein Rand übrigbleibt.
Sind es TFT-Monitore oder Röhren-Monitore?
Eventuell ist die Einstellung eines TFT's so, dass er die vom Rechner geschickte Auflösung interpolieren muss oder nicht mit der optimalen Frequenz angesteuert wird, eventuell kommt da das Problem her.
Sind aber alles nur Spekulatius

Stephan
  Mit Zitat antworten Zitat
Boppe

Registriert seit: 28. Feb 2007
Ort: München
39 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Multimonitor Problem / Tabsheets werden "verschoben

  Alt 1. Aug 2008, 10:43
Hallo Stephan

Zitat von nahpets:

vergleich mal die Werte von

Delphi-Quellcode:
DLLForm.Constraints.MaxWidth := TPageControl(Modul.Control).Width-10;
DLLForm.Constraints.MaxHeight:= TPageControl(Modul.Control).Height-10;
---------------2 Moitore--------------------------
[2008-08-01 11:35:18] TickCount:12178810 Width:966
[2008-08-01 11:35:18] TickCount:12178810 Height:330
[2008-08-01 11:35:18] TickCount:12178826 Width:966
[2008-08-01 11:35:18] TickCount:12178826 Height:214
[2008-08-01 11:35:18] TickCount:12178842 Width:845
[2008-08-01 11:35:18] TickCount:12178842 Height:214
[2008-08-01 11:35:18] TickCount:12178842 Width:990
[2008-08-01 11:35:18] TickCount:12178842 Height:214
[2008-08-01 11:35:18] TickCount:12178842 Width:990
[2008-08-01 11:35:18] TickCount:12178842 Height:354
[2008-08-01 11:35:18] TickCount:12178857 Width:990
[2008-08-01 11:35:18] TickCount:12178857 Height:448
[2008-08-01 11:35:18] TickCount:12178857 Width:990
[2008-08-01 11:35:18] TickCount:12178873 Height:468
[2008-08-01 11:35:18] TickCount:12178873 Width:990
[2008-08-01 11:35:18] TickCount:12178873 Height:468
[2008-08-01 11:35:18] TickCount:12178873 Width:990
[2008-08-01 11:35:18] TickCount:12178873 Height:468
[2008-08-01 11:35:18] TickCount:12178873 Width:990
[2008-08-01 11:35:18] TickCount:12178873 Height:468
[2008-08-01 11:35:18] TickCount:12178873 Width:990
[2008-08-01 11:35:18] TickCount:12178873 Height:468
[2008-08-01 11:35:18] TickCount:12178873 Width:990
[2008-08-01 11:35:18] TickCount:12178873 Height:468
[2008-08-01 11:35:18] TickCount:12178873 Width:990
[2008-08-01 11:35:18] TickCount:12178873 Height:468
---------------1 Moitor---------------------------
[2008-08-01 11:38:06] TickCount:12346667 Width:966
[2008-08-01 11:38:06] TickCount:12346667 Height:330
[2008-08-01 11:38:06] TickCount:12346683 Width:966
[2008-08-01 11:38:06] TickCount:12346683 Height:214
[2008-08-01 11:38:06] TickCount:12346699 Width:845
[2008-08-01 11:38:06] TickCount:12346699 Height:214
[2008-08-01 11:38:06] TickCount:12346699 Width:990
[2008-08-01 11:38:06] TickCount:12346699 Height:214
[2008-08-01 11:38:06] TickCount:12346699 Width:990
[2008-08-01 11:38:06] TickCount:12346699 Height:354
[2008-08-01 11:38:06] TickCount:12346699 Width:990
[2008-08-01 11:38:06] TickCount:12346699 Height:448
[2008-08-01 11:38:06] TickCount:12346714 Width:990
[2008-08-01 11:38:06] TickCount:12346714 Height:468
[2008-08-01 11:38:06] TickCount:12346714 Width:990
[2008-08-01 11:38:06] TickCount:12346714 Height:468
[2008-08-01 11:38:06] TickCount:12346714 Width:990
[2008-08-01 11:38:06] TickCount:12346714 Height:468
[2008-08-01 11:38:06] TickCount:12346714 Width:990
[2008-08-01 11:38:06] TickCount:12346730 Height:468
[2008-08-01 11:38:06] TickCount:12346730 Width:990
[2008-08-01 11:38:06] TickCount:12346730 Height:468
[2008-08-01 11:38:06] TickCount:12346730 Width:990
[2008-08-01 11:38:06] TickCount:12346730 Height:468
[2008-08-01 11:38:06] TickCount:12346730 Width:990
[2008-08-01 11:38:06] TickCount:12346730 Height:468


Ich seh da keine Unterschiede.
Sind beides TFT Monitore. Da die Größe und die Position der Tabs abhängig von meiner Hauptform ist, dürfte die Auflösung doch relativ egal sein oder?
Wenn dann müssten beide verzerrt oder verschoben dargestellt werden oder?
  Mit Zitat antworten Zitat
Boppe

Registriert seit: 28. Feb 2007
Ort: München
39 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Multimonitor Problem / Tabsheets werden "verschoben

  Alt 1. Aug 2008, 10:46
Hallo
Zitat von RWarnecke:
Mal eine Frage, benutzt Du TForm oder TFrame um die Sachen anzuzeigen ? Wenn Du TForm benutzt, versuche es mal mit TFrame, vielleicht funktioniert es ja besser. Ist nur so eine Vermutung.
Sind alles TForms. Das Projekt ist mittlerweile doch schon sehr umfangreich und das alles wieder umzubauen....*puuuh* Naja mal testen und dann seh ich schon. So kann ich das Ding ja nicht ausliefern
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#8

Re: Multimonitor Problem / Tabsheets werden "verschoben

  Alt 1. Aug 2008, 10:59
wenn's der gleiche Hersteller und der gleiche Typ ist ja, sonst nein.

Wir haben in der letzten Zeit die Röhren durch TFT's ausgetauscht. Bei einigen Rechnern taten einige TFT's es erst dann, wenn wir vorher die Auflösung und die Bildwiederholfrequenz auf den für die TFT's optimalen Wert gestellt hatten. Andere TFT's taten es einfach, auch wann die Darstellung nicht berauschend war, da haben wir die Einstellungen dann später geändert.
Es kann ein Zusammenhang mit Deinem Problem bestehen, muss aber nicht. Ist halt nur 'ne Vermutung.

Stephan
  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 08:17 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