Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Lazarus (IDE) (https://www.delphipraxis.net/81-lazarus-ide/)
-   -   edits sortier darstellen? (https://www.delphipraxis.net/175565-edits-sortier-darstellen.html)

Foxi1896 1. Jul 2013 15:46

AW: edits sortier darstellen?
 
@ sx2008: Also ich habe ein Messgerät und machte 8 Messungen wo ich jede Messung in ein Edit anzeigen lasse.
Nun kommen Werte wie z.B. 3 / 5 / 11 / 15 / 2 / 5 / 9 / 12 raus und und die Darstellung ist dann später für ein Diagramm nicht so schön. Da soll es mit der 2 anfangen (dem kleinsten Wert) also 2 / 5 / 9 / 12 / 3 / 5 / 11 / 15 ... und danach wollte ich es erst in ein Memo anzeigen lassen um dort alle Messungen die ich mit einem Bauteil mache untereinander bekomme.
evtl versteht ihr jetzt besser was ich habem möchte.

@DeddyH: versuche mal ob ich das was du mir da geschrieben hast hinbekomme.

sx2008 1. Jul 2013 15:55

AW: edits sortier darstellen?
 
Zitat:

Zitat von Foxi1896 (Beitrag 1220291)
@ sx2008: Also ich habe ein Messgerät und machte 8 Messungen wo ich jede Messung in ein Edit anzeigen lasse.

Ok. Aber warum verwendest du statt den 8 Edits nicht ein StringGrid?
Das Stringgrid könnte z.B. 9 Zeilen haben wobei die oberste Zeile für die Beschriftung verwendet wird.
Du kannst auch mehr als eine Spalte vorsehen (Spalte 1=Nummer der Messung, Spalte 2=Meßwert).

Foxi1896 1. Jul 2013 16:02

AW: edits sortier darstellen?
 
ok. wäre eine überlegung es so zu ändern. Ich habe ein Programm von meinem Betreuer bekommen und soll das weiter ausbauen und da ist es schon so gegeben. Deshalb hab ich noch nicht drüber nachgedacht es allzusehr umzubauen.

Wie füge ich Edits in ein Stringgrid ein? Hab gerade gedacht ich baue um =/

@DeddyH und auch andere: kann es sein das es bei Lazarus kein Minimum befehl gibt? Da sagt er mir Fehler.

Sir Rufo 1. Jul 2013 16:16

AW: edits sortier darstellen?
 
Zitat:

Zitat von Foxi1896 (Beitrag 1220296)
@DeddyH und auch andere: kann es sein das es bei Lazarus kein Minimum befehl gibt? Da sagt er mir Fehler.

Ich setze mir jetzt mal kurz die Oberlehrermütze auf ... Achtung ...

Lazarus kennt davon gar nichts, denn Lazarus ist eine IDE, wenn kennt der Compiler das.

Der Compiler (Lazarus bemüht FPC aka FreePascalCompiler) kennt den Befehl auch nicht nativ. Streng genommen kennt der recht wenig.

Komplexere Funktionen finden sich in Units (Bibliotheken), die man einfach bei
Delphi-Quellcode:
uses
einträgt, um diese in der eigenen Unit zu benutzen.

BTW: Delphi-Referenz durchsuchenSystem.Math.Min und Delphi-Referenz durchsuchenSystem.Math.Max (Achtung, das gilt so für Delphi, sollte aber bei FPC sehr ähnlich sein)

und hier der Link zur FPC Math-Unit-Referenz
http://www.freepascal.org/docs-html/...h/index-5.html

OK, Mütze wieder ab :mrgreen:

DeddyH 1. Jul 2013 16:22

AW: edits sortier darstellen?
 
Außerdem war Minimum als lokale Variable deklariert, das kann der Compiler gar nicht kennen, wenn man es ihm nicht sagt.

Foxi1896 2. Jul 2013 08:36

AW: edits sortier darstellen?
 
@DeddyH: Ahh hatte es kopiert und da war ein Tippfehler: bei var Minimimum und unten Minimum =)

Ich habe es jetzt umgebaut und ein Stringgrid erstellt wo ich die Werte einlese. Wie kann ich dort die Reihenfolge so ändern?


if n_wert=1 then stringgrid1.cells[0,1]:= FormatFloat('0.00',y_wert);
if n_wert=2 then stringgrid1.cells[1,1]:= FormatFloat('0.00',y_wert);
if n_wert=3 then stringgrid1.cells[2,1]:= FormatFloat('0.00',y_wert);
if n_wert=4 then stringgrid1.cells[3,1]:= FormatFloat('0.00',y_wert);
if n_wert=5 then stringgrid1.cells[4,1]:= FormatFloat('0.00',y_wert);
if n_wert=6 then stringgrid1.cells[5,1]:= FormatFloat('0.00',y_wert);
if n_wert=7 then stringgrid1.cells[6,1]:= FormatFloat('0.00',y_wert);
if n_wert=8 then stringgrid1.cells[7,1]:= FormatFloat('0.00',y_wert);
if n_wert=9 then stringgrid1.cells[8,1]:= FormatFloat('0.00',y_wert);
if n_wert=9 then

baumina 2. Jul 2013 08:43

AW: edits sortier darstellen?
 
Du könntest dir jetzt die zahlreichen if's sparen:

Delphi-Quellcode:
  stringgrid1.cells[n-1,1]:= FormatFloat('0.00',y_wert);


Zeilen verschieben geht mit MoveRow

DeddyH 2. Jul 2013 08:55

AW: edits sortier darstellen?
 
Ob das ein TStringGrid, eine TListbox oder TSchießMichTot ist, spielt doch für die Logik gar keine Rolle. Erweitern wir meinen Code von gestern mal dahingehend, dass die Zahlen in der gewünschten Reihenfolge in ein weiteres Array geschrieben werden (den Tippfehler habe ich übrigens mittlerweile korrigiert):
Delphi-Quellcode:
type
  TIntArray = array[1..10] of integer;

procedure MinimumFirst(const Src: TIntArray; out Dest: TIntArray);
var
  (* Variable für die kleinste Zahl im Array *)
  Minimum: integer;
  (* Variable für den Index der kleinsten Zahl innerhalb des Array *)
  IndexOfMinimum: integer;
  (* Laufvariable für die Schleife *)
  i: integer;
  (* aktueller Index im Zielarray *)
  DestIndex: integer;
begin
  (* Initial setzen wir Minimum sowie dessen Index auf das erste Element im Array *)
  Minimum := Src[Low(Src)];
  IndexOfMinimum := Low(Src);
  (* Nun den Rest des Array durchgehen, vergleichen und Variablen ggf. anpassen *)
  for i := Low(Src) + 1 to High(Src) do
    if Src[i] < Minimum then
      begin
        Minimum := Src[i];
        IndexOfMinimum := i;
      end;
  DestIndex := Low(Dest);
  (* Nun in das Ausgabe-Array schreiben *)
  (* Zuerst ab der kleinsten Zahl bis zum Ende *)
  for i := IndexOfMinimum to High(Src) do
    begin
      Dest[DestIndex] := Src[i];
      inc(DestIndex);
    end;
  (* Nun noch die ggf. verbliebenen *)
  for i := Low(Src) to IndexOfMinimum - 1 do
    begin
      Dest[DestIndex] := Src[i];
      inc(DestIndex);
    end;
end;
Ein kurzer Test mit einer Listbox, damit man auch etwas sieht:
Delphi-Quellcode:
procedure TFormTest.FormCreate(Sender: TObject);
const
  Input: TIntArray = (5, 34, 23, 12, 8, 3, 42, 1, 98, 3);
var
  Output: TIntArray;
  i: integer;
begin
  MinimumFirst(Input, Output);
  for i := Low(Output) to High(Output) do
    ListBox1.Items.Add(IntToStr(Output[i]));
end;

Foxi1896 2. Jul 2013 10:51

AW: edits sortier darstellen?
 
ich was ist dieses src? (source?)

DeddyH 2. Jul 2013 10:53

AW: edits sortier darstellen?
 
Das ist der Name des Parameters der Prozedur (bei mir steht Src immer für Source und Dest für Destination).


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:28 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz