AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Aktualisieren der ListView

Ein Thema von Impulz · begonnen am 14. Dez 2011 · letzter Beitrag vom 14. Dez 2011
Antwort Antwort
Impulz

Registriert seit: 19. Aug 2011
Ort: Lübeck
68 Beiträge
 
Delphi 7 Professional
 
#1

Aktualisieren der ListView

  Alt 14. Dez 2011, 11:32
Delphi-Version: 5
Wie bereits schon in einigen Treads erwähnt habe ich eine IBE DB und eine Oberfläche + einige Units...


ich benötige dieses Mal Hilfe bei der LV Aktualisierung, irgendwie steh ich auf dem Schlauch.

Ich kann mit einem PopupMenu (PMHINZUFÜGEN) ein Stringgrid aufrufen wo ich neue Kunden für die DB eintrage.
Diese werden auf der Db abgespeichert. Jedoch sehe ich sie erst wenn ich nochmal auf imgAnzeigen klicke und nicht direkt nach dem Eintrag.

Hier einbisschen Code...


!!!!!!!!!!!!!KUNDE WIRD ANGELEGT!!!!!!!!!!!!!!!!!!
Delphi-Quellcode:
function TDataconnect.getKunden():TKundeList;
var
   Kunde : TKunde;
   KundeQuery : TIBOQuery;
   KundeTransa : TIBOTransaction;
begin
  Result:= TKundeList.create();
  KundeQuery:= TIBOQuery.Create(nil);
  KundeQuery.SQL.Text:= 'SELECT * FROM KUNDEN ';
  KundeQuery.IB_Connection:= FDataBase;
  KundeTransa:= TIBOTRansaction.Create(nil);
  KundeTransa.IB_Connection:= FDataBase;
  KundeQuery.IB_Transaction:= KundeTransa;
  KundeTransa.StartTransaction();
  try
    KundeQuery.Open();
    while not KundeQuery.Eof do
    begin
      kunde:= TKunde.Create(KundeQuery.Fieldbyname('Kunden_ID').asInteger,
                            KundeQuery.FieldbyName('Vorname').asString,
                            KundeQuery.FieldbyName('nachname').AsString);
      Result.addkunde(Kunde);
      KundeQuery.Next();
    end;
    KundeTransa.Commit();
  except
    on e:Exception do
    begin
      ShowMessage(e.Message);
      KundeTransa.Rollback();
    end;
  end;
end;
!!!!!!!!!!!!!!!!!!!!NEUEN KUNDEN HINZUFÜGEN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Delphi-Quellcode:
procedure TStartseite.Hinzufgen1Click(Sender: TObject);
var
  Kunde: TKunde;
  Buch: TBuch;
  Sendung: TSendung;
  Autor: TAutor;

begin
  Dateneditieren.StrGrAuswahl.Cells[0,0]:='';
  Dateneditieren.StrGrAuswahl.Cells[1,0]:='';
  Dateneditieren.StrGrAuswahl.Cells[2,0]:='';
  if IsPositiveResult(Dateneditieren.ShowModal()) then
  begin
    Dateneditieren.ShowModal();
    case (rgAuswahl.ItemIndex) of
      0 : begin
            Kunde := TKunde.Create(-1,Dateneditieren.StrGrAuswahl.Cells[1,0],Dateneditieren.strgrauswahl.cells[2,0]);
            connect.LegeKundeAn(Kunde);
            addKundetoLV(Kunde);
          end;
      1 : begin
            Sendung:= TSendung.Create(-1,Dateneditieren.StrGrAuswahl.Cells[1,0],Dateneditieren.strgrauswahl.cells[2,0]);
            connect.LegeSendungAn(Sendung);
          end;
      2 : begin
            Autor:= TAutor.Create(-1,Dateneditieren.StrGrAuswahl.Cells[1,0],Dateneditieren.strgrauswahl.cells[2,0]);
            connect.LegeAutorAn(Autor);
          end;
      3 : begin
            Buch:= TBuch.Create(1,StrToInt(Dateneditieren.StrGrAuswahl.Cells[1,0]),Dateneditieren.StrGrAuswahl.Cells[2,0]);
            connect.LegeBuchAn(Buch);
          end;
    else
      begin
        ShowMessage('Ups, beim Anlegen des Kunden lief etwas schief');
      end;
    end;
  end;
end;
ich dachte mir vllt schreibe ich ne funktion dafür... desshalb : hier ist sie... ist aber irgendwie alles falsch:
Delphi-Quellcode:
function TStartseite.addKundetoLV(AKunde: TKunde): TKundeList;
var
  myItemAddKtoLV: TListItem;
  all: integer;
  kundelist: tkundelist;
begin
  connect.LegeKundeAn(Akunde);
  lvAuswahl.Column[0].NewInstance();
  lvAuswahl.UpdateItems(1,100);
end;

UPDATE,REFRESH,REPAINT.... alles versucht = geht nicht

vielen Dank im Vorraus!

grüße euer,
Danil

Geändert von mkinzler (14. Dez 2011 um 12:33 Uhr) Grund: Code-Tags durch Delphi-Tags ersetzt
  Mit Zitat antworten Zitat
webcss

Registriert seit: 10. Feb 2006
255 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Aktualisieren der ListView

  Alt 14. Dez 2011, 12:35
Dein Problem steckt hier:
Code:
function TStartseite.addKundetoLV(AKunde: TKunde): TKundeList;
var
  myItemAddKtoLV: TListItem;
  all: integer;
  kundelist: tkundelist;
begin
  connect.LegeKundeAn(Akunde);
  lvAuswahl.Column[0].NewInstance();
  lvAuswahl.UpdateItems(1,100);
end;
so funktioniert das nicht! Erstmal grundsätzliche Frage:
bedienst Du Deine Listview im VirtualMode (=OwnerData=true) oder normal?

normal:
Delphi-Quellcode:
function TStartseite.addKundetoLV(AKunde: TKunde): TKundeList;
var
  myItemAddKtoLV: TListItem;
  all: integer;
  kundelist: tkundelist;
begin
  connect.LegeKundeAn(Akunde);
  
  myItemAddKtoLV:= lvAuswahl.Items.Add;
  myItemAddKtoLV.Caption:= Akunde.Name;
  myItemAddKtoLV.SubItems.Add(AKunde.Strasse); // etc;
end;
oder Virtuell (OwnerData=true):
Delphi-Quellcode:
function TStartseite.addKundetoLV(AKunde: TKunde): TKundeList;
var
  myItemAddKtoLV: TListItem;
  all: integer;
  kundelist: tkundelist;
begin
  connect.LegeKundeAn(Akunde);
  lvAuswahl.Items.Count:= Kundelist.Count;
  lvAuswahl.Refresh;
end;
wobei sowieso nicht klar ist, was die ganzen Variablen in dieser Funktion bedeuten, bzw. woher sie ihren Wert beziehen... aber das weisst Du sicherlich besser...
"Wer seinem Computer Mist erzählt, muss immer damit rechnen..." (unbekannt)
"Der Computer rechnet damit, dass der Mensch denkt..." (auch unbekannt)
mein blog
  Mit Zitat antworten Zitat
Impulz

Registriert seit: 19. Aug 2011
Ort: Lübeck
68 Beiträge
 
Delphi 7 Professional
 
#3

AW: Aktualisieren der ListView

  Alt 14. Dez 2011, 12:51
also, ich habe OwnerData = False.


okay ich danke dir... ich probier mal direkt...
Danil
  Mit Zitat antworten Zitat
Impulz

Registriert seit: 19. Aug 2011
Ort: Lübeck
68 Beiträge
 
Delphi 7 Professional
 
#4

AW: Aktualisieren der ListView

  Alt 14. Dez 2011, 12:54
danke :=) !!!
TOP!!!
Danil
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:24 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