Generator für ein Kleinfeldtunier
-
- Beiträge: 8
- Registriert: Mo 7. Mär 2011, 15:23
- OS, Lazarus, FPC: ubuntu 10.10 (L 0.9.28.2 FPC 2.4.0-2)
- CPU-Target: 32Bit
Generator für ein Kleinfeldtunier
habe vor kurzem angefangen mit Lazarus zuarbeiten und dachte mir das ich was sinnvolles mache... Da wir Pfingsten immer ein kleines Kleinfeldtunier veranstallen, dachte ich mir, dass ich dafür eine Art Generator baue...
Habe damit auch schon ein bisschen angefangen, jedoch wollte ich euch hier mal fragen, ob es sinnvoll ist, wie ich vorgehe oder ob es da eine viel bessere bzw einfachere Art und Weise gibt.
Ich fange mal an und beschreibe was ich haben möchte und dann wie ich es umgesetzt habe.
Haben drei verschiedene Klassen mit je 2 Gruppen. (Amateur Gruppe A und B, Halb-Profi Gruppe A und B und Profi Gruppe A und B)
Nun soll man am Anfang die Namen eintragen und dann soll das Programm die Spiele festlegen und auch die Tabelle ausspucken...
Nun habe ich die erste Form dazu genommen und habe zu jeder Klasse 12 Editfelder erstellt, damit ich dann da die Namen der Mannschaften eintragen. Habe dann ein Button gelegt der mich auf Form2 bringt und dort habe ich per eigenarbeit die Begegnungen alle mit labels festgelegt. Jedoch müsste ich so um die 20 forms anfertigen, damit ich die verschiedenen Konstellation alle abfertigen kann...weil wir halt im vorfeld nicht wissen wie viele Mannschaften pro Klasse wirklich kommen.
Nun meine Frage:
Kann man nachdem man die Namen in die Editfelder eingegeben hat, das so schreiben dass er die Paarungen ausspuckt?
Wenn nicht dann mache ich das auf die Umständliche Art und Weise.
Und meine zweite Frage:
Wie mache ich das am besten mit der Tabelle???
Freue mich über jede Hilfe...
Danke schon mal...
-
- Beiträge: 308
- Registriert: Do 9. Apr 2009, 10:10
- OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
- CPU-Target: 32Bit
- Wohnort: 785..
Re: Generator für ein Kleinfeldtunier
Man sollte wissen, dass normalerweise bei dieser kleinen Anzahl an Spielen eine Handrechnung schneller gemacht ist, als der Programmieraufwand betrieben. Wenn man allerdings Programmierung üben will ist es durchaus anerkennenswert.
Ich persönlich empfehle FPSpreadSheet verwenden um nacher Tabellen abzuspeichern. (Evtl will ja auch jemand das ganze archivieren....)
-
- Beiträge: 8
- Registriert: Mo 7. Mär 2011, 15:23
- OS, Lazarus, FPC: ubuntu 10.10 (L 0.9.28.2 FPC 2.4.0-2)
- CPU-Target: 32Bit
Re: Generator für ein Kleinfeldtunier
Habe da aber noch ein paar Fragen

habe wie beschrieben die Editfelder auf form1 gelegt, damit man dort die Mannschaftsnamen eintragen kann. Dann habe ich auf Form2 ganz viele Labels gelegt, die die Paarungen 1-2, 3-4, 1-3 und so weiter schon festlegt, jez wollte ich, dass die Namen die man eingibt in den Labels eingefügt werden.
Wie mache ich das, dass er die aus Form1 zieht?
Und ich wollte zusätzlich die Spielzeit einfügen...Dachte an sowas wie etwa: Start-Spielzeit: Bla und dann halt in die Felder Bla + n , Bla + 2*n und so weiter....das würde ich glaube ich noch hinbekommen, jedoch schon mal vorab, wie mache ich das das er nur bis 60 min zählt und dann eine stunde dazu addiert, also 14:55 + 8 = 15:03 und nicht 14:63...
-
- Beiträge: 770
- Registriert: Sa 21. Feb 2009, 13:46
- OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
- CPU-Target: 32Bit
Re: Generator für ein Kleinfeldtunier

