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
Mesion

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

Befehl zum pausieren

  Alt 1. Okt 2010, 19:07
Delphi-Version: 7
Guten Tag,
ich hoffe, dass ich hier in das richtige Unterforum schreibe, wenn nicht, dann tut es mir Leid.

Seit ein paar Wochen habe ich nun Informatik in der Schule und als Hausaufgabe sollen wir ein Paintprogramm mit 8 Funktionen programmieren.
Für besondere Funktionen gibt es Pluspunkte.

Ich habe mir nun überlegt eine Funktion zu machen bei der ein ausgefüllter Kreis gezeichnet wird, der immer größer wird, je länger die Maus gedrückt wurde.
Das untere ist dabei herrausgekommen und es funktioniert auch, aber der Kreis vergrößert sich zu schnell, deswegen suche ich nach einem Befehl den ich in die If-Verzweigung bauen kann, der sozusagen die Zeit kurz stehen lässt, sodass die Schleife zum Beispiel 0,1 Sekunden eine Pause einlegt.

Es wäre sehr nett, wenn mir vielleicht jemand helfen könnte.

Mit freundlichen Grüßen
Mesion

Delphi-Quellcode:
                  repeat

                  If dieMaus.istGedrueckt = false then
                  begin
                  hposition2:=0;
                  meinStift.bewegeBis(dieMaus.hPosition,dieMaus.vPosition);
                  end;

                  If dieMaus.istGedrueckt = true then
                  begin
                  meinStift.bewegeBis(meinStift.hPosition,meinStift.vPosition);
                  hposition2:=(hposition2+1);
                  meinStift.zeichneKreis(1+hposition2);
                  end;

                  until
                  dieMaus.doppelklick;
[EDIT]Delphi-Tags eingefügt. Bitte künftig selber machen. Danke. MfG. Christian Seehase[/EDIT]

Geändert von Christian Seehase ( 1. Okt 2010 um 19:40 Uhr)
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.779 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Befehl zum pausieren

  Alt 1. Okt 2010, 20:59
Delphi-Quellcode:
repeat
  If not dieMaus.istGedrueckt {= false} then
    begin
      hposition2:=0;
      meinStift.bewegeBis(dieMaus.hPosition,dieMaus.vPosition);
    end{;}
  else
  {If dieMaus.istGedrueckt then}
    begin
      meinStift.bewegeBis(meinStift.hPosition,meinStift.vPosition);
      hposition2:=(hposition2+1);
      meinStift.zeichneKreis(1+hposition2);
    end;
          
  sleep(150); // oder besser delay aus der Codelib nehmen
until dieMaus.doppelklick;
Grüße
Klaus
Klaus

Geändert von Klaus01 ( 1. Okt 2010 um 21:01 Uhr)
  Mit Zitat antworten Zitat
Mesion

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

AW: Befehl zum pausieren

  Alt 1. Okt 2010, 21:27
Vielen Dank für deine Antwort.

Wenn ich das mit sleep mache, dann steht da Undefinierter Bezeichner, muss ich den Befehl eventuell auf Deutsch benutzen?
Schlafen, Ruhen und Pausieren habe ich aber schon ausprobiert ^^
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#4

AW: Befehl zum pausieren

  Alt 1. Okt 2010, 21:38
Nein, die Funktion wird so geschrieben.

Du hast deine Zeichenfunktionen wahrscheinlich in einer extra Unit. Da wird nicht der Standard-Satz externer Units eingetragen.

In der Unit, in welcher Du sleep() verwenden willst, in die uses Liste Windows mit aufnehmen (uses im Quelltext suchen).

Tipp:
Cursor über geschriebenes sleep(), dann F1. In dem Hilfetext steht auch immer die externe Unit, in der die Funktion/Procedure etc. definiert ist. Natürlich nur wenn es ein bekannter Bezeichner ist.

