Hmm, das ärgert mich aber langsam. Eurer
and not ist falsch. Ich habe
diese Nacht mit einem Studenten für Elektrotechnik und einem für
technische Informatik darüber diskutiert. Sie meinen es gibt gewisse
Vorschiften nach denen dort kein
and stehen darf, bzw. muss es anders
positioniert/kombiniert werden. Eure Programme schmieren jedes Mal
ab und der Monitor macht störende Bildschirmfehler. Dennoch klammert
ihr euch immernoch an falsche Befehle. Jedem das seine.
BEISPIEL:
Hier nun ein vollständiges Beispiel, was Fensterstil-Parameter addiert
und subtrahiert. Addition mit "or" und Substration von Parametern mit
"xor". "
WS_CAPTION" ist ein schlechtes Anschauungsbeispiel. Ich habe
daher als Beispiel "
WS_SIZEBOX" genommen. Damit man sieht, dass die
Befehlsreihe richtig ausgeführt werden. Und jeder auf die Richtigkeit der
Befehle bauen und damit nun seine Ideen realisieren kann. "
WS_SIZEBOX"
stellt die Möglichkeit dar, mit der Maus die Fenstergröße zu ändern.
Delphi-Quellcode:
[...]
// HAUTPROGRAMM.
/////////////////
var
FormMain_hWnd : DWord;
// Handle-Variable für das Fenster.
FormMain_style : Cardinal;
// Ausleseort für den jeweils aktuellen Fensterstil.
[...]
// Erstellung eines Standardfensters.
FormMain_hWnd := CreateWindowEx (0, ClassName, AppName, WS_CAPTION
or WS_VISIBLE
or WS_SYSMENU,
CW_USEDEFAULT, CW_USEDEFAULT, WindowWidth, WindowHeight, 0, 0,
hInstance,
nil);
// Akutalisierung der Stil-Variable des Fensters.
FormMain_style := GetWindowLong(FormMain_hWnd, GWL_STYLE);
[...]
// NACHRICHTENSCHLEIFE.
////////////////////////
// Es werden zwei Buttons benötigt, die als Konstanten
// IDC_BUTTON und IDC_BUTTON2 gesetzt haben.
///////////////////////////////////////////////////
IDC_BUTTON :
Begin
// Aus dem Fensterstil wird die Eigenschaft "WS_SIZEGROUP" entfernt.
SetWindowLong(FormMain_hWnd, GWL_STYLE, FormMain_style
xor WS_SIZEBOX);
// Akutalisierung der Stil-Variable des Fensters.
FormMain_style := GetWindowLong(FormMain_hWnd, GWL_STYLE);
End;
IDC_BUTTON2 :
Begin
// Setzung einer weiteren Fenstereigeneschaft: Fenster wird größenveränderbar.
SetWindowLong(FormMain_hWnd, GWL_STYLE, FormMain_style
or WS_SIZEBOX);
// Akutalisierung der Stil-Variable des Fensters.
FormMain_style := GetWindowLong(FormMain_hWnd, GWL_STYLE);
End;
[...]
Mag sein, dass sich Windows bei Veränderungen von Grundparametern wie
WS_CAPTION
während der Lautzeit ein wenig krumm stellt. Mag sein, dass diese Theorie nie praktisch
umsetzbar sein wird. Jedenfalls klappt mein Weg. Sekundäre Parameter lassen sich gut
damit editieren. Nehme den Tipp von Luckie, erstelle gewisse Einstellungen während der
Entwicklung und den Rest während der Laufzeit.
Cii jaa©$me
graphicar