Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Buttons deaktivieren?


checker111 - Fr 02.08.02 14:57
Titel: Buttons deaktivieren?
1.Wie kann man die Fensterbuttons(minimeren, maximieren bzw. wiederherstellen, schließen) deaktivieren?
2. Angenommen ich deaktiviere bei einer Anwendung den schließen Button. Kann das Prog dann noch mit einem Button(im Prog) mit

Quelltext
1:
Form1.Close;                    

beendet werden?
thx for help


Klabautermann - Fr 02.08.02 15:13
Titel: Re: Buttons deaktivieren?
Hallo,

zu 1) Das kannst du über die Eigenschaft BorderIcons deines Formulars (wird nur zur Laufzeit sichtbar).

zu 2) Selbstverständlich.

Gruß
Klabautermann


checker111 - Fr 02.08.02 18:34

OK, danke.
Nochwas: Man kann jetzt die Größe aber immer noch verstellen. Gibt es da außer dieser [http://www.delphi-treff.de/content/edhonline/index.php4?id=239] Möglichkeit noch eine andere?
Die funktioniert bei mir nämlich nicht... :(


cbs - Fr 02.08.02 18:39

Tag auch

Zitat:
Man kann jetzt die Größe aber immer noch verstellen.

meinst du damit die größe deines formulars?

wenn ja geht das so:

Quelltext
1:
Form1.BorderStyle:= bsSingle;                    

hiermit hast du zwar noch nen rahmen aber der is in der größe nicht mehr verstellbar.
is natürlich auch im objectinspektor einstellbar

du kannst zum begrenzen deines forms auch die eigenschaft Constraints nutzen, z.b. so

Quelltext
1:
2:
Form1.Constraints.MinHeight:= 200;
Form1.Constraints.MinWidth:= 200;

jetzt kann das Form bis auf 200x200 verkleinert werden. mehr geht nicht. vergrössern ja verkleinern nein


checker111 - Fr 02.08.02 18:48

Danke für die schnelle Antwort. Ich werde hier reinposten, ob es funktioniert hat... :D
P.S.: Ja, ich meine die Größe des Formulars :wink:


checker111 - Fr 02.08.02 18:53

Ja, funktioniert! :D
Ich habe aber oben noch meine letzte Frage dazu vergessen:
Kann man auch unterbinden, dass das Fenster verschoben wird?
Nochmal DANKE für eure Hilfe
cu checker


cbs - Fr 02.08.02 19:17

ja kann man (code is aus swissdelphicenter.ch [http://www.swissdelphicenter.ch/de/showcode.php?id=237])

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
private 
   
procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND; 

  {...} 
implementation 


procedure TForm1.WMSysCommand(var Msg: TWMSysCommand); 
begin 
  if ((Msg.CmdType and $FFF0) = SC_MOVE) or 
    ((Msg.CmdType and $FFF0) = SC_SIZE) then 
  begin 
    Msg.Result := 0; 
    Exit; 
  end; 
  inherited; 
end;

du deklarierst unter private deines formulars die procedure WMSysCommand und schreibst dann unter dem implementation teil die procedure. der code verhindert ein verschieben und ein vergrößern/verkleinern.

möchtest du nur das die form nicht verschoben werden kann nimmst du folgende zeilen raus:

Quelltext
1:
or ((Msg.CmdType and $FFF0) = SC_SIZE)                    

ich habs aber nicht getestet


checker111 - Fr 02.08.02 19:40

Funktioniert einwandfrei! :D :D :D
RIESENGROßES D A N K E nochma!!!
cu checker