Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Listview Spalten zur Laufzeit? (https://www.delphipraxis.net/21192-listview-spalten-zur-laufzeit.html)

alcaeus 30. Apr 2004 20:55

Re: Listview Spalten zur Laufzeit?
 
Ok, 90000 sind ein ganzer Haufen....und du hast wirklich den gesamten Code richtig zusammenkopiert? Ich musste den ersten Code doch ein bisschen ändern...hab mich ein wenig vertan. Zeigt er die Spaltenüberschriften mittlerweile an oder nicht?

celinaw 30. Apr 2004 21:12

Re: Listview Spalten zur Laufzeit?
 
Ja, wie gesagt! Er zeigt von drei gewählten Spalten die ersten beiden an.
Und dann passiert nix mehr. Der Cursor bleibt als Sandur stehen!

alcaeus 30. Apr 2004 21:16

Re: Listview Spalten zur Laufzeit?
 
Probier mal, diesen Codeteil:
Delphi-Quellcode:
for i := 0 to Spalten-1 do //Spaltenarray durchlaufen und alle "gewählten" Spalten hinzufügen.
begin
  if CheckListBox1.Checked[i] then
    lv_Anzeige.Columns.Add.Caption := List_Names[i];
end;
ausukommentieren, und definiere die Spalten manuell, also im Designmodus. Anschließend führe das ganze aus, mich würde interessieren ob er so irgendwelche Werte in die List kriegt...

celinaw 30. Apr 2004 21:21

Re: Listview Spalten zur Laufzeit?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also so funktioniert der Code. Natürlich sind so alle Spalten fest vorgegeben!

Delphi-Quellcode:
procedure TForm1.bSucheClick(Sender: TObject);
var
   ListItem : TlistItem;
begin
  Screen.Cursor := crHourGlass;
  lfertig.Caption:= '';
  lInfo.Caption:='';
  Memo1.Lines.Clear;
  dbMain.HostName:=SetupForm.edServer.Text; //Server
  dbMain.User:=SetupForm.edLogin.Text; //Benutzername
  dbMain.Password:=SetupForm.edPassword.Text; //Passwort
  dbMain.Database:=SetupForm.edDB.Text; //Name der Datenbank
  dbMain.Connected:=True; //Verbindung herstellen
  lvAnzeige.Items.Clear;
  try
    qrMain.SQL.Text :=
  'SELECT * ' + 
  'FROM ' + 
    'table_ordertracking T,' + 
    'kundenmg K ' + 
  'WHERE ' + 
    'T.Customer_Number=K.Customer_Number ' + 
    'AND ' + 
    'T.Customer_Number like ''' + edknr.Text + '''"%" ' + 
    'AND ' + 
    'T.Order_Number like ''' + edatnr.Text + '''"%" ' + 
  'ORDER BY ' + 
    'T.DPrint;';

     qrMain.Open;
     qrMain.FieldByName('Order_Type').AsString;
     gauge1.Visible:= True;
     gauge1.maxvalue := qrMain.recordcount;
     lvAnzeige.Items.BeginUpdate;
     while not qrMain.Eof do
  begin

    ListItem := lvAnzeige.Items.Add;
    ListItem.Caption:=qrMain.FieldByName('Order_Type').AsString;
    ListItem.SubItems.Add(qrMain.FieldByName('Customer_Number').AsString);
    ListItem.SubItems.Add(qrMain.FieldByName('Order_Number').AsString);
    ListItem.SubItems.Add(FormatDateTime('dd.mm.yyyy  hh:mm:ss', qrMain.FieldByName('First_Event').AsDateTime));
    ListItem.SubItems.Add(qrMain.FieldByName('DPrint').AsString);
    ListItem.SubItems.Add(qrMain.FieldByName('PrePrint').AsString);
    ListItem.SubItems.Add(qrMain.FieldByName('Print').AsString);
    ListItem.SubItems.Add(qrMain.FieldByName('BMSLogout').AsString);
    ListItem.SubItems.Add(qrMain.FieldByName('Count_DPrint').AsString);
    ListItem.SubItems.Add(qrMain.FieldByName('CeWe_Batch').AsString);
    gauge1.progress := gauge1.progress + 1;
  end;
   lvAnzeige.Items.EndUpdate;
   gauge1.progress := 0;
   gauge1.Visible:= false;
finally
    dbMain.Connected:=False; //Verbindung trennen
    Screen.Cursor := Cursor;
  end;
end;

alcaeus 30. Apr 2004 21:27

Re: Listview Spalten zur Laufzeit?
 
Ja, den code kenne ich, aber ich will dass du genau den neuen Code ohne das dynamische Spaltenhinzufügen ausprobierst. Sorry, aber mir gehen langsam auch die Ideen aus. Du könntest auch versuchen, jeden Wert den du zur Liste hinzufügst mit einer Messagebox auszugeben, so kannst du sehen ob die Daten auch wirklich von der Datenbank kommen. Es könnte natürlich auch sein dass irgendwo beim Daten holen ein Fehler ist und deswegen das Programm hängen bleibt. Musst du es immer abschießen?

celinaw 30. Apr 2004 21:41

Re: Listview Spalten zur Laufzeit?
 
Nun, ich werde es mal so versuchen wie du gesagt hast. Einen Fehler beim Datenholen schließe ich allerdings aus, da der andere Code ja auch Problemlos läuft. Melde mich wieder...


Gruß Celina

celinaw 30. Apr 2004 21:49

Re: Listview Spalten zur Laufzeit?
 
Also auch wenn ich die Spalten vorgebe und den Code dafür weglasse wird nichts eingefügt!

alcaeus 30. Apr 2004 21:53

Re: Listview Spalten zur Laufzeit?
 
Und das mit der MessageBox? Also was ich meine ist, dass du einen Wert in einer MB ausgibst, anstatt ihn nur der List hinzuzufügen:
Delphi-Quellcode:
for i := 0 to Spalten-1 do  //Alle möglichen Spalten durchgehen
  begin
  if CheckListBox1.Checked[i] then  //Soll die gewählte Spalte angezeigt werden?
    begin
      MessageBox(SQL_Names[i]+': '+qrMain.FieldByName(SQL_Names[i]).AsString);
Dann müsste er dir jedes Element ausgeben, vorausgesetzt er kann es ordnungsgemäß von der Datenbank einlesen.

celinaw 30. Apr 2004 21:59

Re: Listview Spalten zur Laufzeit?
 
Fehler Inkompatible Typen HWND und String!

alcaeus 30. Apr 2004 22:04

Re: Listview Spalten zur Laufzeit?
 
:wall: :wall: :wall: Nicht MessageBox, sondern ShowMessage, sorry
Ich bin übrigens weg, falls du mehr hilfe brauchst: PN oder Mail


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:33 Uhr.
Seite 4 von 5   « Erste     234 5      

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