Autor Beitrag
Yoshi1991
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 09.02.09 19:21 
Hi
Ich wollte mal wissen ob ich es irgendwie einrichten kann das ein bestimmtes ereigniss eintritt wenn ein Bild unsichtbar ist und ein anderes ereigniss wenn das Bild sichtbar ist.

Mein genaues Anliegen ist eigentlich:
Ich habe 2 Bilder und einen Button.
Wenn ich auf den Button klicke und das Bild-1 gerade sichtbar ist dann soll das Bild-2 sichtbar werden.
Wenn ich auf den Button klicke und das Bild-1 gerade unsichtbar ist soll es sichtbar werden (aber nicht Bild-2)

Ich habe bereits folgendes versucht:
ausblenden Delphi-Quelltext
1:
2:
if Picture1.hide then Picture1.show;
if Picture1.show then Picture2.show;

das hat jedoch nicht funktioniert :(

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 09.02.09 19:28 
Moin und :welcome: im Forum!

user profile iconYoshi1991 hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe 2 Bilder und einen Button.
Kurz, du möchtest mit einem Button verschiedene Aktionen auslösen. Dazu haben wir was in der Library, Beispiel B. :idea: ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19275
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 09.02.09 19:40 
user profile iconYoshi1991 hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe 2 Bilder und einen Button.
Wenn ich auf den Button klicke und das Bild-1 gerade sichtbar ist dann soll das Bild-2 sichtbar werden.
Wenn ich auf den Button klicke und das Bild-1 gerade unsichtbar ist soll es sichtbar werden (aber nicht Bild-2)
Dann müsstest du schauen ob Bild 1 sichtbar ist und dementsprechend reagieren. Das hast du ja auch versucht.
user profile iconYoshi1991 hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Delphi-Quelltext
1:
2:
if Picture1.hide then Picture1.show;
if Picture1.show then Picture2.show;
Nur Hide und Show verstecken ja das Bild oder zeigen es an, damit bekommst du aber nicht heraus, ob es gerade sichtbar ist.

Was heißt denn sichtbar auf englisch? Visible, genau:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
if Picture1.Visible then
  Picture2.Visible := True
else
  Picture1.Visible := True;
Alternativ gibt es natürlich den von user profile iconNarses vorgeschlagenen Weg.
Jens Hartmann
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 120

XP
Delphi
BeitragVerfasst: Mo 09.02.09 19:42 
Hallo,

So in die Richtung etwa:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if Picture1.Visible = true then
    begin
      Irgendwas...
    end
    else
    begin
      Irgendwas anderes...
    end;
end;
Yoshi1991 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 09.02.09 19:45 
ok danke^^
das hilft mir weiter :D
mit dem was Narses geschrieben hat werd ich mich später beschäftigen weil ich noch nicht so weit mit delphi-lernen bin^^
aber das mit dem visible is klasse
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 09.02.09 19:59 
Aber bitte nicht auf true abfragen. So ist es kürzer und fehlerunanfälliger:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if Picture1.Visible then
    begin
      Irgendwas...
    end
    else
    begin
      Irgendwas anderes...
    end;
end;
Jens Hartmann
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 120

XP
Delphi
BeitragVerfasst: Mo 09.02.09 20:01 
Kürzer versteh ich jetzt, aber warum Störunanfälliger?
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 09.02.09 20:07 
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19275
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 09.02.09 20:09 
Das klappt nicht immer, denn ein Wahrheitswert, der als wahr interpretiert wird, muss nicht gleich der Konstante True sein. 0 ist False, alles andere True. Die Konstante True, mit der du vergleichst, ist aber nur einer dieser Werte:
www.delphi-treff.de/...olean-werten/page/4/
Denn es gibt ja keine 1 Bit Werte, auch ein boolscher Wert ist 1 Byte groß.

Beispiel (etwas konstruiert, aber das passiert auch wirklich, z.B. bei API Rückgabewerten):
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
var
  a: Boolean;
  c: PByte;
begin
  c := @a;
  c^ := Byte(-1);
  if a then
    ShowMessage('Ja')
  else
    ShowMessage('Nein');
  if a = True then
    ShowMessage('Ja')
  else
    ShowMessage('Nein');
Ergebnis: Es wird nacheinander Ja und Nein angezeigt. Der Vergleich mit True schlägt fehl...


Zuletzt bearbeitet von jaenicke am Mo 09.02.09 20:52, insgesamt 1-mal bearbeitet
Jens Hartmann
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 120

XP
Delphi
BeitragVerfasst: Mo 09.02.09 20:19 
Juh, Verstanden.

Habe es ausprobiert. Dachte bis lang, das Bool immer nur 1 oder 0 sein kann (Digitaltechnik Elektrotechnik)

Naja,

Danke für´s belehren.