AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Befehl zum pausieren

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

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

AW: Befehl zum pausieren

  Alt 2. Okt 2010, 17:09
Es wird nur schwierig sein Hilfe zu so einer externen Bibliothek von uns zu bekommen.

Stell dir vor ich baue mir eine Bibliothek und für die Ausgabe eines Textes auf dem Bilschirm wird der Befehl
Code:
Popel
benutzt.

Wer soll dass wissen, dass für die Ausgabe folgender Code notwendig ist
Popel( 'du mich auch' ); Dazu muss man die Bibliothek kennen.
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
 
#2

AW: Befehl zum pausieren

  Alt 2. Okt 2010, 17:55
Ja das ist natürlich einleuchtend ^^

Es geht halt darum, dass das Programm immer das letzte Zeichen der Tastatur abfragt und dadurch soll dann immer eine bestimmte Schleife ausgeführt werden.

Bei dieTastatur.wurdeGedrueckt; wird abgefragt ob die Tastatur überhaupt ein Zeichen enthält.

Der Befehl zum abfragen welcher Buchstabe es ist, ist dieTastatur.zeichen;

Und um das vorderste Zeichen zu löschen bzw. die Tastatur zu ''resetten''gibt es den Befehl dieTastatur.weiter;

Mehr Befehle haben wir für die Tastatur nicht bekommen.

Mit freundlichen Grüßen
Mesion
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

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

AW: Befehl zum pausieren

  Alt 2. Okt 2010, 18:00
Möchtest du das man mehrere Tasten gleichzeitig drücken kann?

Außerdem, müsstest du doch, wenn man das k drückt, sagen, dass die Tastatur ein Zeichen weiter geht oder?
Delphi-Quellcode:
if (dieTastatur.zeichen='k') then
begin
  if (dieMaus.istGedrueckt = true) then
  begin

  end
  else
  begin

  end;

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

  end
  else
  begin
    // HIEEEEERR
  end;

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

  end;
end;
Er wird immer im HIEEEEERR Block landen oder?

Übrigens, könntest es auch so schreiben:
Delphi-Quellcode:
if (zeichen = 'a') then
begin

end
else if (zeichen = 'b') then
begin

end;
Weil beide Zeichen gleichzeitig werden wohl nicht gehen.

Und dann kriegt man das noch besser hin:
Delphi-Quellcode:
case zeichen of
  'a' : ;
  'b' : ;
end;
MfG
Fabian
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler

Geändert von xZise ( 2. Okt 2010 um 18:05 Uhr)
  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
 
#4

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
 
#5

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
 
#6

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
 
#7

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

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 07:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz