Einzelnen Beitrag anzeigen

mc_flasche

Registriert seit: 28. Sep 2009
11 Beiträge
 
Turbo Delphi für Win32
 
#1

procedure mit Sender

  Alt 28. Sep 2009, 18:49
Hallo!

Ich hab 2 Proceduren und möchte gern alles in einer Procedure machen ich denke mit Sender würde es am besten gehen,
aber ich kenne mich mit Sendern nicht so gut aus darum bräuchte ich bitte Hilfe!!!!

In dem Programm geht es um das Ausgeben der Daten einer Datenbank in einem Listview jedoch möchte ich eine verkürzte Version haben.

Hier sind die beiden Proceduren falls es jemandem zu unübersichtilich ist habe ich auch noch meine gesamte Datei als Attachment angefügt!

Delphi-Quellcode:
procedure TForm1.Datenausgeben();
var
LI: TListitem;
weiblich, maennlich, Gesamt, i : integer;
begin
 //Zugriff auf die Tabelle über eine Abfrage:

 //Sicherheitshalber wird die Abfrage geschlossen ...
 adoquery1.Close;
 //... und der SQL-Code gelöscht
 adoquery1.SQL.Clear;
 //... und der neue SQL-Code eingefügt
 adoquery1.SQL.add('Select * from Schueler');
 //... und die Abfrage geöffnet:
 adoquery1.Open;


 //Schleife bis zum Ende der Abfrage
 while not adoquery1.Eof do begin

 // Leere Zeile wird ausgegeben
 LI := lv_personen.Items.add;
 //Daten der Abfrage werden ausgegeben:
 LI.Caption := adoquery1.FieldValues['Nachname'] + ' ' + adoquery1.FieldValues['Vorname'];
 LI.subItems.add(adoquery1.FieldValues['Geschlecht']);
 LI.subItems.add(adoquery1.FieldValues['PLZ']);
 LI.subItems.add(adoquery1.FieldValues['Ort']);
 LI.subItems.add(adoquery1.FieldValues['Adresse']);

 //Spring immer einen Datensatz weiter
 adoquery1.Next;
 end;
 adoquery1.close;

 adoquery1.SQL.Clear;


 //distict = Keine Duplikate
 //order by = Sortierung aufsteigend
 adoquery1.SQL.add('Select distinct Ort from Schueler order by Ort');

 adoquery1.Open;

 while not adoquery1.Eof do begin

 lbox_Wohnort.items.add(adoquery1.FieldValues['Ort']);
 //Spring immer einen Datensatz weiter
 adoquery1.Next;
 end;
 adoquery1.close;

 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] = 'Mthen
      Inc(Maennlich);
    if lv_Personen.Items[i].subitems[0] = 'Wthen
      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;


procedure TForm1.Wohnortfilter();
var
AktuellerOrt: string;
LI: TListItem;
weiblich, maennlich, Gesamt, i : integer;
begin

 AktuellerOrt:= lbox_Wohnort.Items[lbox_Wohnort.itemindex];

 adoquery1.Close;

 adoquery1.SQL.Clear;

 adoquery1.SQL.add('Select * from Schueler where Ort = "' + AktuellerOrt + '"');

 adoquery1.Open;

 lv_personen.Items.Clear;


 while not adoquery1.Eof do begin

 // Leere Zeile wird ausgegeben
 LI := lv_personen.Items.add;
 //Daten der Abfrage werden ausgegeben:
 LI.Caption := adoquery1.FieldValues['Nachname'] + ' ' + adoquery1.FieldValues['Vorname'];
 LI.subItems.add(adoquery1.FieldValues['Geschlecht']);
 LI.subItems.add(adoquery1.FieldValues['PLZ']);
 LI.subItems.add(adoquery1.FieldValues['Ort']);
 LI.subItems.add(adoquery1.FieldValues['Adresse']);



 //Spring immer einen Datensatz weiter
 adoquery1.Next;
 end;


 adoquery1.close;

 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] = 'Mthen
      Inc(Maennlich);
    if lv_Personen.Items[i].subitems[0] = 'Wthen
      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;
[edit=Matze][delphi]-Tag eingefügt. MfG, Matze[/edit]
Angehängte Dateien
Dateityp: dpr project1_237.dpr (188 Bytes, 0x aufgerufen)
  Mit Zitat antworten Zitat