Delphi-PRAXiS
Seite 1 von 3  1 23   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Procedure während gedrückthalten eines Buttons (https://www.delphipraxis.net/204226-procedure-waehrend-gedrueckthalten-eines-buttons.html)

F1nal 8. Mai 2020 12:23

Delphi-Version: 10.3 Rio

Procedure während gedrückthalten eines Buttons
 
Liste der Anhänge anzeigen (Anzahl: 1)
Anhang 52469 <- Bild der Aufgabe

Wir haben als Schulaufgabe, diese Aufgabe bekommen. Ich und meine Freunde verzweifeln nun aber schon seit heute morgen und wissen nicht wie wir dass mit dem gedrückthalten machen sollen. Ich hoffe uns kann hier wer helfen. Ein nachfragen beim Lehre ist aktuell leider nicht möglich weshalb ich hier nachfrage.

Vielen Dank!
Leon

Der schöne Günther 8. Mai 2020 12:28

AW: Procedure während gedrückthalten eines Buttons
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo-

Die "Befehlsschaltfläche" ist wohl ein ganz normaler
Delphi-Quellcode:
TButton
, richtig?

Ihr habt gesehen dass es für den Button nicht nur
Delphi-Quellcode:
OnClick
gibt, oder? Protipp: Es hat was mit der Maus zu tun.

F1nal 8. Mai 2020 12:30

AW: Procedure während gedrückthalten eines Buttons
 
Ja es handelt sich um einen normalen Button, wir haben auch die anderen Ereignisse gesehen wissen jedoch nicht welche dass tut, was wir möchten.

DieDolly 8. Mai 2020 12:35

AW: Procedure während gedrückthalten eines Buttons
 
Zitat:

Ja es handelt sich um einen normalen Button, wir haben auch die anderen Ereignisse gesehen wissen jedoch nicht welche dass tut, was wir möchten.
Probieren geht über studieren. Oder einfach in der Doku nachgucken.

F1nal 8. Mai 2020 12:44

AW: Procedure während gedrückthalten eines Buttons
 
Delphi-Quellcode:
procedure TF_TagNacht.Bt_BlitzMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  B := true;
  if B = true then
    begin
     Im_Wolke1.Picture.LoadFromFile('Regen.ico');
    end;
end;

procedure TF_TagNacht.Bt_BlitzMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 B := false;
  if B = false then
    begin
     Im_Wolke1.Picture.LoadFromFile('Wolke.ico');
    end;
end;
Wir haben es jetzt nach ein bisschen rumprobieren so gelöst. Danke für den Tipp mit der Maus. Wir waren davon ausgegangen dass diese Ereignisse nur für bewegungen mit der Maus sind.

DieDolly 8. Mai 2020 12:45

AW: Procedure während gedrückthalten eines Buttons
 
Nicht auf True und False vergleichen :warn:
Und wenn dann vereinfachen

Delphi-Quellcode:
procedure TF_TagNacht.Bt_BlitzMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 Im_Wolke1.Picture.LoadFromFile('Regen.ico');
end;

procedure TF_TagNacht.Bt_BlitzMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 Im_Wolke1.Picture.LoadFromFile('Wolke.ico');
end;
Zitat:

Wir waren davon ausgegangen dass diese Ereignisse nur für bewegungen mit der Maus sind.
Dafür gibt es MouseMove.

F1nal 8. Mai 2020 12:46

AW: Procedure während gedrückthalten eines Buttons
 
Zitat:

Zitat von DieDolly (Beitrag 1464020)
Nicht auf True und False vergleichen :warn:
Und wenn dann vereinfachen

Delphi-Quellcode:
procedure TF_TagNacht.Bt_BlitzMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 Im_Wolke1.Picture.LoadFromFile('Regen.ico');
end;

procedure TF_TagNacht.Bt_BlitzMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 Im_Wolke1.Picture.LoadFromFile('Wolke.ico');
end;

Ok und warum nicht?

DieDolly 8. Mai 2020 12:46

AW: Procedure während gedrückthalten eines Buttons
 
Das können andere besser erklären als ich. Man macht es einfach nicht, da es nicht korrekt ist und zu Fehlern führen kann. Man vergleicht mit
Delphi-Quellcode:
if B then
und
Delphi-Quellcode:
if not B then
. Aber das ganze Boolean-Zeug brauchst du da nicht.

Sherlock 8. Mai 2020 12:46

AW: Procedure während gedrückthalten eines Buttons
 
Klasse! :thumb:

In der Tat ist es auf den ersten Blick verwirrend, MouseDown/MouseUp zu sagen, aber angesichts von MouseMove (das sich um alle Bewegungen der Mouse im Bereich des Buttons kümmert) und dem Drang von Entwicklern doch irgendwie kurze Namen haben zu wollen, hat man eben statt OnMouseButtonDown nur OnMouseDown.

Sherlock

Der schöne Günther 8. Mai 2020 12:47

AW: Procedure während gedrückthalten eines Buttons
 
Zitat:

Zitat von DieDolly (Beitrag 1464020)
Und wenn dann vereinfachen

Zitat:

Zitat von DieDolly (Beitrag 1464022)
Aber das ganze Boolean-Zeug brauchst du da nicht.

Wenn man das jemandem schon so hinknallt sollte man auch etwas genauer hinsehen.

Weißt du ob das B nicht irgendeinen Sinn hatte? Der Vergleich auf B war überflüssig, ja, aber ob es das Setzen von B auch war kann niemand außer ihm selbst beurteilen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:12 Uhr.
Seite 1 von 3  1 23   

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