Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Jalousiene Simulation! (https://www.delphipraxis.net/69732-jalousiene-simulation.html)

Pinki 19. Mai 2006 11:46


Jalousiene Simulation!
 
Hallo,ich bin ziemlich Anfänger.Ich möchte gerne ein Proggi der Jalousiene simulieren soll schreiben.
Anhand des editierten wertes sollen dementsprechend die Position dargestellt werden(Höhe der Lamelle)

:) So sieht er aus.Funzen tut er leider nicht. :wall:
Hat einer ein Vorschlag für mich.Benutze Delphi 5

Vielen Dank im Voraus
Grüss :thumb:

Delphi-Quellcode:
unit JLS;

interface


uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls ;

type
  TForm1 = class(TForm)

    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Edit1: TEdit;
    Image1: TImage;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    Function Ticker(Befehl:String) :Boolean;
    Function Jalousiefahrt(Befehl:String):Boolean;
   



  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
        TLammelle = packed Record
                                 Active : Boolean;
                                 Stellwert: Byte;
                                 LammelleZahl:Byte;
                                 end;
var
  Form1: TForm1;
  Rect:TRect;
implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var h,j,I:Integer;
begin
h:=54;
I:=StrToInt(Edit1.Text);
if I>=10 then I:=9;
Image1.Canvas.Brush.Style:=bsSolid;
Image1.Canvas.Brush.Color:=clBlack;
Image1.Canvas.Rectangle(32,64,150,164);
for j:=1 to 10 do
    begin
h:=h+10;

Image1.Canvas.Brush.Style:=bsSolid;
Image1.Canvas.Brush.Color:=clBlack;
Image1.Canvas.Rectangle(32,h,150,h+I);

    end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Jalousiefahrt('Fahr');
end;

Function TForm1.Jalousiefahrt(Befehl:String):Boolean;
var h,j,I:Integer;
begin
h:=54;
I:=9;
Image1.Canvas.Brush.Style:=bsSolid;
Image1.Canvas.Brush.Color:=clBlack;
Image1.Canvas.Rectangle(32,64,150,164);
for j:=1 to 10 do
begin
h:=h+10;
Image1.Canvas.Brush.Style:=bsSolid;
Image1.Canvas.Brush.Color:=clBlack;
Image1.Canvas.Rectangle(32,h,150,h+I);

if Befehl ='Stop' then break;
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Ticker('Stop');
Jalousiefahrt('Stop');
end;

{Function DrawLamelle(x1,y1,x2,y2:Integer):Boolean;
begin
Image1.Canvas.Rectangle(x1,y1,x2,y2);
end; }

Function TForm1.Ticker(Befehl:String):Boolean;
var i:Integer;

begin
if Befehl<>'Stop' then
for i:=0 to 2 do
begin
Sleep(100);
Application.ProcessMessages;
Result:=True;
end
else
Result:=False
end;
end.

pacman1986 19. Mai 2006 12:34

Re: Jalousiene Simulation!
 
1) Willkommen in der dp :dp:
2) bitte häng das ganze Project an nur mit der dpr kann keiner was anfangen
3) verwende bitte delphi tags(oben wenn du ein beitrag verfasst button mit delphi-code druf)

Pinki 19. Mai 2006 12:40

Re: Jalousiene Simulation!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Delphi-Quellcode:
Hallo,
danke für den Tip!
Hier nochmal ganze Project dabei
:thumb: :thumb:

pacman1986 19. Mai 2006 12:46

Re: Jalousiene Simulation!
 
Hi :D nochmal das ist nicht das ganze Project was du da lieferst ist die dpr datei
was fehlt ist nocht die .pas datei .res .dfm ..... pack einfach alles mitausnahme von der exe in ein arschiv. und die delphi tags oben um den delphi code verwenden dann liest es sich besser :mrgreen:

:thumb:

Pinki 19. Mai 2006 13:22

Re: Jalousiene Simulation!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Bpl.rar
sind hoffe ich alle dateien dabei!
:-)

