AGB  ·  Datenschutz  ·  Impressum  







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

MessageBox Postion

Ein Thema von SaFu · begonnen am 25. Feb 2008 · letzter Beitrag vom 26. Feb 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#1

MessageBox Postion

  Alt 25. Feb 2008, 20:33
Hi

Hab mal ne simple Frage aber irgenwie kommme ich net drauf

Wie kann ich meine MessageBox immer in der Mitte von meinem Formblatt auf gehen lassen.

if MessageDlgPos('Wollen Sie wirklich das Programm beenden?',mtWarning,[mbyes,mbno],0,Form1.Top,Form1.left) = mryes then Etwa irgendwie so??

Danke sascha

[edit=MrSpock]Gemäß Wunsch des Erstellers geändert. Mfg, MrSpock[/edit]
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: MessageBox Postion

  Alt 25. Feb 2008, 20:42
Was soll die Frage ! (etwas rechnen)
Blackheart
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: MessageBox Postion

  Alt 25. Feb 2008, 20:46
Wie gesagt hab ja schon einiges versucht aber irgenwie geht das so net

Habe mir gedacht ich nehme die Position von Form Top und Left und addiere einfach was dazu etwa so

,mtWarning,[mbyes,mbno],0,Form1.Top + 20,Form1.left+ 20; aber irgendwie will es nicht in die Mitte

Es genügt mir scon wenn du mir einfach sagst ob ich da auf dem richtigen Dampfer bin, ansonsten wäre ein kleiner Tipp net
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: MessageBox Postion

  Alt 25. Feb 2008, 20:51
div
Blackheart
  Mit Zitat antworten Zitat
Crazy Ivan
(Gast)

n/a Beiträge
 
#5

Re: MessageBox Postion

  Alt 25. Feb 2008, 21:01
was Blachheart da meint ist folgendes:

1. du berechnest die mitte der form, etwa so:

Delphi-Quellcode:
var mitte : tpoint;

// *****

mitte.Y := (form1.top + (form1.top+form1.heigth)) div 2;
mitte.x := (form1.left + (form1.left+form1.width)) div 2;
2. musst du dann wissen, wie groß (in pixeln) die box ist und ziehst jeweils die hälfte davon bei mitte.X und mitte.Y ab

dann sollte es etwa die mitte sein
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: MessageBox Postion

  Alt 25. Feb 2008, 21:09
Mal ganz erlich, ich versteh nur Bahnhof

Wenn ich das so versuch bekomm ich auch nicht die Mitte es plobt teilweise auf wo es bock hat.

Ich hab net gedacht das das so ein aufwand ist
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Crazy Ivan
(Gast)

n/a Beiträge
 
#7

Re: MessageBox Postion

  Alt 25. Feb 2008, 21:20
mitte ist ein Tpoint. das heißt mitte.X ist die position auf der x-Achse, mitte.Y dann analog auf der y-Achse. der code berechnet einfach nur die gerundeten mittelwerte aus den maßen der form1
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: MessageBox Postion

  Alt 25. Feb 2008, 21:30
Ja das meine ich ja wenn ich das so mache blopt es manschmal in der mitte auf und manschmal nicht kommt darauf an wo die Form steht

Kann es sein das es zu ungenau ist und das es deswegen zu ungenauigkeiten kommt
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: MessageBox Postion

  Alt 25. Feb 2008, 22:03
Delphi-Quellcode:
function MessageDlgPos2(const Msg: string; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; ParentForm: TForm = nil; HelpCtx: Longint = -1;
  const HelpFileName: string = ''): Integer;
begin
  with CreateMessageDialog(Msg, DlgType, Buttons) do
    try
      HelpContext := HelpCtx;
      HelpFile := HelpFileName;
      if Assigned(ParentForm) then begin
        Position := poDesigned;
        //0 div 2 -> 0, also kein Problem.
        Left := ParentForm.Left + ((ParentForm.Width - Width) div 2);
        Top := ParentForm.Top + ((ParentForm.Height - Height) div 2);
      end else begin
        Position := poScreenCenter;
      end;
      Result := ShowModal;
    finally
      Free;
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  MessageDlgPos2('Dies ist ein Test', mtInformation, [mbOK], Self);
end;
Wäre vielleicht noch ganz gut zu prüfen, ob der Dialog überhaupt auf einem Bildschirm sichtbar ist und ihn dann ggf zu verschieben.
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
Benutzerbild von pilic
pilic

Registriert seit: 10. Aug 2006
Ort: Aschbach
131 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: MessageBox Postion

  Alt 25. Feb 2008, 22:05
Problem ist, dass man mit den Parametern X und Y der Funktion mitteilt, die Eigenschaften Left und Top vom Dialog zu setzen. Für die wirkliche Mitte müsste man noch die halbe Breite des Dialogs abziehen, bzw. die halbe Höhe.

Delphi-Quellcode:
X := Form1.Left + (Form1.Width-BreiteDialog) div 2;
Y := Form1.Top + (Form1.Height-HoeheDialog) div 2;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 02:02 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