Autor |
Beitrag |
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 02.04.19 20:19
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
Gausi
Beiträge: 8538
Erhaltene Danke: 475
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mi 03.04.19 09:42
Bringt es etwas, bei den Eigenschaften der Form bei Constraints was einzutragen?
_________________ We are, we were and will not be.
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 03.04.19 13:07
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 03.04.19 19:06
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
Sinspin
Beiträge: 1332
Erhaltene Danke: 118
Win 10
RIO, CE, Lazarus
|
Verfasst: Do 04.04.19 12:09
Das sollte sich via überschreiben der WindowProc machen lassen.
Du reagierst dann auf die Events und verhinderst dass die orginal aktion in der orginal WindowProc ausgeführt wird. Für alle anderen Ereignisse rufst das Orginal auf.
_________________ Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 04.04.19 13:01
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
Chiyoko
Beiträge: 298
Erhaltene Danke: 8
Win 98, Win Xp, Win 10
C# / C (VS 2019)
|
Verfasst: Do 04.04.19 13:09
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| protected override void WndProc(ref Message m) { switch (m.Msg) { case WM_WINDOWPOSCHANGING : case WM_WINDOWPOSCHANGED: break; Default: base.WndProc(ref m); } } |
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 04.04.19 14:20
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
Sinspin
Beiträge: 1332
Erhaltene Danke: 118
Win 10
RIO, CE, Lazarus
|
Verfasst: Do 04.04.19 14:22
Kann es sein dass ich dich mit jemandem verwechsle?
Im Beitrag zum PopupMenu ging es doch schon um die WindowProc und da war jemand mit einem ganz ähnlichen Nutzernamen aktiv.
Aber, gerne hier nochmal ein Schnipsel der zeigt wie es gehen sollte.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| type TForm1 = class(TForm) protected procedure WndProc(var Message: TMessage) ; override; private end;
implementation procedure TForm1.WndProc(var Message: TMessage) ; begin case message.Msg of WM_WINDOWPOSCHANGING :; WM_WINDOWPOSCHANGED :; WM_SIZE :; WM_NCCALCSIZE :; else inherited; end; end; |
_________________ Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 04.04.19 14:29
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
Chiyoko
Beiträge: 298
Erhaltene Danke: 8
Win 98, Win Xp, Win 10
C# / C (VS 2019)
|
Verfasst: Do 04.04.19 15:56
Frühlingsrolle hat folgendes geschrieben : | Die auskommentierte Stelle, ist die, die mich interessiert.
Soll sie leer stehen? |
Ja, nur bei Aufruf von Base wird die Nachricht weiter geleitet.
|
|
Sinspin
Beiträge: 1332
Erhaltene Danke: 118
Win 10
RIO, CE, Lazarus
|
Verfasst: Fr 05.04.19 11:54
Frühlingsrolle hat folgendes geschrieben : | Das war nicht mein Topic. Ich habe dsrin, so wie du, eine Hilfestellung geleistet.
Das Thema Popupmenu hat so garnichts mit dem Thema hier zu tun, außer die WndProc() Methode, die ein Bestandteil von beiden Themen ist. |
Ich hatte oben WindowProc erwähnt und bin davon ausgegangen dass du noch weiter mitgelesen hast in dem Beitrag wo es auch schon auf WindowProc hinauslief. Mein Sample verhindert jedenfalls dass die Nachrichten vom Fenster verarbeitet werden können. Ob dir das hilft bei deinem Problem musst du testen.
_________________ Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 05.04.19 17:41
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
mandras
Beiträge: 430
Erhaltene Danke: 107
Win 10
Delphi 6 Prof, Delphi 10.4 Prof
|
Verfasst: Fr 05.04.19 21:41
Hallo Frühlingsrolle,
ich habe Deinen Beispielcode in D6 getestet, ebenso mit Delphi XE2.
Ergebnis:
Der Fenstertitel wird nicht mehr gesetzt wenn ich den Button betätige,
ebenfalls hat das Fenster beim Programmstart keinen Titel mehr
da auch das initiale SetText abgefangen wird.
|
|
Sinspin
Beiträge: 1332
Erhaltene Danke: 118
Win 10
RIO, CE, Lazarus
|
Verfasst: So 07.04.19 13:45
Hey.
Habe gerade mal beide Beispiele ausprobiert. Caption verhindern klappt. Und die anderen Botschaften verhindern hat ein geradezu witziges Ergebnis bei der Darstellung des Fensters zur Folge.
Zeig mal bitte dein Testprojekt. Ist sicher nur eine Kleinigkeit.
_________________ Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 07.04.19 15:55
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
Sinspin
Beiträge: 1332
Erhaltene Danke: 118
Win 10
RIO, CE, Lazarus
|
Verfasst: Mo 08.04.19 18:59
Sooo, Debug Mode/Release Mode unter 32Bit in XE2.
Projekt heißt zwar noch PopupFinder aber hat damit nix mehr zu tuen. Hatte schlicht keine Lust das umzubenennen
Via "TestCaption" = true/false kann man zwischen beiden Tests umschalten und muss dann neu übersetzen.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| procedure TForm1.WndProc(var Message: TMessage) ; const TestCaption = false;
begin if not TestCaption then begin case message.Msg of WM_WINDOWPOSCHANGING : Log('WM_WINDOWPOSCHANGING'); WM_WINDOWPOSCHANGED : Log('WM_WINDOWPOSCHANGED'); WM_SIZE : Log('WM_SIZE'); WM_NCCALCSIZE : Log('WM_NCCALCSIZE'); else begin inherited; end; end; end else begin if Message.msg = WM_SETTEXT then Log('WM_SETTEXT : '+PChar(Message.LParam)) else begin inherited WndProc(Message); end; end; end; |
Einloggen, um Attachments anzusehen!
_________________ Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 08.04.19 19:34
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
Sinspin
Beiträge: 1332
Erhaltene Danke: 118
Win 10
RIO, CE, Lazarus
|
Verfasst: Mo 08.04.19 23:23
D10.2, 32Bit unter Win10 64Bit. Geht auch. Caption und Size.
Allerdings scheint es wirklich eine Minimalgröße zu geben die man nicht unterschreiten kann. Sehr interessant.
Ich habe ein Programm, glaub ich mit XE2 übersetzt, hier laufen das ist deutlich kleiner vom Fenster als die Minimalgröße.
Es hat allerdings keinen üblichen Fensterrahmen sondern ist via WindowRegion zugeschnitten.
Der Teil den ich nicht kleiner bekommen habe ist somit einfach unsichtbar.
_________________ Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 09.04.19 10:02
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|