Geändert von Satty67 ( 1. Okt 2010 um 21:43 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Befehl zum pausieren

  Alt 1. Okt 2010, 21:38
Sollte eigentlich in der Windows.pas deklariert sein. Hast du die Unit unter uses eingebunden?

Aber sag mal, mit was für einer VCL programmiert ihr da in der Schule, da da ja irgendwie alles auf deutsch ist.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#6

AW: Befehl zum pausieren

  Alt 1. Okt 2010, 21:48
Sieht mir eher nach einer teilweise deutschsprachigen Komponenten/Objekt-Sammlung zum Zecihnen aus.
  Mit Zitat antworten Zitat
Mesion

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

AW: Befehl zum pausieren

  Alt 2. Okt 2010, 16:47
Guten Tag,
vielen Dank für die zahlreichen Antworten.
Wir arbeiten mit Stifte und Mäuse Version 2.4

Ihr habt Recht und der Befehl wurde umgenannt.
Er heisst "warte()".
Ich habe aber schon wieder ein Problem.
Ich soll ja 8 Funktionen schreiben und die meisten habe ich jetzt auch schon, aber sie lassen sich irgendwie nicht ineinanderfügen.
Alleine funktionieren sie aber einwandfrei.
Ich glaube das Problem hat mit der Tastatur zu tun.

In der Schule hatten wir schon 2 Funktionen in einem Programm: Malen und Radieren.
Ich habe nach dem gleichen Schema dann noch 3 Funktionen von mir eingefügt.
Kreise die immer größer werden, je länger man drückt.
Das gleiche nochmal mit Rechtecken und dann noch Linien zeichnen.


Es wäre echt nett wenn mir da jemand helfen könnte,
ich bin schon am verzweifeln.

Mit freundlichen Grüßen
Mesion



Delphi-Quellcode:
begin
  meinStift.hoch;
  repeat
    if (dieTastatur.wurdeGedrueckt) then
    begin
    dieTastatur.zeichen;
      if (dieTastatur.zeichen='r') then
      begin
        meinStift.radiere;
        meinStift.bewegeBis(dieMaus.hposition,dieMaus.vposition);
        if (dieMaus.istGedrueckt) then
        begin
          meinStift.runter;
        end
        else
        begin
          meinStift.hoch;
        end;
      end;
      if (dieTastatur.zeichen='z') then
      begin
        meinStift.normal;
        meinStift.bewegeBis(dieMaus.hposition,dieMaus.vposition);
        if (dieMaus.istGedrueckt) then
        begin
          meinStift.runter;
        end
        else
        begin
          meinStift.hoch;
        end;
      end;
      if (dieTastatur.zeichen='k') then
      begin
        if (dieMaus.istGedrueckt = true) then
        begin
          meinStift.setzeLinienBreite(2);
          meinStift.bewegeBis(meinStift.hPosition,meinStift.vPosition);
          RadiusKreis:=(RadiusKreis+1);
          warte(10);
          meinStift.zeichneKreis(Radiuskreis);
        end
        else
        begin
          meinStift.bewegeBis(dieMaus.hposition,dieMaus.vposition);
          meinStift.hoch;
          Radiuskreis:=0;
        end;
        if (dieTastatur.zeichen='e') then
        begin
          if (dieMaus.istGedrueckt = true) then
          begin
            meinStift.setzeLinienBreite(2);
            meinStift.bewegeBis(meinStift.hPosition,meinStift.vPosition);
            BreiteRechteck:=(BreiteRechteck+1);
            LaengeRechteck:=(LaengeRechteck+1);
            warte(10);
            meinStift.zeichneRechteck(BreiteRechteck,LaengeRechteck);
          end;
        end
        else
        begin
          meinStift.bewegeBis(dieMaus.hposition,dieMaus.vposition);
          meinStift.hoch;
          BreiteRechteck:=0;;
          LaengeRechteck:=0;
        end;
        if (dieTastatur.zeichen='l') then
        begin
          if (dieMaus.istGedrueckt = true) then
          begin
            meinStift.runter;
            meinStift.zeichneKreis(3);
            meinStift.bewegeBis(meinStift.hPosition,meinStift.vposition);
          end
          else
          begin
            meinStift.bewegeBis(dieMaus.hposition,dieMaus.vposition);
            meinStift.hoch;
          end;
        end;
      end;
      dieTastatur.weiter;
    end;
  until (dieMaus.doppelklick);
end;
  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 20:29 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