![]() |
Form wird nicht korrekt positioniert
Ich erstelle zum Test folgendermaßen ein neues Formular aus Form2 heraus:
Delphi-Quellcode:
Durch diesen Code möchte ich ein Formular mit Transparenz über das Hauptformular legen. Es wird logischerweise auch genau so erstellt.
var
aForm: TForm; begin aForm := TForm.Create(nil); aForm.Left := Form1.Left; aForm.Top := Form1.Top; aForm.Width := Form1.Width; aForm.Height := Form1.Height; aForm.Color := clBlack; aForm.AlphaBlend := True; aForm.AlphaBlendValue := 185; aForm.ShowModal; // ein bisschen Code aForm.Hide; aForm.Free; Aber seltsamerweise ist dieses neue Formular NICHT an den Koordinaten wie das Form1. Es ist etwas über und etwas weiter links neben dem Form1. Woran liegt das? |
AW: Form wird nicht korrekt positioniert
Wahrscheinlich musst du den Rahmen der Form mit dazurechnen. Du kannst es ja testweise mal mit BorderStyle bsNone probieren, ob die Position dann stimmt.
|
AW: Form wird nicht korrekt positioniert
So wie der Code da ist, ist nichts falsches dran. Selbst wenn das eine Fenster ein Dialog, das andere Normal oder Sonstwas, der Code passt das an.
Der Fehler liegt also nicht an dieser Stelle. |
AW: Form wird nicht korrekt positioniert
Das Problem liegt schon irgendwie in dem Code, da es die Verhaltensweise von
Delphi-Quellcode:
nicht berücksichtigt.
TForm
Dieser Code legt über die übergebene Form eine abgedunkelte Form.
Delphi-Quellcode:
Allerdings frage ich mich, was das mit dem ShowModal soll, denn nun wird so lange gewartet, bis diese Form geschlossen wird und erst dann geht es weiter im Text ... ist also nicht wirklich die Lösung, es sei denn, man packt den Code in einen Thread ...
procedure DarkenForm( AForm : TForm );
var LForm : TForm; begin if not Assigned( AForm ) then raise EArgumentNilException.Create('AForm darf nicht NIL sein!'); LForm := TForm.Create(AForm); try LForm.Position := poOwnerFormCenter; LForm.Width := AForm.Width; LForm.Height := AForm.Height; LForm.Color := clBlack; LForm.AlphaBlend := True; LForm.AlphaBlendValue := 182; LForm.ShowModal; finally LForm.Free; end; end; |
AW: Form wird nicht korrekt positioniert
Generell zum Code sei noch folgendes gesagt:
Delphi-Quellcode:
Die Verwendung von der globalen Variablen
var
aForm: TForm; begin aForm := TForm.Create(nil); aForm.Left := Form1.Left; aForm.Top := Form1.Top; aForm.Width := Form1.Width; aForm.Height := Form1.Height; aForm.Color := clBlack; aForm.AlphaBlend := True; aForm.AlphaBlendValue := 185; aForm.ShowModal; // ein bisschen Code aForm.Hide; aForm.Free;
Delphi-Quellcode:
ist schon mal ganz übel.
Form1
Wenn man die MainForm der Anwendung damit meint, dann sagt man das auch mit ![]() Wenn es irgendeine Form sein soll, dann übergibt man diese als Parameter. Nach ![]()
Delphi-Quellcode:
direkt vor
aForm.Hide
Delphi-Quellcode:
ist nutzlos und kann ebenso entfallen.
aForm.Free
Instanzen erzeugen ohne Ressource-Schutzblock ist auch sträfliches Unterlassen. |
AW: Form wird nicht korrekt positioniert
Zitat:
Zitat:
Zitat:
Ich habe deinen Rat mal umgesetzt und deinen Code zum Testen übernommen. Selbst damit wird mein erzeugtes Fenster seltsamerweise an Position 0;0 angezeigt. Dazu sei eventuell noch gesagt, dass das Form, aus dem ich diesen Code aufrufe, Modal ist. Daran könnte es liegen denke ich. Hat sich erledigt. Selbst, wenn ich den Code aus dem MainForm aufrufe passiet dasselbe. |
AW: Form wird nicht korrekt positioniert
Zitat:
Und jenachdem wie neu dein Delphi ist, würde ich auch noch mit PopupMode und PopupParent rumspielen, damit die aForm auch über der gewünschten Form drüber bleibt. Zitat:
|
AW: Form wird nicht korrekt positioniert
Zitat:
Ansonsten ist dieses Thema hier schon mehrfach durchgekaut worden und bedarf keiner weiteren Diskussion, da es keine neueren Erkenntnisse geben würde (nur ein schales Echo bereits geführter Diskussionen) siehe dazu auch ![]() Zitat:
Zu der "Normalität" siehe Link oben ... Zitat:
Delphi-Quellcode:
UPDATE
unit UI_Form_Main;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type TUIMain_Form = class( TForm ) Button1 : TButton; procedure Button1Click( Sender : TObject ); private { Private-Deklarationen } public { Public-Deklarationen } end; var UIMain_Form : TUIMain_Form; implementation {$R *.dfm} procedure DarkenForm( AForm : TForm ); var LForm : TForm; begin if not Assigned( AForm ) then raise EArgumentNilException.Create('AForm darf nicht NIL sein!'); LForm := TForm.Create(AForm); try LForm.Position := poOwnerFormCenter; LForm.Width := AForm.Width; LForm.Height := AForm.Height; LForm.Color := clBlack; LForm.AlphaBlend := True; LForm.AlphaBlendValue := 182; LForm.ShowModal; finally LForm.Free; end; end; procedure TUIMain_Form.Button1Click( Sender : TObject ); begin DarkenForm(Self); end; end. Die Angabe deiner Delphi-Version (auch im Profil) wäre durchaus hilfreich ... |
AW: Form wird nicht korrekt positioniert
Die Grundlagen kenne ich gut, Danke =) Nur "seltsame" Probleme machen mir immer zu schaffen.
Ich weiß absolut nicht woran es lag, aber ich habe Delphi neugestartet und nun funktioniert es :?::?: Ich schaue mir das mal genauer an, denn das ist wirklich sehr komisch. Ich denke ich werde Windows auch neuinstallieren, denn auch Windows macht manchmal was es will. |
AW: Form wird nicht korrekt positioniert
Zitat:
Dein Code, mein Code, irgendein Code, ... Wenn du so programmierst wie du hier antwortest, dann wage ich zu vermuten, dass das größte Problem direkt vor deinem Bildschirm sitzt ;) |
AW: Form wird nicht korrekt positioniert
@CocoPops
Sowas wäre besser:
Delphi-Quellcode:
Vorausgesetzt der Code befindet sich in der gleichen Unit. Denn änderst du den Namen von Form1, mußt du jeden einzelnen Eintrag im Code auch ändern.
var
aForm: TForm; begin aForm := TForm.Create(nil); aForm.Left := Self.Left; aForm.Top := Self.Top; |
AW: Form wird nicht korrekt positioniert
Zitat:
Das habe ich schon öfters gelesen. Nur weil die Antworten nicht auf Uni-Niveau sind, heißt das nicht, dass wir dumm sind und uns so beleidigen zu lassen haben! Beitrag wurde gemeldet. |
AW: Form wird nicht korrekt positioniert
Zitat:
Kannst du bitte mal erklären, wie spätere Leser deine Antwort interpretieren sollen? Dieses Forum ist nicht nur dafür da Hilfe für die eigenen Probleme zu bekommen, sondern auch hilfreich für Andere zu sein. Wenn dein Problem gelöst wurde, dann sollte für alle Anderen auch klar erkennbar sein, was jetzt die Lösung war. Scheint allerdings noch nicht überall angekommen zu sein ... |
AW: Form wird nicht korrekt positioniert
Dieses Forum sollte man als nicht-Student oder nicht-studierter, da wir alle doof zu sein scheinen, tunlichst meiden.
|
AW: Form wird nicht korrekt positioniert
Zitat:
Zitat:
Ist das tatsächlich zuviel verlangt? :gruebel: (Ich lerne gerne dazu) |
AW: Form wird nicht korrekt positioniert
Der Wunsch nach präziser Kommunikation ist keinesfalls überzogen. Wir alle investieren hier Freizeit für uns und andere - und da sollte es das Mindeste sein, dass alle Beteiligten nach Kräften zur Lösung beitragen. Ein ungehemmter Informationsfluss ist wesentlicher Bestandteil davon.
Da der Fragesteller aber auf eigenen Wunsch das Forum verlassen hat, sollte sich das Thema erledigt haben. |
AW: Form wird nicht korrekt positioniert
Meine Oma, eine sehr kluge Frau, sagte früher - man sollte nie einen Brief schreiben wenn man verärgert ist, man sollte erst eine Nacht darüber schlafen. Vielleicht sollte man das auch bei Abmeldungen so machen.
|
AW: Form wird nicht korrekt positioniert
@Sir Rufo: Hey, du vergraulst dem Daniel seine User :lol:
Spaß beiseite: Ich fand deine Antwort weder beleidigend noch herabwürdigend und schon gar nicht einer Meldung würdig. Das liegt daran, daß ich beim Lesen genau denselben ![]() Zitat:
Zitat:
|
AW: Form wird nicht korrekt positioniert
Was meinte mal mein fauler Kollege, nach dem er wiederholt Mist bei der Arbeit fabriziert hat (was letztendlich auch auf mich zurückfällt), ich danach Tacheles mit ihm über die Arbeit und seine Arbeitseinstellung geredet habe, er sich darüber beim Chef beschwerte, der Chef sich daraufhin sonderbarerweise nicht für den Mist und Arbeitseinstellung des Kollegen interessiert hat, sondern mit mir darüber sprach, dass ich Tacheles mit dem Kollegen sprach? Was sagte der Kollege da? Er sagte: der Ton macht die Musik ;)
So ist das nun mal im Leben, es geht oft nicht um die Frage ob man evtl. recht hat oder nicht, sondern wie man es sagt. Und ich muss es wissen ;) |
AW: Form wird nicht korrekt positioniert
Wenn der Ton ausgeblendet ist wie z.B. in einem Internetforum, wird er vom Rezipienten häufig "hinzugedichtet": Es geht oft nicht darum, was man hier schreibt, sondern wie der Empfänger sich selbst das "vorliest". Das wiederum ist z.T. davon abhängig, welchen speziellen Prägungen er in der Vergangenheit ausgesetzt war. Ist er z.B. von irgendwelchen stigmatisierenden Äußerungen wie "du bist zu blöd" oder "du kannst eh nix" oder "du machst alles falsch" traumatisiert (was in unserer Gesellschaft keine Seltenheit darstellt), wird ihn jeder noch so kleine Hinweis auf irgend eine Unfähigkeit zwangsläufig kränken – völlig unabhängig davon, ob die Aussage zutrifft oder nicht. Das kann man in sehr vielen Foren sehr häufig beobachten. Fachforen wie dieses hier sind nunmal nicht dazu da, Grundlagen zu vermitteln; die werden vorausgesetzt.
|
AW: Form wird nicht korrekt positioniert
Naja, ich fand den Kommentar hier schon ziemlich bissig - den hätte man sich auch sparen können:
Zitat:
Außerdem neigen einige generell dazu über die Beantwortung der konkreten Frage hinaus auch noch den TE über sämtliche anderen Dinge belehren zu wollen. Manchmal muss man es einfach gut sein lassen und da nicht weiter drauf eingehen :) |
AW: Form wird nicht korrekt positioniert
Wenn ein Fragesteller einfachste Zusammenhänge nicht zu begreifen scheint (kenn ich nicht, hab ich noch nie von gehört usw.), dann wird das von versierten Usern durchaus bemerkt und daher auch thematisiert. Das kommt natürlich schonmal nicht gut an, wenn der Fragesteller sich selbst als guten und versierten Programmierer betrachtet und nun erkennen muß, daß er eigentlich gar nichts weiß, zumindest nicht im Verhältnis zu Usern, die ihr täglich Brot damit verdienen und daher quasi rund um die Uhr im Delphi-Code stecken.
Wenn du daher als Argument anführst, ein bestimmter Kommentar sei bissig, dann solltest du anständigerweise auch bemerken und nicht unwerwähnt lassen, wie dieser Kommentar ![]() Zitat:
|
AW: Form wird nicht korrekt positioniert
Mit dem Programmieren ist es fast wie mit dem Sex (in dem Fall wäre das DP das Dr. Sommer Team). Wenn man mit dem Programmieren anfängt, ist alles noch neu und man hat selbst viele Fragen. Genau wie über Sex. Irgendwann aber hat man seine Erfahrungen gesammelt und ist ein Experte (oder zumindest gut). Auf jeden Fall weiß man alles darüber. Am Anfang hilft man den Anderen gerne und teilt sein Wissen. Man hat ja gerade selbst alles gelernt und kann sich noch gut dran erinnern wie Kleinigkeiten einen hindern können. Mit der Zeit wird man immer besser, alles wird zu Routine und dann kommt jemand und fragt: kann man vom küssen schwanger werden? Und dann denkt man sich: wie dumm ist das denn? Was ist das denn für eine dumme Frage?
Ja, mit dem Programmieren ist es fast wie mit dem Sex ;) |
AW: Form wird nicht korrekt positioniert
Der gute Popov muß halt immer da letzte Wort haben, nicht wahr? Wenn's weiter nix ist, das sei dir gegönnt :stupid:
|
AW: Form wird nicht korrekt positioniert
Ach ja, das sagen viele zu mir und haben damit letztendlich das letzte Wort ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz