Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Label unklickbar machen (https://www.delphipraxis.net/121319-label-unklickbar-machen.html)

reyka 25. Sep 2008 16:13


Label unklickbar machen
 
Mein erster Beitrag, weiß jez auch nicht so richtig, ob das hier der richtige Bereich ist...naja ich frag einfach mal ^^

Ich würde in meinem Prog sehr gerne ein Label unklickbar machen zu mindest für eine zeit, nämlich bis ich wieder label1.XXX:=true;
setze geht das irgendwie?? OHNE das das Label grau wird also nich label1.enable:=false / true

wäre super wenn mir jmnd helfen kann, oder vll sagen könnte wie ich jenes umgehen könnte...

mfg reyka :dp:

Is Delpgi Win32 das normale was man in der Schule lernt?? oder welches is das ??^^

DeddyH 25. Sep 2008 16:36

Re: Label unklickbar machen
 
Hallo und Willkommen in der DP :dp:,

Du kannst Dir doch einfach ein Boolsches Feld definieren, das Du im OnClick des Labels auswertest.
Pseudo-Code:
Delphi-Quellcode:
procedure TFormBla.ButtonBlubbClick(Sender: TObject);
begin
  if Variable_gesetzt then
    ...//Code ausführen
end;

reyka 25. Sep 2008 16:40

Re: Label unklickbar machen
 
sorry ich bin ziemlicher anfänger und weiß gerade net so recht was das jetzt bedeuten soll ein boolsches feld selbst zu definieren, was boolean oder wie man das schreibt ist, weiß ich schon...ich will halt das man erst nach onclick button auch onclick label machen kann verstehst du?

DeddyH 25. Sep 2008 16:44

Re: Label unklickbar machen
 
Du meinst, erst wenn ein Button geklickt wurde, soll das Label auch auf Klicks reagieren, ohne dass es sich optisch ändert, richtig?

reyka 25. Sep 2008 16:46

Re: Label unklickbar machen
 
genau :duck: :coder2:

PS: eure Smiley sind klasse :D :dancer2:

DeddyH 25. Sep 2008 16:50

Re: Label unklickbar machen
 
OK.
Delphi-Quellcode:
...
type TFormBla = class(TForm)
  ...
  private
    FCanClick: Boolean; //Definition eines Boolschen Feldes
  ...
end;

...

//Im Create mit false initialisieren
procedure TFormBla.FormCreate(Sender: TObject);
begin
  FCanClick := false;
end;

//Der Button schaltet FCanClick um
procedure TFormBla.ButtonMachAnAusClick(Sender: TObject);
begin
  FCanClick := not FCanClick;
end;

//Das Label wertet das Feld aus
procedure TFormBla.LabelWuppdiClick(Sender: TObject);
begin
  if FCanClick then
    ShowMessage('Ich wurde geklickt');
end;
Probier's mal aus.

inherited 25. Sep 2008 16:52

Re: Label unklickbar machen
 
Ja, Delphi Win32 ist das normale Delphi und höchstwahrscheinlich auch das, was man normalerweise auch lernt.

Zur Frage:
Du deklarierst dir irgendwo in der Klasse deiner Form, am Besten im private-Bereich eine boolsche Variable:
Delphi-Quellcode:
TForm1 = class(TForm)
... irgendwas anderes, was da schon steht
private
  bCanClick: Boolean;

public
... usw
Im OnClick vom Button setzt du diese Variable auf true.
Im OnClick des Labels fragst du sie dann ab.
Delphi-Quellcode:
if not bCanClick then
  exit;
Edit:
Zitat:

Zitat von DeddyH
Delphi-Quellcode:
//Im Create mit false initialisieren
procedure TFormBla.FormCreate(Sender: TObject);
begin
  FCanClick := false;
end;

//Der Button schaltet FCanClick um
procedure TFormBla.ButtonMachAnAusClick(Sender: TObject);
begin
  FCanClick := not FCanClick;
end;

Initialisierung kannst du dir sparen, da die Variable Member einer Klasse ist und somit beim Create mit false initialisiert wird.
Und dein Button-Code würde den Inhalt jeweils invertieren, ich weiß nicht ob das so gefragt war.

reyka 25. Sep 2008 16:58

Re: Label unklickbar machen
 
dumme frage...aber lehrer sagen ja auch immer -> einfach fragen

was bedeutet das b in bcanclick....

mirage228 25. Sep 2008 17:01

Re: Label unklickbar machen
 
Zitat:

Zitat von reyka
was bedeutet das b in bcanclick....

Das ist die sog. "ungarische Notation". Das "b" im Variablen steht für den Typ "Boolean" (Wahrheitswert). Einen String würde man z.B. "strVariable" nennen.
Aber in Delphi ist es üblicher die Notation "FCanClick" zu Verwenden. Mit dem vorangestellten "F" verdeutlichst Du, dass die Variable "FCanClick" ein (hier: privates) Feld (Attribut) der Klasse TForm1 ist.

reyka 25. Sep 2008 17:08

Re: Label unklickbar machen
 
juhu danke euch hat super geklappt und danke nochmal für die erklärung mit "b" "f" und bla... danke!

jetzt noch schnell eine andere frage...

ich habe ja in meinem programm verschiedene Formulare.. kann man irgendwie im ObjektInspektor (heisst so oder? :D) einstellen, das die alle ander gleichen stelle sein sollen? also dass wenn ich jez z.B.
form1.visible:=false;
form2.visible:=true;

das Fenster quasi nicht springt oder kann ich das nur machen, indem ich immer feinsäuberlich alles an die gleiche stelle ziehe^^


mfg reyka :dp:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:41 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz