![]() |
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. |
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) |
Re: Jalousiene Simulation!
Liste der Anhänge anzeigen (Anzahl: 1)
Delphi-Quellcode:
:thumb: :thumb:
Hallo,
danke für den Tip! Hier nochmal ganze Project dabei |
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: |
Re: Jalousiene Simulation!
Liste der Anhänge anzeigen (Anzahl: 1)
Bpl.rar
sind hoffe ich alle dateien dabei! :-) |
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. |
Re: Jalousiene Simulation!
Desweiteren wird bei mir eine Warnmeldung ausgegeben:
Du hast eine Funktion, die aber keinen Rückgabewert liefert.
Delphi-Quellcode:
Eine Funktion ist schließlich dazu da, dass sie auch einen Wert zurückliefert.
Function TForm1.Jalousiefahrt(Befehl:String):Boolean;
In deinem Fall muss die Funktion einen Boolean-Wert liefern, das tut sie aber nicht... |
Re: Jalousiene Simulation!
Delphi-Quellcode:
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.
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; 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 ? |
Re: Jalousiene Simulation!
Zitat:
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); |
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. |
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