Autor Beitrag
Rollo5
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Do 27.01.11 10:04 
Hallo,

ich soll für einen Volkslauf in unserem Dorf eine Meldeliste mit Delphi Programmieren.
Allerdings plagen mich noch so einige Fragen

Ich habe jetzt ein Stringgrid erstellt, in das Jahrgang, Vor- und Nachname , Team und Starnummer, eingetragen werden können. Ich habe es auch geschafft, dass das Stringgrid sich automatisch beschriftet und, dass man beim klicken der Enter-Taste einfach eine Spalte weiterkommt.

Wie schaffe ich es jetzt, dass ich beim klicken der Enter- Taste in der letzten Spalte direkt in die erste Spalte der nächsten Zeile springe?

Bitte um Hilfe, ich bin echt ein ziemlicher Neuling :! Danke schonmal :D
MaxWurzel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 77
Erhaltene Danke: 10



BeitragVerfasst: Do 27.01.11 10:12 
Wie hast du es denn geschafft, dass du beim Drücken auf Enter eine Spalte weiterkommst?
Rollo5 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 07.02.11 12:13 
user profile iconMaxWurzel hat folgendes geschrieben Zum zitierten Posting springen:
Wie hast du es denn geschafft, dass du beim Drücken auf Enter eine Spalte weiterkommst?


if key = #13 // wenn Entertaste (Code 13)
then StringGrid1.Col := StringGrid1.Col + 1;
MaxWurzel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 77
Erhaltene Danke: 10



BeitragVerfasst: Mo 07.02.11 13:05 
Dann fehlt ja nur noch die Abfrage ob du schon in der letzten Spalte bist (Stichwort: colcount), das Erhöhen der Reihe (Stichwort row) und das Setzen der Spalte auf den gewünschten Wert (hast du schon gemacht).
Rollo5 Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 14.02.11 12:18 
Ja klar, aber ich hab echt kaum Verständnis für Delphi. Da ist mir einiges zu hoch. Ich bin ehrlich, ich werde für dieses Programm gut entlohnt. Es wäre echt richtig cool von euch wenn, ihr mir einen kongreten Algorithmus schreiben könntet.Ich bin echt überfordert, muss diesen Auftrag aber irgendwie erfüllen.
Danke im vorraus. Ich bin angewiesen auf euch Leute!!!!
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Mo 14.02.11 12:38 
Zitat:

Ich bin ehrlich, ich werde für dieses Programm gut entlohnt

dann ist es an der Zeit sich echtes Verständnis für Delphi zu erarbeiten....

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
Tankard
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Administrator
Beiträge: 217
Erhaltene Danke: 96



BeitragVerfasst: Mo 14.02.11 12:39 
wenn du es selber nicht kannst, solltest du solche auftraege nicht annehmen, oder weiterleiten. hier gibt es auch eine jobbörse.
LSanchez
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26
Erhaltene Danke: 8



BeitragVerfasst: Mo 14.02.11 13:58 
Hallo,

wo wird die Meldeliste gespeichert?. Wenn die Liste in einer Tabelle gespeichert wird, kannst Du gleich ein DBGrid verwenden.

Grüß

Luis Sanchez

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Beispiel:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
unit u_Test;

interface

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

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);
  private
    { Private-Deklarationen }
    procedure GoToNextCell(pStringGrid:TStringGrid);
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.GoToNextCell(pStringGrid:TStringGrid);
var ErsteSpalte:Integer;
begin
    ErsteSpalte := pStringGrid.FixedCols;
    // Letzte Spalte
    if pStringGrid.Col = (pStringGrid.ColCount - 1then
    begin
        // Letzte Zeile, dann neue Zeile hinzufügen
        if  pStringGrid.Row = (pStringGrid.RowCount-1then
          pStringGrid.RowCount := pStringGrid.RowCount + 1;
        pStringGrid.Row := pStringGrid.Row + 1;
        pStringGrid.Col := ErsteSpalte;

    end
    else
      pStringGrid.Col :=  pStringGrid.Col + 1;
end;

procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
    if Key = #13 then
    begin
        GoToNextCell(StringGrid1);
        Key := #0;
    end;
end;

end.



Gruß

Luis Sanchez

Für diesen Beitrag haben gedankt: Rollo5
Tranx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 648
Erhaltene Danke: 85

WIN 2000, WIN XP
D5 Prof
BeitragVerfasst: Mo 14.02.11 20:28 
Ich glaube auch, dass ein DBGrid mit einer Datentabelle im Hintergrund die bessere Wahl wäre.

Das, was Du in die einzelnen Spalten des Stringgrids speicherst, kannst Du ja - im einfachsten Fakll - in eine DBase-Tabelle speichern. Der Vorteil: Du kannst viel einfacher auf die Daten zugreifen (z.B. mit Excel) und zudem noch einfach Felder, wie Geschlecht, Laufzeiten ... hinzufügen und dann zum Schluss das Ganze auch noch auswerten (z.B. mit Excel; was ja DBase-Dateien lesen kann). Überlege es Dir. So kompliziert ist das Ganze nicht.

_________________
Toleranz ist eine Grundvoraussetzung für das Leben.