AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi, Erfassung von Daten per StringGrid

Ein Thema von Vidar92 · begonnen am 13. Feb 2014 · letzter Beitrag vom 22. Feb 2014
Antwort Antwort
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Delphi, Erfassung von Daten per StringGrid

  Alt 14. Feb 2014, 06:20
Um einzelne Farben in einer StringGrid zu ändern, gehe ich folgendermaßen vor:

In der zugewiesenen Grid.OnDrawCell procedure:

Delphi-Quellcode:
Grid.Canvas.Brush.Color := clGreen; // optional : Hintergrundfarbe
Grid.Canvas.Font.Color := clRed; // optional : Schriftfarbe
Grid.Canvas.FillRect(Rect); // Zelle mit Hintergrundfarbe füllen
Rect.Left := Rect.Left + 2;
Rect.Right := Rect.Right - 2;
Rect.Top := Rect.Top + 2;
Rect.Bottom := Rect.Bottom - 2;
DrawText(Grid.Canvas.Handle, PChar(Grid.Cells[ACol,ARow]), StrLen(PChar(Grid.Cells[ACol,ARow])), Rect,DT_LEFT); // Text in Zelle schreiben
Zu deiner Frage "wozu dient dieses trim" : Wie ich schon oben geschrieben habe : "Leerstellen rausnehmen". Die genaue Beschreibung dazu findest du in der Delphihilfe oder hier System.SysUtils.Trim
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Vidar92

Registriert seit: 18. Okt 2012
7 Beiträge
 
#2

AW: Delphi, Erfassung von Daten per StringGrid

  Alt 22. Feb 2014, 17:56
Hey, ich bins wieder^^

Also das mit der Farbe habe ich nun bissl anders geregelt in einer StringGrid aber passt soweit.


Mein Problem ist immernoch diese olle StringGrid^^

Ich schaffe es einfach nicht, das er bei jedem weiteren Eintrag eine Spalte tiefer schreibt und dann in die richtigen Zeilen (die Zeilen sind nciht das prob, ich schaffe es nicht in eine weitere Spalte automatisch eintragen zu lassen)



Nun ist ein weiteres Problem aufgetreten:
Anhand des Geburtsjahres wird die Altersklasse festgelegt (soweit klappt es), jedoch muss ich nun noch beachten das der 28.04.2014 der Stichtag für die altersklassen ist.

Nun habe ich es mit den Jahreszahlen wie folgt geregelt:

Zitat:
if (edit6.Text >='1975') and (edit6.Text <='1979') then
begin
StringGrid1.Cells[5,1]:='35-39 Jahre';
end;
usw und sofort.

Wie muss ich es nun verschachteln, damit er den 28.04.2014 als Stichtag nimmt? Edit4 steht für den Tag, Edit5 für Monat und Edit6 ist in dem Fall wie Ihr sehen könnt für's Jahr


Hoffe Ihr seht durch, wenn nicht muss ich es nachher neu formulieren wenn ich zurück bin.


Und danke nochmal für die bisherigen Hilfestellungen =)
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#3

AW: Delphi, Erfassung von Daten per StringGrid

  Alt 22. Feb 2014, 21:53
Hallo,

Zitat:
Hoffe Ihr seht durch [...]
Na, eigentlich nicht wirklich.

Zitat:
Ich schaffe es einfach nicht, das er bei jedem weiteren Eintrag eine Spalte tiefer schreibt und dann in die richtigen Zeilen (die Zeilen sind nciht das prob, ich schaffe es nicht in eine weitere Spalte automatisch eintragen zu lassen)
Öhm, ich vermute mal - aber das ist reines Raten -, dass Du dem Stringgrid weitere Zeilen/Spalten hinzufügen möchtest; wenn dem so ist, dann macht man das über RowCount/ColCount - einfach den aktuellen Wert + 1.

Zitat:
Nun ist ein weiteres Problem aufgetreten:
Anhand des Geburtsjahres wird die Altersklasse festgelegt (soweit klappt es), jedoch muss ich nun noch beachten das der 28.04.2014 der Stichtag für die altersklassen ist.
Such mal in der OI nach (DateUtils) YearsBetween

Ein ShowMessage (IntToStr (YearsBetween (EncodeDate (2014, 2, 28), EncodeDate (1975, 4, 1)))) gibt Dir hier 38 aus.

Damit könntest Du z. B. mit:
Delphi-Quellcode:
case YearsBetween (Date1, Date2) of
  30..34 : s := '30-34';
  35..39 : s := '35-39';
  40..44 : s := '40-44';
end;
StringGrid1.Cells [ACol, ARow] := s + ' Jahre'
die entsprechenden Inhalte füllen - wobei Date1 = Stichtag, Date2 = EncodeDate (mit den Daten aus den Eingabefeldern)

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:28 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-2025 by Thomas Breitkreuz