Als erstes würde ich dir eine umstellung der eingabe empfehlen - kann sein das ich zu kompliziert denke , dann korrigiert mich.
Anstatt 12 Editfelder zu verwenden und dann nochmal 10 Formen für alle manschaften.
Nimm eine Tabelle - TStringGrid (bei Additional).
in die Erste Reihe kommt DerName der Manschaft
In Die 2te Reihe kommt eine Zahl ( 1 für anfänger - 2 für mittel - 3 für profis).
ab der 3ten bis zur 15 kommt dan die Spieler...
Den Wert bekommst du Mit
Code: Alles auswählen
StringGrid1.Cells[x,y]:string
---
Das macht das programm natürlich voll überdimensioniert und universeller - wenn das zu kompliziert ist dann behalt das jetzige bei

---
Wenn du auf Form2 bist und auf Form1 zugreifen willst - musst du in der Unit von Form2 (unit2) die unit1 in der uses clausel ganz oben hinzufügen:
Code: Alles auswählen
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Grids, unit1;
Code: Alles auswählen
implementation
uses unit1;
Ab den implementation Teil ist das nicht mehr so- da , soweit ich zu glauben weis (:D) man mit ein paar einschränkungen beim zugriff rechnen muss wenn es unten steht. In deinem Fall egal - ich glaub wenn etwas oben steht kann man die in der unit deklarierten klassen benutzen - wenn es unten steht nicht.
Aber da bin ich mir nicht sicher !
---
Mit der Zeit ist das kein Problem.
Nimm TTime.
Oder TDateTime wenn du es mit Datum haben willst.
TimetoStr bzw DateTimetoStr
TTime speicher von 0 bis 0.999... die Uhrzeit. 0 ist 0:00 . 0.999... ist 23:59.
Ein tag hat 86400 sekunden oder 1440 minuten.
Wenn Du jetzt 0.5 + (60/3600 { 60/1440 entspricht 60 min } ) rechnetst dann speichert er das als Zahl.
Beim Umrechnen gibt es keine Probleme mit Zahlen wie 14:63.
Beim verwenden von TDateTime wird eine Kommazahl verwedet. Nachkommastelle ist TTime. Davor steht die Anzahl der Tage sein wasweisich (1.1.1970 oder so)
Hier wird auch automatisch auf Alle besonderheiten Des kalenders gedacht...
Code: Alles auswählen
Signatur := nil;
-
- Beiträge: 8
- Registriert: Mo 7. Mär 2011, 15:23
- OS, Lazarus, FPC: ubuntu 10.10 (L 0.9.28.2 FPC 2.4.0-2)
- CPU-Target: 32Bit
Re: Generator für ein Kleinfeldtunier
Aber denke mache die Tabellen damit...
Meintest du das ungefähr so? als erstes soll er nur die Zeit(edit37) ausgeben die Ich da hinschreibe und dann halt die Zeit + die Spieldauer(edit38). Das ganze soll starten wenn ich auf einen Button klick...
Code: Alles auswählen
form2.label5.caption:= (edit37.text) + '-' + ( timetostr(edit37.text)+ timetostr(edit38.text));
Danke

