Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

Falscher Bildschirm [ERLEDIGT]

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
RUzZlacK
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 28
Registriert: Do, 31. Mär 2016 11:32
Wohnort: Pforzheim

Falscher Bildschirm [ERLEDIGT]

Beitrag von RUzZlacK » Mi, 27. Apr 2016 15:43

Moin,

ganz kurz: Wenn ich ein neues Fenster aus dem Programm heraus öffne, öffnet es sich auf dem anderem Bildschirm. Soll sich aber da öffnen von wo es auch aufgerufen wurde bzw. da wo das Parentfenster ist.
Für alle Tipps offen.

Kann mir vorstellen ist sehr einfach zu lösen nur will bei mir irgendwie nicht klappen.

Danke im voraus,

Alex
Zuletzt geändert von RUzZlacK am Do, 28. Apr 2016 16:06, insgesamt 1-mal geändert.

georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1933
Registriert: Fr, 08. Feb 2008 21:29

Re: Falscher Bildschirm

Beitrag von georg » Mi, 27. Apr 2016 15:45

Hallo, Alex -


wie erzeugst Du das Fenster? Ein wenig Code ist immer hilfreich.
Liebe Grüsse aus der Eifel,

Georg

RUzZlacK
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 28
Registriert: Do, 31. Mär 2016 11:32
Wohnort: Pforzheim

Re: Falscher Bildschirm

Beitrag von RUzZlacK » Mi, 27. Apr 2016 15:55

georg hat geschrieben:Ein wenig Code ist immer hilfreich.

Code: Alles auswählen

PROCEDURE proc_main_chatkundenversion(oDlg)

   LOCAL oDlg_chatkundenversion


   SET CHARSET TO ANSI
   SET DATE TO GERMAN

   oDlg_chatkundenversion:= chatkundenversion():New(,oDlg)


   oDlg_chatkundenversion:title:= "Chat"
   oDlg_chatkundenversion:maxSize:={648,413}
   oDlg_chatkundenversion:minSize:={648,413}

   oDlg_chatkundenversion:Create()



   //CenterControl(oDlg_chatkundenversion)
   SetAppFocus(oDlg_chatkundenversion)

   oDlg_chatkundenversion:close:= {||oDlg_chatkundenversion:Destroy()}

   oDlg_chatkundenversion:buttonErweitert:Activate:= {|| proc_showAdvancedConfig(oDlg_chatkundenversion)}

RETURN
Ist bisher nicht viel.
Erstellt mit dem Formdesigner

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13765
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Falscher Bildschirm

Beitrag von brandelh » Mi, 27. Apr 2016 15:56

ein neues Fenster wird durch aPos posioniert. Normal ist das recht klein und somit auf dem ersten Monitor.
Wenn du beim parent abfragst wo er steht, kannst du die Werte vor der Anzeige anpassen.
Gruß
Hubert

Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1822
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Kontaktdaten:

Re: Falscher Bildschirm

Beitrag von Herbert » Mi, 27. Apr 2016 19:19

...oder setzt die Ecke relativ zum Parent.
Grüsse Herbert
Immer in Bewegung...

RUzZlacK
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 28
Registriert: Do, 31. Mär 2016 11:32
Wohnort: Pforzheim

Re: Falscher Bildschirm

Beitrag von RUzZlacK » Do, 28. Apr 2016 9:08

brandelh hat geschrieben:ein neues Fenster wird durch aPos posioniert. Normal ist das recht klein und somit auf dem ersten Monitor.
Wenn du beim parent abfragst wo er steht, kannst du die Werte vor der Anzeige anpassen.

Wie kann ich den abfragen wo er steht? Also nicht nur x und yPos.
Ja, aPos Positioniert, aber wie soll das den dann auf den anderen Bildschirm hinpositioniert werden?

georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1933
Registriert: Fr, 08. Feb 2008 21:29

Re: Falscher Bildschirm

Beitrag von georg » Do, 28. Apr 2016 9:22

Leider zeigt Dein Code nur, wie Du Dein Objekt erstellst, nicht jedoch den XbpDialog(). Dieser Code wäre noch interessanter (und es war dieser Code, auf den ich mich zuerst bezog). In dem Code hier übergibst Du weder Position noch Grösse. Laut Dokumentation ist die Position {0, 0}, wenn keine vorgegeben wird, und die Grösse ist ebenfalls {0, 0}, wenn keine vorgegeben wird.

Da ein Fenster erscheint, musst Du zumindest die Grösse und (höchstwahrscheinlich) auch die Position vorgeben. Und da liegt der Knackpunkt: wie sieht dieser Code aus?
Liebe Grüsse aus der Eifel,

Georg

RUzZlacK
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 28
Registriert: Do, 31. Mär 2016 11:32
Wohnort: Pforzheim

Re: Falscher Bildschirm

Beitrag von RUzZlacK » Do, 28. Apr 2016 12:24

georg hat geschrieben:Leider zeigt Dein Code nur, wie Du Dein Objekt erstellst, nicht jedoch den XbpDialog(). Dieser Code wäre noch interessanter (und es war dieser Code, auf den ich mich zuerst bezog). In dem Code hier übergibst Du weder Position noch Grösse. Laut Dokumentation ist die Position {0, 0}, wenn keine vorgegeben wird, und die Grösse ist ebenfalls {0, 0}, wenn keine vorgegeben wird.

Da ein Fenster erscheint, musst Du zumindest die Grösse und (höchstwahrscheinlich) auch die Position vorgeben. Und da liegt der Knackpunkt: wie sieht dieser Code aus?
Super danke! Hab´s herausgefunden. Das war der Suchansatz den ich gebraucht habe.

Code: Alles auswählen

METHOD _chatkundenversion:init( oParent, oOwner, aPos, aSize, aPP, lVisible )


   DEFAULT oParent  TO AppDesktop(), ;
           aPos     TO {-1178,500}, ;
           lVisible TO .F.
Es öffnet sich automatisch im Minus Bereich, warscheinlich weil das laut dem System der erste Bildschirm ist, obwohl sich das Hauptfenster auf dem anderem öffnet.

Jedenfalls vielen Dank!


EDIT:

Gelöst hab ich das Problem so:

Code: Alles auswählen

 memPosODlg := oDlg:currentPos()

   IF memPosODlg[1] >= 0

      CenterControl(oDlg_chatkundenversion)

   ENDIF
Das öffnet mein(e) Fenster immer im richtigen Bildschirm.

Antworten