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 »

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: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Falscher Bildschirm

Beitrag von georg »

Hallo, Alex -


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

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
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 »

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: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Falscher Bildschirm

Beitrag von brandelh »

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: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Falscher Bildschirm

Beitrag von Herbert »

...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 »

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: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Falscher Bildschirm

Beitrag von georg »

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 S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
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 »

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