Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Statusbar (https://www.delphipraxis.net/140895-statusbar.html)

mc_flasche 28. Sep 2009 13:55

Datenbank: ACCESS • Version: 2007 • Zugriff über: ADO

Statusbar
 
Hallo!!

Ich hätte eine Frage ...

Mein Programm soll in der Statusbar ausgeben wie viele Schüler männlich/weiblich/Gesamt vom jeweiligen Wohnort der Datenbank gerade ausgewählt sind.

Ich weiß nicht wie ich einen Text in die Statusbar schreiben soll bzw wie mir die Anzahl der männlichen und weiblichen Schüler in der Statusbar angezeitgt werden??????

Bitte um Rückmeldung

Luckie 28. Sep 2009 13:58

Re: Statusbar
 
Ist jetzt nur die Statusbar das Problem oder auch wie du an die Daten drankommst?

mc_flasche 28. Sep 2009 14:21

Re: Statusbar
 
Hallo Danke für die rasche Rückmeldung!

Nein wie ich die Statusbar anspreche weiß ich jezt schon und zwar mit StatusBar1.Panels[0].Text :=
aber ich weiß nicht wie ich das machen soll damit ich die Anzahl der Schüler Gesamt bzw. der männlichen und der weiblichen Schüler bekomme??

Also ich möchte folgende Variablen Männlich, weiblich, Gesamt die mir ausgeben wie viele Schüler sich vom jeweiligen Geschlecht gerade im Listview befinden.

Wie geht das????

wicht 28. Sep 2009 14:31

Re: Statusbar
 
Etwa so, lieblos und ohne Tests niedergeschrieben:

Delphi-Quellcode:
var
  Item: TListItem;
  i: Integer;
  Maennlich, Weiblich, Gesamt: Integer;
begin
  Maennlich := 0;
  Weiblich := 0;
  Gesamt := lstMenschen.Items.Count;
  for i := 0 to lstMenschen.Items.Count - 1 do
  begin
    if lstMenschen.SubItems[0].Caption = 'Maennlich' then
      Inc(Maennlich);
    if lstMenschen.SubItems[0].Caption = 'Weiblich' then
      Inc(Weiblich);
  end;
  Status.Panels[0].Text := Format('%d Maennlich, %d Weiblich', [Maennlich, Weiblich]);
end;
HTH

Luckie 28. Sep 2009 14:35

Re: Statusbar
 
Ich dachte, die Daten kommen aus einer Datenbank? Weißt du denn wie du überhaupt die Datenbank ansprechen musst, um dort Daten auszulesen? Hast du schon Code?

mc_flasche 28. Sep 2009 15:03

Re: Statusbar
 
Ja klar die Daten kommen auch aus der Datenbank und die hab ich auch schon eingelesen es geht jetzt nur noch darum die Anzahl der Weiblichen/Männlichen und Schüler Gesamt die im Listview stehen in der Statusbar anzuzeigen.

Mein bisheriger Code sieht so aus jedoch geht es noch nicht da immer steht Listenindex überschreitet das Maximum (o)

Maennlich := 0;

Weiblich := 0;

gesamt:= lv_Personen.Items.count;

for i := 0 to lv_Personen.Items.Count - 1 do begin

if lv_Personen.Items[i].subitems[0] = 'M' then
Inc(Maennlich);
if lv_Personen.Items[i].subitems[1] = 'W' then
Inc(Weiblich);

end;


StatusBar1.Panels[0].Text := 'Gesamt ' + inttostr(gesamt);
StatusBar1.Panels[1].Text := 'Männlich ' + inttostr(maennlich);
StatusBar1.Panels[2].Text := 'Weiblich ' + inttostr(weiblich);

end;

Bitte um Hilfe ...

Luckie 28. Sep 2009 15:06

Re: Statusbar
 
Stehen die Geschlechter in unterschiedlichen Spalten:
Delphi-Quellcode:
if lv_Personen.Items[i].subitems[0] = 'M' then
Inc(Maennlich);
if lv_Personen.Items[i].subitems[1] = 'W' then
Inc(Weiblich);
Männlich steht in Subitem 0 und weiblich in Subitem 1? Stimmt das denn?

mc_flasche 28. Sep 2009 15:14

Re: Statusbar
 
Nein sorry war ein Kopier Fehler das hab ich vorher nur so ausprobiert ob es geht aber die Geschlechter stehen schon in der gleichen Spalte aber auch wenn ich


if lv_Personen.Items[i].subitems[0] = 'M' then
Inc(Maennlich);
if lv_Personen.Items[i].subitems[0] = 'W' then
Inc(Weiblich);

end;

es so schreibe geht es nicht weil immer steht Listenindex überschreitet das Maximum 0

TeronG 28. Sep 2009 15:15

Re: Statusbar
 
Zitat:

Zitat von mc_flasche
da immer steht Listenindex überschreitet das Maximum (o)

if lv_Personen.Items[i].subitems[1] = 'W' then
Inc(Weiblich);

StatusBar1.Panels[0].Text := 'Gesamt ' + inttostr(gesamt);
StatusBar1.Panels[1].Text := 'Männlich ' + inttostr(maennlich);
StatusBar1.Panels[2].Text := 'Weiblich ' + inttostr(weiblich);

Hast du denn (siehe Luckie) ein subitem 1? Denke ja weil Tabelle mit einer Spalte komisch währe ^^ (außer Testtabelle)
Und hast du auch 3 Panels erzeugt? In deiner IDE oder zur Laufzeit?

Bei dieser Fehlermeldung kann es sich auf den ersten Blick imho nur um diese 2 Fehlerquellen handeln.

EDIT: zu langsam ... und klein roter Kasten ^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:29 Uhr.

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