edit: habe mir gerade noch ein paar gedanken dazu gemacht und ich denke es wäre sinnvoll einfach eine variable zu nehmen, also zB sp:= timetostr(edit38.text); dann wird die spalte kleiner...und das gleiche mit der zeit... z:= timetostr(edit37.text);
also würde das so aussehen:
Code: Alles auswählen
form2.label5.caption:= (edit37.text) + ' - ' + strtotime(z + sp) ;
-
- Beiträge: 770
- Registriert: Sa 21. Feb 2009, 13:46
- OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
- CPU-Target: 32Bit
Re: Generator für ein Kleinfeldtunier
Trotzdem solltest du wissen: was du wie konvertierst:
form2.label5.caption:= (edit37.text) + '-' + ( timetostr(edit37.text)+ timetostr(edit38.text));
du gehst davon aus das edit37.text vom typ time wäre - richtig wäre
Code: Alles auswählen
form2.label5.caption:= (edit37.text) + '-' + timetostr( strtotime(edit37.text)+ strtotime(edit38.text));
Code: Alles auswählen
form2.label5.caption:= (edit37.text) + ' - ' + TimetoStr(z + sp) ;
Code: Alles auswählen
Signatur := nil;
-
- Beiträge: 8
- Registriert: Mo 7. Mär 2011, 15:23
- OS, Lazarus, FPC: ubuntu 10.10 (L 0.9.28.2 FPC 2.4.0-2)
- CPU-Target: 32Bit
Re: Generator für ein Kleinfeldtunier
danke..
das klappt jez schon alles super...
versuch mich jetzt an der Tabelle...

Edit: Hätte da noch eine kleine Frage: wie bekomme ich die Sekunden weg? möchte das er das so anzeigt: 14:30 - 14:45 und der zeigt : 14:30 - 14:45:00 an...wie bekomme ich jetzt die Nullen weg???

Edit2: Kann jemand die Frage in Einsteigerfragen verschieben...
Habe um die Ergebnisse auszuwerten folgendes gemacht:
Code: Alles auswählen
AA1Tsp1:=strtofloat(edit1.text);
AA1Tsp2:=strtofloat(edit9.text);
AA1Tsp3:=strtofloat(edit18.text);
AA2Tsp1:=strtofloat(edit2.text);
.
.
.
form3.stringgrid1.cells[2,1]:=floattostr(AA1Tsp1+AA1Tsp2+AA1Tsp3)+ ' : ' + floattostr(AA2Tsp1+AA3Tsp2+AA4Tsp3);
usw...
und die letzte Frage ist:
Kann ich das mit den Punkten berechnen so machen??
if a > b then c:=3;
if a = b then c:=1;
if a = b then d:=1;
if a < b then d:=3;
brauche c und d dann zum zusammenrechnen der Punkte...
Danke schonmal

-
- Beiträge: 770
- Registriert: Sa 21. Feb 2009, 13:46
- OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
- CPU-Target: 32Bit
Re: Generator für ein Kleinfeldtunier
Die einfache und , in diesem Fall akzeptable lösung copy(DatetoStr(blabla),1,5);
Damit wird einfach nur ein bestimmter teil kopiert und die letzen 2 Zeichen fallen weg.
Oder wir machen Ein Strg+Linksklick auf StrtoDate
und sehen Unter der Funktions direkt diese Funktion:
function DateToStr(Date: TDateTime; const FormatSettings: TFormatSettings): string;
Strg+Linksklick auf TFormatSettings - anschauen und auf dich wirken lassen xD
Quellcode:
Code: Alles auswählen
procedure Button1Click.....
var
format:TFormatSettings;
begin
format := DefaultFormatSettings:
format.LongTimeFormat := format.ShortTimeFormat;
// format.LongTimeFormat := 'hh:nn' // ist das gleiche - Alternativ...
Edit1.Text := DatetoStr(Blabla,format);
end;
ShortTimeFormat ist schon Vordefiniert // Vorher haben wir je die Standartwerde (DefaultFormatSettings) geladen
und deshalb hab ich das jetzt mal schön geschrieben , kannst natürlich direkt 'hh:nn' schreiben...
Das mit Den Ergebnissen ist kein Problem...
Ich nehme mal an du hättest Statt 100 Edits eine Tabelle oder so- Einfach damit ich mir arbeit beim schreiben spare xD
Brauchst du Kommawerte (Float) für die Berechnung oder reicht int ???
Code: Alles auswählen
var
i:integer;
s1,s2:float;
p1,p2:float;
begin
s1 := 0;
s2 := 0;
for i := 0 to StringGrid1.RowCount-1 do
begin
if TryStrtoFloat(StringGrid1.Cells[0,i],p1) then s1 := s1 + p1;
if TryStrtoFloat(StringGrid1.Cells[1,i],p2) then s2 := s2 + p2;
end;
form3.stringgrid1.cells[2,1]:=floattostr(s1)+ ' : ' + floattostr(s2);
end;
Stattdesen gibt es true zurück wenn alles ok ist und false wenn was nicht geklappt hat.
In die Variable P1 / P2 wird dann der werd von d. Tabelle reingeschrieben.
Theoretisch kann man noch "else MessageDlg('Fehler','Ein fehler ist aufgetreten: Falsche EIngabe',mtError,[mbOK],0); hinzufügen...
Das am schluss ist kein Problem, da: Der Code wird nur beim Berechnen des ergebnisses ausgeführt- das ist nicht 100 mal die Sekunde sonndern viel seltener - schneller währe eigentlich
Code: Alles auswählen
if a > b then c := 3
else if a < b then d := 3
else
begin
c := 1;
d := 1;
end;