Martin K 19. Mai 2006 13:36

Re: Jalousiene Simulation!
 
Hi,
ich weiß nicht, ob es dass ist, aber du hast in der dpr-Datei deine Kalsse TForm1 deklariert obwohl sie auch in der Unit (pas-Datei) deklariert ist.

Versuch es mal hiermit (Datei JLSProject.dpr):
Delphi-Quellcode:
program JLSProject;

uses
  Forms,
  JLS in 'JLS.pas' {Form1};

{$R *.RES}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

Martin K 19. Mai 2006 13:41

Re: Jalousiene Simulation!
 
Desweiteren wird bei mir eine Warnmeldung ausgegeben:
Du hast eine Funktion, die aber keinen Rückgabewert liefert.
Delphi-Quellcode:
Function TForm1.Jalousiefahrt(Befehl:String):Boolean;
Eine Funktion ist schließlich dazu da, dass sie auch einen Wert zurückliefert.
In deinem Fall muss die Funktion einen Boolean-Wert liefern,
das tut sie aber nicht...

pacman1986 19. Mai 2006 14:01

Re: Jalousiene Simulation!
 
Delphi-Quellcode:
  if I >= 10 then I := 9;
  Image1.Canvas.Brush.Style := bsSolid;
  Image1.Canvas.Brush.Color := clBlack;
//  Image1.Canvas.Rectangle(32, 64, 150, 164);
  for j := 1 to 10 do
    begin
      h := h + 10;

      Image1.Canvas.Brush.Style := bsSolid;
      Image1.Canvas.Brush.Color := clBlack;
      Image1.Canvas.Rectangle(32, h, 150, h + I);
    end;
In diesem Code hast du ein Schwarzes viereck erstllt und mit schwarz drübergemalt naja ich versteh nicht warum also hab ich es geändert kommentier einfach aus dann hast du schonmal lammelen.

das selbe ist in der Funktion Joulosinenfahrt
Delphi-Quellcode:
  h := 54;
  I := 9;
  Image1.Canvas.Brush.Style := bsSolid;
  Image1.Canvas.Brush.Color := clBlack;
 // Image1.Canvas.Rectangle(32, 64, 150, 164);
  for j := 1 to 10 do
    begin
      h := h + 10;
      Image1.Canvas.Brush.Style := bsSolid;
      Image1.Canvas.Brush.Color := clBlack;

      Image1.Canvas.Rectangle(32, h, 150, h + I);
    //  if Befehl = 'Stop' then break;
    end;

nur das du die höhe hier vrogibst.

PS: breake versteh ich auch nicht.

also bewirken button1 und button2 das selbe

des sinn hinter dem ticker hab ich noch nicht rausgefunden da du ihn durch button3 nur stopst er aber nie an war. ich glaub du wolltest ein timer ?

Martin K 19. Mai 2006 14:07

Re: Jalousiene Simulation!
 
Zitat:

Zitat von pacman1986
also bewirken button1 und button2 das selbe

Nicht ganz!

Die Höhe der Jalousie (also wie weit sie offen ist), ist bei Button1 abhängig von der Eingabe in Edit1.

@pacman1986:
Diese Zeilen hast du weggelassen:
Delphi-Quellcode:
h:=54;
I:=StrToInt(Edit1.Text);

Pinki 19. Mai 2006 14:22

Re: Jalousiene Simulation!
 
Hallo
Martin es lag tatsächlich an der 2X Deklaration.Jetzt funktioniert es.Danke! :firejump:
Mit 'Fahr' sollte die Jalousiene runtarfahren.Und mit Button 3 den Timer stoppen anhand dessen kann ich die Position der jalu errechnen.Das ist nur quasi grafik oberfläche!Wird erweitert...

Packmann mit Farben hast du recht war versehn.eigentlich sollte der Kasten in Silber oder weiss sein.
MfG
Danke für eure Hilfe.
Der Forum ist echt Spitze. :hello:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz