AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Befehl zum pausieren

Ein Thema von Mesion · begonnen am 1. Okt 2010 · letzter Beitrag vom 2. Okt 2010
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

AW: Befehl zum pausieren

  Alt 2. Okt 2010, 18:45
Bitte nicht auf True prüfen!
Delphi-Quellcode:
if (dieTastatur.zeichen='k') then
begin
  // NIE NIEMALS NICHT AUF TRUE PRÜFEN !!!!
  if (dieMaus.istGedrueckt {= true} ) then
  begin

  end
  else
  begin

  end;

end;
Die Gründe wurden zuhauf hier im Forum erläutert
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Mesion

Registriert seit: 1. Okt 2010
11 Beiträge
 
#12

AW: Befehl zum pausieren

  Alt 2. Okt 2010, 19:38
Möchtest du das man mehrere Tasten gleichzeitig drücken kann?
Nein, es soll immer nur eine Funktion ausgeführt werden.

Außerdem, müsstest du doch, wenn man das k drückt, sagen, dass die Tastatur ein Zeichen weiter geht oder?
Ganz am Ende der ersten If-Verzweigung geht die Tastatur ein Zeichen weiter

// NIE NIEMALS NICHT AUF TRUE PRÜFEN !!!!
Ok, dann prüfe ich nicht auf true, scheint ja fast eine Straftat zu sein ^^


Mittlerweile habe ich es geschafft die Funktionen einzubauen, der einzige Schönheitsfehler ist jetzt nurnoch, dass ich bei meinen eigenen Funktionen, also mit dem Kreis, Rechteck und Linie, dass ich die Aktivierungstaste gedrückt halten muss, damit es funktioniert.

Delphi-Quellcode:
    meinStift.hoch;
    repeat
    meinStift.bewegeBis(dieMaus.hposition,dieMaus.vposition);;
      if (dieMaus.istGedrueckt) then
      begin
        meinStift.runter;;
      end
      else
      begin
        meinStift.hoch;;
      end;

    if (dieTastatur.wurdeGedrueckt) then
    begin


      if (dieTastatur.zeichen='r') then
      begin
        meinStift.radiere;
      end;


      if (dieTastatur.zeichen='z') then
      begin
        meinStift.normal;
      end;


    If (dieTastatur.zeichen='k') then
    begin

      While dieMaus.istGedrueckt = true do
      begin
        meinStift.setzeLinienBreite(2);
        meinStift.bewegeBis(meinStift.hPosition,meinStift.vPosition);
        RadiusKreis:=(RadiusKreis+1);
        warte(10);
        meinStift.zeichneKreis(Radiuskreis);
        meinStift.hoch;
      end;
        meinStift.bewegeBis(dieMaus.hposition,dieMaus.vposition);
        meinStift.hoch;
        Radiuskreis:=0;
      end;


    If (dieTastatur.zeichen='e') then
    begin

      While dieMaus.istGedrueckt = true do
      begin
        meinStift.setzeLinienBreite(2);
        meinStift.bewegeBis(meinStift.hPosition,meinStift.vPosition);
        BreiteRechteck:=(BreiteRechteck+1);
        LaengeRechteck:=(LaengeRechteck+1);
        warte(10);
        meinStift.zeichneRechteck(BreiteRechteck,LaengeRechteck);
        meinStift.hoch;
      end;
        meinStift.bewegeBis(dieMaus.hposition,dieMaus.vposition);
        meinStift.hoch;
        BreiteRechteck:=0;
        LaengeRechteck:=0;
      end;




    If (dieTastatur.zeichen='l') then
    begin

      meinStift.bewegeBis(dieMaus.hposition,dieMaus.vposition);
      meinStift.hoch;

      While dieMaus.istGedrueckt = true do
      begin
        meinStift.runter;
        meinStift.zeichneKreis(3);
        meinStift.bewegeBis(meinStift.hPosition,meinStift.vposition);
        end;

    end;

     dieTastatur.weiter;
     end;


    until
    dieMaus.doppelklick;
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#13

AW: Befehl zum pausieren

  Alt 2. Okt 2010, 20:33
// NIE NIEMALS NICHT AUF TRUE PRÜFEN !!!!
Ok, dann prüfe ich nicht auf true, scheint ja fast eine Straftat zu sein ^^
Es könnte sein, dass dein Programm extrem seltsam reagiert ... aber wie gesagt, steht hier im Forum an mehreren Stellen erläutert
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#14

AW: Befehl zum pausieren

  Alt 2. Okt 2010, 21:57
[...]
Außerdem, müsstest du doch, wenn man das k drückt, sagen, dass die Tastatur ein Zeichen weiter geht oder?
Ganz am Ende der ersten If-Verzweigung geht die Tastatur ein Zeichen weiter[...]
Das ist aber zu spät. Ich habe dir doch das entsprechende Codesegement raus kopiert. Wenn du den Buchstaben k drückst, dann testest du darin ob der Buchstabe e gedrückt wurde. Jetzt verrate mir mal, wie man gleichzeitig eine Taste drücken soll, die zugleich k und e sein soll

Und der Schönheitsfehler ist schnell erklärt:
Wenn du radieren willst drückst du r und der "Pinsel" ist im Radiermodus. Wenn du aber einen Kreiswachsen lassen willst, dann sagst du nicht: Mache einen Kreis und er wird jedes mal ein größer wenn er in der äußeren Schleife ist (das könnte auch etwas schwieriger werden).

Übrigens rücke das doch etwas schöner ein aktuell verwirrt es zumindest mich, dass der Test ob der Buchstabe k gedrückt ist, auf der gleichen Höhe ist, wie der Test ob die Maus gedrückt ist, und dabei eigentlich eine Ebene tiefer ist.

MfG
Fabian

PS: Wenn du if (x = true) then schreibst, dann ist das quasi nix anderes als: if (x = true) = true then . Wenn du mal if (x = false) then hast, dann ist das Äquivalent if (not(x)) then .
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:31 Uhr.
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