Code: Alles auswählen
Signatur := nil;
-
- Beiträge: 8
- Registriert: Mo 7. Mär 2011, 15:23
- OS, Lazarus, FPC: ubuntu 10.10 (L 0.9.28.2 FPC 2.4.0-2)
- CPU-Target: 32Bit
Re: Generator für ein Kleinfeldtunier

großen Dank auf jeden Fall dafür....lass das jetzt mal auf mich wirken....hoffe ich bekomme den Rest dann hin, ansonsten weiß ich ja wo ich qualitativ super Antworten bekomme


edit1:
Habe das jetzt auf mich wirken lassen

Wenn ich das richtig verstanden habe, meintest du das so:
Code: Alles auswählen
procedure TForm2.Button2Click(Sender: TObject);
var
st,sp,p:TDateTime;
format:TFormatSettings;
begin
//Zeit
format := DefaultFormatSettings;
format.LongTimeFormat := 'hh:nn';
st:=strtotime(form1.edit37.text,format);
sp:=strtotime(form1.edit38.text,format);
p:=strtotime(form1.edit39.text,format);
label5.caption:=(form1.edit37.text) + ' - ' + TimetoStr(st + sp);
label6.caption:=TimetoStr(st + sp+ p) + ' - ' + TimetoStr(st + 2*(sp)+ 1*(p));
label7.caption:=TimetoStr(st + 2*(sp)+ 2*(p)) + ' - ' + TimetoStr(st + 3*(sp)+ 2*(p));
label8.caption:=TimetoStr(st + 3*(sp)+ 3*(p)) + ' - ' + TimetoStr(st + 4*(sp)+ 3*(p));
label9.caption:=TimetoStr(st + 4*(sp)+ 4*(p)) + ' - ' + TimetoStr(st + 5*(sp)+ 4*(p));
label10.caption:=TimetoStr(st + 5*(sp)+ 5*(p)) + ' - ' + TimetoStr(st + 6*(sp)+ 5*(p));
label11.caption:=TimetoStr(st + 6*(sp)+ 6*(p)) + ' - ' + TimetoStr(st + 7*(sp)+ 6*(p));
label12.caption:=TimetoStr(st + 7*(sp)+ 7*(p)) + ' - ' + TimetoStr(st + 8*(sp)+ 7*(p));
label13.caption:=TimetoStr(st + 8*(sp)+ 8*(p)) + ' - ' + TimetoStr(st + 9*(sp)+ 8*(p));
label14.caption:=TimetoStr(st + 9*(sp)+ 9*(p)) + ' - ' + TimetoStr(st + 10*(sp)+ 9*(p));
label15.caption:=TimetoStr(st + 10*(sp)+ 10*(p)) + ' - ' + TimetoStr(st + 11*(sp)+ 10*(p));
label15.caption:=TimetoStr(st + 11*(sp)+ 11*(p)) + ' - ' + TimetoStr(st + 12*(sp)+ 11*(p));

