Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Brauche Hilfe zur Abfrage (https://www.delphipraxis.net/147258-brauche-hilfe-zur-abfrage.html)

mkinzler 9. Feb 2010 21:07

Re: Brauche Hilfe zur Abfrage
 
Zitat:

Zitat von morpheus090682
Die datei binde ich von ihm ein so habe ich das verstanden aber wie greife ich dann
darauf zu?

Auch das ist im Thread beschrieben
[/quote]Und wie mache ich aus den Werten ein Kordinatensystem?[/quote]
Willst du aus den Werten ein Koordinatensystem machen oder diese in einem darstellen?
Zeichnen könntest du auf einem Canvas z.B. einer Paintbox

morpheus090682 9. Feb 2010 21:09

Re: Brauche Hilfe zur Abfrage
 
Oh sorry eins Zeichnen natürlich!!!

Wie geht das aber??? ""Zeichnen könntest du auf einem Canvas z.B. einer Paintbox""

Delphi-Narr 10. Feb 2010 12:51

Re: Brauche Hilfe zur Abfrage
 
Liste der Anhänge anzeigen (Anzahl: 1)
Du fügst auf deiner Form eine PaintBox ein (Unter System glaub ich) und dann kannst du die Zeichenbefehle über

Delphi-Quellcode:
PaintBox1.Canvas.Befehl
aufrufen.

Beispiel:

1. Temperatur: 20°
2. Temperatur: 30°

Auf der PaintBox hast du ein Koordinatensystem, 0|0 ist oben links.


Temperaturspanne von 0° - 100° (Beispiel)..

Also, Höhe der Paintbox z.B. auf 100 setzen

Da der Graph aber unten anfangen soll, musst du bedenken, dass der tiefste Punkt also 100 als y-Wert hat!

Delphi-Quellcode:
begin

with PaintBox1.Canvas do
begin
     
     MoveTo(1*10,(100-20));
     LineTo(2*10,(100-30));
end;

end;
Liebe Grüße!

Ich häng mal ein Beispiel an, ist mit einer Schleife...

morpheus090682 10. Feb 2010 15:05

Re: Brauche Hilfe zur Abfrage
 
Zitat:

Zitat von Delphi-Narr
Du fügst auf deiner Form eine PaintBox ein (Unter System glaub ich) und dann kannst du die Zeichenbefehle über

Delphi-Quellcode:
PaintBox1.Canvas.Befehl
aufrufen.

Beispiel:

1. Temperatur: 20°
2. Temperatur: 30°

Auf der PaintBox hast du ein Koordinatensystem, 0|0 ist oben links.


Temperaturspanne von 0° - 100° (Beispiel)..

Also, Höhe der Paintbox z.B. auf 100 setzen

Da der Graph aber unten anfangen soll, musst du bedenken, dass der tiefste Punkt also 100 als y-Wert hat!

Delphi-Quellcode:
begin

with PaintBox1.Canvas do
begin
     
     MoveTo(1*10,(100-20));
     LineTo(2*10,(100-30));
end;

end;
Liebe Grüße!

Ich häng mal ein Beispiel an, ist mit einer Schleife...


Es geht fast leider kommt wenn ich die werte reinladen möchte der fehler 16,5 ist kein integer wert wo muß ich was ändern habe schon versucht mit real aber dann bekomme ich eine andere fehlermeldung

markus5766h 10. Feb 2010 15:11

Re: Brauche Hilfe zur Abfrage
 
Hallo,
Du musst 16,5 zu einen Integer-Wert wandeln

z.B. Trunc(16.5) --> ergibt 16 (den Vorkommateil)
oder Round(16.5) --> ergibt 17 (gerundeter Wert)

:zwinker:

beim Laden :
Delphi-Quellcode:
 Trunc(StrToFloat(dein geladener Wert als String))
ergibt einen Integer-Wert durch Abschneiden der Nachkommastellen
aus einem String (der einen Fließkommawert darstellt)

Delphi-Quellcode:
 Round(StrToFloat(dein geladener Wert als String))
ergibt einen Integer-Wert durch Runden
aus einem String (der einen Fließkommawert darstellt)

Blackheart 10. Feb 2010 15:14

Re: Brauche Hilfe zur Abfrage
 
Vieleicht solltest du dir auch erstmal dies anschauen Klick mich

morpheus090682 10. Feb 2010 15:33

Re: Brauche Hilfe zur Abfrage
 
Ich möchte aber gerne die Komma mit nehmen.

morpheus090682 10. Feb 2010 16:14

Re: Brauche Hilfe zur Abfrage
 
Delphi-Quellcode:
unit Kurve;

interface

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

type
  TForm1 = class(TForm)
    PaintBox1: TPaintBox;
    ListBox1: TListBox;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

uses csCSV;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
Var
  csvReader : TCSVReader;
  sData : TFileStream;
  i : integer;

Begin
  sData := TFileStream.Create('H:\Werte.CSV',fmOpenRead);
  csvReader := TCSVReader.Create (sData, ';');
  csvReader.First; // Nach Änderung auf Veranlassung von Grenzgaenger nun notwendig. Dank an 'deadcandance'
  Try
    While not csvReader.Eof Do Begin                                          
      For i:=0 to csvReader.ColumnCount - 1 Do                                
        ListBox1.Items.Add (csvReader.Columns[i]);
      csvReader.Next;                                                        
    End;    
  Finally
    csvReader.Free;
    sData.Free;
  End;
End;

procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
     for i:=0 to Listbox1.items.Count-1 do
     begin    
          with Paintbox1.Canvas do
          begin
          if i=0 then MoveTo(((i+1)*30),(500-(StrToInt(ListBox1.Items.Strings[i])*5)));
          if i>0 then LineTo(((i+1)*30),(500-(StrToInt(ListBox1.Items.Strings[i])*5)));
          end;
     end;
end;

end.
So sieht das zur Zeit aus aber wenn ich die Kurve Zeichnen möchte sagt er halt den Fehler.
Was muß geändert werden damit ich auch die Komma werte benutzen kann.
Oder wo müßte Truc hin und wie muss Truc als Befehl aussehen

Blackheart 10. Feb 2010 16:30

Re: Brauche Hilfe zur Abfrage
 
Pushen erst nach 24 Stunden erlaubt
Trunc
Round
Data Types
und Crashkurs anschauen. :wink:

Blup 10. Feb 2010 16:49

Re: Brauche Hilfe zur Abfrage
 
Wenn deine Werte in einem bestimmten Bereich z.B. 0,0 .. 99,0°C liegen und du diese auf Bildpunkte von 0..500 abbilden möchtest, müssen die Werte auf diesen Bereich erweitert werden.
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  Temperatur: Double;
  i, x, y: Integer;
begin
  for i := 0 to Listbox1.Items.Count - 1 do
  begin
    x := (i + 1) * 30;
    Temperatur := StrToFloat(ListBox1.Items.Strings[i]); // Kommazahl
    y := 500 - Round(Temperatur * 5);                   // um den Faktor 5 zoomen, dann umwandeln in Ganzzahl
   
    with Paintbox1.Canvas do
    begin
      if i=0 then
        MoveTo(x, y)
      else
        LineTo(x, y);
    end;
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:28 Uhr.
Seite 4 von 5   « Erste     234 5      

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