![]() |
Fenster zu langsam
Liste der Anhänge anzeigen (Anzahl: 1)
hallöchen,
ich möchte ein mdi-kindfenster erstellen, ist aber ziemlich lahm so wie ich das jetzt hab. der "code" ist zur zeit so:
Delphi-Quellcode:
Type
TStatusWindowClass = class(TObject) private StatusWindow: TForm; StatusBox: TRichEdit; StatusTextBox: TEdit; public procedure CreateStatusWindow; end; implementation procedure TStatusWindowClass.CreateStatusWindow; begin StatusWindow := TForm.Create(nil); StatusBox := TRichEdit.Create(StatusWindow); StatusTextBox := TEdit.Create(StatusWindow); StatusWindow.FormStyle := fsMDIChild; StatusWindow.WindowState := wsMaximized; with StatusBox do begin Parent := StatusWindow; Left := 0; Top := 0; Width := StatusWindow.ClientWidth; Height := StatusWindow.ClientHeight - 22; end; with StatusTextBox do begin Parent := StatusWindow; Left := 0; Top := StatusBox.Height + 1; Width := StatusWindow.ClientWidth; Height := 21; end; end; kann mir jemand sagen wie ichs schneller hinbekomme? ich hab die exe mal im anhang, brauch man nur starten dann sieht man was ich meine...es sollte schon zum start maximiert sein |
Re: Fenster zu langsam
^^^^^^^^
|
Re: Fenster zu langsam
EiEiEi... jetzt hab ich den falschen Thread genommen... Sorry... Kann gelöscht werden
:angle:, sCrAPt |
Re: Fenster zu langsam
das is nur ne einmalige sache mit dem +1, das is nämlich die statusboxhöhe, also nur der startwert... darum gehts eigentlich ja nicht *g*. Es geht darum das das fenster(das mdi child) sich erst maximiert wenn das programm bereits offen ist, man siehts ja wie es sich maximiert, ich möchte es aber so haben das es beim start bereits maximiert ist
|
Re: Fenster zu langsam
weiss nun jemand eine antwort darauf? :mrgreen: bitte 8)
|
Re: Fenster zu langsam
haste nicht ma versucht, einen nach dem anderen auszukommentieren, um rauszukriegen, an welchem befehl es liegt???
mach mal :wink: |
Re: Fenster zu langsam
@Pseudemys Nelsoni: bei mir is der code nich langsam. nimm mal das maximieren raus. oder stell bei deinem windows mal das animieren der fenster aus. ich habs aus, und bei mir is der code ncich langsam. ich schätze, dass das proggy solange an dem maximieren hängen bleibt...
|
Re: Fenster zu langsam
hallo phXql,
danke fürs testen, jo es liegt am maximieren, da ich nicht weiss wie man es bereits beim start maximiert haben kann :( |
Re: Fenster zu langsam
Hi,
genau mit diesem Problem kämpfe ich auch schon eine Weile. Habe in der Zeit ca. 3 verschiedene Ansätze gefunden, von denen jedoch keiner perfekt ist. Ein Versuch davon, indem einfach die ClientArea gesperrt wird:
Delphi-Quellcode:
Noch ein Versuch, bei dem die Animation halbwegs deaktiviert wird:
procedure TfrmBase.LockClientArea(lock: Boolean);
begin with Application.MainForm do begin if lock then SendMessage(ClientHandle, WM_SETREDRAW, 0, 0) else begin SendMessage(ClientHandle, WM_SETREDRAW, 1, 0); RedrawWindow(ClientHandle, nil, 0, RDW_INVALIDATE or RDW_ERASE or RDW_ALLCHILDREN); end; end; end; procedure TfrmBase.WMMDIActivate(var Message: TWMMDIActivate); begin LockClientArea(Message.ActiveWnd <> Handle); inherited; end; procedure TfrmBase.WMSysCommand(var Message: TWMSysCommand); begin if (Message.CmdType and $FFF0 = SC_MAXIMIZE) then begin LockClientArea(True); inherited; LockClientArea(False); end else inherited; end;
Delphi-Quellcode:
Den 3. Versuch hab ich nicht mehr, der hat auch irgendwie garnicht funktioniert.
procedure TfrmBase.SetAnimation(Value: Boolean);
var Info: TAnimationInfo; begin Info.cbSize := SizeOf(TAnimationInfo); BOOL(Info.iMinAnimate) := Value; SystemParametersInfo(SPI_SETANIMATION, SizeOf(Info), @Info, 0); end; Der beste Effekt, den ich damit erzielen konnte war der, dass zuerst das Fenster normal gezeichnet wird, jedoch ohne jeglichen Inhalt (also grau), dann maximiert wird und dann eben wieder gezeichnet. Aber es erscheint dennoch als normales Fenster zuerst, bevor es maximiert dargestellt wird. Das hab ich leider noch nicht wegbekommen. Vielleicht findet ja noch jemand die Lösung... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 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