habe das format auch in strtotime weggelassen und dafür in timetostr eingefügt, was mir sinnvoller erschien, da er das ja da ausgibt...das mit dem copy habe ich noch nicht versucht...müsste ich das label dann einfach kopieren oder wie mach ich das...

das nächste muss ich ja leider umschreiben

wo kommen p1 und p2 her? und wie erhöht sich s1 ?
Hätte ich eine Tabelle genommen, könnte ich doch auch nicht einfach sagen, dass das i von 0 bis keine Ahnung was läuft, da zwischendurch doch andere spiele sind und der die Tore dann auch mitzählen würde oder nicht? Darum habe ich das mit den edits gemacht, weil so kann ich halt sagen, welchen er nehmen soll und welchen nicht...
könne ich nicht dann einfach sowas in der Art hinschreiben?
Code: Alles auswählen
var
s1:float;
begin
s1:=0;
AA1Tsp1:=(edit1.text); //die benenne ich um damit ich weiß welche Mannschaft das ist AA1Tsp1 heißt : //[u]A[/u]matuer Gruppe [u]A[/u] Mannschaft [u]1[/u] [u]T[/u]ore [u]sp[/u]iel[u]1[/u] kompliziert aber man steigt //hoffentlich durch...
AA1Tsp2:=(edit9.text);
AA1Tsp3:=(edit18.text);
AA2Tsp1:=(edit2.text);
//das habe ich jetzt für alle Spiele gemacht...dann muss ich nur die Tore von denen halt addieren....nach meinem System
//weiß ich leider nicht wie ich das mit i machen sollte...daher war meine Idee eher sowas:
if trystrtofloat(AA1Tsp2) then // ja und da scheitert es bei mir...weiß jez nicht wie du das mit p1 meintest...
Oh man...Fragen über Fragen...
achja, die Umbenennung brauch ich ja auch für die Punktrechnung...zb: a=AA1Tsp1 und b=AA2Tsp1
-
- Beiträge: 770
- Registriert: Sa 21. Feb 2009, 13:46
- OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
- CPU-Target: 32Bit
Re: Generator für ein Kleinfeldtunier

also ich habe gerade das versucht
Code: Alles auswählen
var
st,sp,p:TDateTime;
format:TFormatSettings;
begin
//Zeit
format := DefaultFormatSettings;
format.LongTimeFormat := 'hh:nn';
st:=strtotime('13:31');
sp:=strtotime('01:00');
p:=strtotime('01:00');
label1.caption:=('13:31') + ' - ' + TimetoStr(st + sp);
label2.caption:=TimetoStr(st + sp+ p,format) + ' - ' + TimetoStr(st + 2*(sp)+ 1*(p),format);
Nur bei TimetoStr format benutzen.
Dann musst du, wenn du strtoTime machst aber auch darauf achten dass du eine gültige spielzeit eingibst.
'60' oder '90' ist falsch. Genauso wie '00:60' oder '00:90';
Richtig währe '01:00' für eine Stunde oder '01:30';
Wenn du jetzt 60 eingeben willst dann nimm
einfach
Code: Alles auswählen
sp := StrtoFloat(Edit1.Text)/24/60
Wenn des nicht dein Fehler war - dann gib mal die Fehlermeldung , bzw nutze mal den Debugger...
So , dann fangen wir da mal mit dem einfachsten an . Das TryStrtoFloat muss fehlschlagen , da (Strg + Linksklick) es folgendermaßen Definiert ist:
Code: Alles auswählen
Function TryStrToFloat(Const S : String; Out Value: Single): Boolean;
p1 steht einfach nur für puffer. Weil man in die funktion eine Variable reingeben muss die überschrieben wird. In p1 steht dann das Ergebnis aus StrtoFloat...
Bei dem Anderen hatte ich ein Denkfehler. Ich hatte damit gerechnet das Alle spiele in der Tabelle zu einer Manschaft gehören. Das kann man aber "ganz einfach" ( zumindest für mich

Entweder geben wir jeder Gruppe eine ID oder einen Namen.
Nehm ich mal Namen.
Dann speichern wir das ungefähr so in der Tabelle:
[Name1] [Tore1] [Name2] [Tore2] [SpielBegin] [SpielEnde]
[Name3] [Tore3] [Name4] [Tore4] [SpielBegin] [SpielEnde]
...
Code: Alles auswählen
var
i,t1,t2:integer;
s:array of float;
teams:array of string;
p1,p2:float;
schondrin:boolean;
begin
// als erstes lesen wir alle Namen in einen Dynamischen Array ein...
for i := 0 to StringGrid1.RowCount-1 do // wir testen alle Rows
begin
// Abschnitt1
schondrin := False;
for t1 := 0 to high(teams) do // bevor wir ein Teamname hinzufügen testen wir ob dieser schon in teams vorhanden ist.
begin
if teams[t1] = StringGrid1.Cells[0,i] then
begin
schondrin := True;
break; //beenden der schleife da team schon vorhanden
end;
end;
if not schondrin then
begin
setlength(teams,length(teams)+1); // Da teams ein Dynamischer Array ist müssen wir die Länge angeben. Hier wird die Länge um 1 erhöht...
teams[high(teams)] := StringGrid1.Cells[0,i]; // das letzte Element bekommt den Namen der Manschaft.
t1 := high(teams);
end;
// Abschnitt 2
// Genau das gleiche, nur das hier die 2te Spalte eingetragen wird...
schondrin := False;
for t2 := 0 to high(teams) do
begin
if teams[t2] = StringGrid1.Cells[2,i] then
begin
schondrin := True;
break;
end;
end;
if not schondrin then
begin
setlength(teams,length(teams)+1);
teams[high(teams)] := StringGrid1.Cells[2,i];
t2 := high(teams);
end;
//Abschnitt 3
// so alle Namen aus einer Reihe wurden hinzugefügt...
// Wenn jetzt "Team1" seinen namen in teams[4] gespeichert hat - dann steht in s[4] die punktzahl von "team1".
// theoretisch könnte man jetzt noch zwei Arrays tg,tr (tore geschossen , tore reingelassen) berechnen und dort die Anzahl der Tore und ne Quote und was weis ich- Dazu muss du den folgenden Code nur etwas abändern...
if TryStrtoFloat(StringGrid1.Cells[1,i],p1) then s[t1] := s[t1] + p1;
if TryStrtoFloat(StringGrid1.Cells[3,i],p2) then s[t2] := s[t2] + p2;
end;

Den Abschnitt 2 kann man vernachlässigen . der ist das leiche wie 1 nur mie Cells[2,i] statt [0,i]. Also den namen auf der Rechten seite...
Abschnitt 1 müsste soweit klar sein - er testet ob die aktuelle Zelle schon in deiner "Liste" gespeichert ist, "if not schondrin " dann wird sie hinzugefügt...
Abschnitt 3 ist schnell gemacht.
Da in in der for t1... schleife ein break verwende. wird diese vorher abgebrochen wenn etwas passiert ist. t1 ist also auf jedenfall der Wert bei dem Unser Name vom Team steht.
Ganz am ende kann man die Werte auch noch ausgeben.
zum beispiel in eine Memo:
for i := 0 to high(teams) do Memo1.Lines.Add( teams + ' ' + InttoStr(s) );
ACH ja, ich merke gerade das ich ja selber die Anzahl der Tore gespeichert habe. und nicht die Punkte - The Stage is yours
Code: Alles auswählen
Signatur := nil;
-
- Beiträge: 8
- Registriert: Mo 7. Mär 2011, 15:23
- OS, Lazarus, FPC: ubuntu 10.10 (L 0.9.28.2 FPC 2.4.0-2)
- CPU-Target: 32Bit
Re: Generator für ein Kleinfeldtunier
unit1.pas(49,19) Error: Wrong number of parameters specified for call to "TimeToStr"
Danke für das viele Helfen...
-
- Beiträge: 770
- Registriert: Sa 21. Feb 2009, 13:46
- OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
- CPU-Target: 32Bit
Re: Generator für ein Kleinfeldtunier
Also bei mir kommt der fehler nicht - der scheint die TimetoStrVariante mit 2 Parameter nicht zu kennen...
Welche Lazarus Version ,FCP, Os verwendest du ?
Am besten mal im >> Persönlichen Bereich >> Profil >> OS, Lazarus, FPC: da reinschreinben, dann erscheint das unter der signatur automatisch ...
Schönheitsfehler: in der vorletzten Zeile fehlt ein ,format bei dem TimetoStr.
eventuell mal Strg+Linksklick auf timetoStr.
Dann sollte diese Zeile makiert sein (hauptsache 2 Paramneter)
Code: Alles auswählen
function TimeToStr(Time: TDateTime; const FormatSettings: TFormatSettings): string;
Code: Alles auswählen
Signatur := nil;
-
- Beiträge: 8
- Registriert: Mo 7. Mär 2011, 15:23
- OS, Lazarus, FPC: ubuntu 10.10 (L 0.9.28.2 FPC 2.4.0-2)
- CPU-Target: 32Bit
Re: Generator für ein Kleinfeldtunier
Wenn ich auf timetostr mit strg+links-klick draufgehe steht da:
Code: Alles auswählen
function TimeToStr(Time: TDateTime): string;
-
- Beiträge: 770
- Registriert: Sa 21. Feb 2009, 13:46
- OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
- CPU-Target: 32Bit
Re: Generator für ein Kleinfeldtunier
Code: Alles auswählen
function TimeToStr(Time: TDateTime; const FormatSettings: TFormatSettings): string;
So, naja- aber aufgrund dessen wird es wohl einfacher zu sein
Code: Alles auswählen
x := copy(TimtoStr(now),1,5);
Copy schneidet einen String aus einem String raus.
Ist folgender maßen aufgebraut:
Code: Alles auswählen
function copy(eingabestring:string; anfangszeichen,anzahl_der_zeichen_die_kopiert_werden_sollen:integer):string;
Code: Alles auswählen
Signatur := nil;
-
- Beiträge: 8
- Registriert: Mo 7. Mär 2011, 15:23
- OS, Lazarus, FPC: ubuntu 10.10 (L 0.9.28.2 FPC 2.4.0-2)
- CPU-Target: 32Bit
Re: Generator für ein Kleinfeldtunier
habe das mit copy(timetostr()1,5) gemacht und das klappt wunderbar...
Versuch mich jetzt an den Spielplänen, wie du es mir vorgeschlagen hast.
Und dann müsste ich eigentlich so gut wie fertig sein

Edit:
So das hat alles super geklappt... Nun mein, denk ich mal, letztestes Anliegen. Und zwar möchte ich das er die Tabelle nach den Punkten sortiert. Habe mir da schon ein paar gedanken dazu gemacht und zwar etwa sowas:
Code: Alles auswählen
if (strtofloat(stringgrid.cells[4,1]))<(strtofloat(stringgrid.cells[4,2])) then tausche (stringgrid.cells[2,1] mit stringgrid[2,2]) and (stringgrid.cells[3,1] mit stringgrid[3,2]);
so müsste man das aber für jede zeile schreiben....das müsste man doch einfacher mit i=0 bis i=(letzte Spalte) machen können, da ist mir aber irgendwie nichts wirkliches eingefallen, wie ich das schreiben müsste.