AGB  ·  Datenschutz  ·  Impressum  







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

StringGrid-Problem

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

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

AW: StringGrid-Problem

  Alt 6. Dez 2011, 07:51
so siehts im Bearbeiten klich aus:

Code:
rocedure TStartseite.Bea1click(Sender:TObject);
var
  Kunde :Tkunde;
  neuKunde:TKunde;
  neuItem: TListItem;
  Sendung :TSendung;
  neuSendung:TSendung;
  Autor :TAutor;
  neuAutor:TAutor;
  Buch :TBuch;
  neuBuch:TBuch;

begin
  if (rgAuswahl.ItemIndex = 0) then
  begin
    Kunde:= TKunde(lvAuswahl.ItemFocused.SubItems.Objects[1]);
    Dateneditieren.giveKundeDataToGrid(Kunde);
    if IsPositiveResult(Dateneditieren.ShowModal()) then
    begin
      Kunde:= TKunde (Dateneditieren.StrGrAuswahl.Objects[1,2]);
      neuKunde:=TKunde(lvAuswahl.ItemFocused.SubItems.Objects[0]);
      kunde:= neuKunde.Create(neuKunde.ID,neuKunde.Vorname,neuKunde.Nachname);
      lvAuswahl.ItemFocused.SubItems.Add(Dateneditieren.StrGrAuswahl.Cells[1,1]);
      lvAuswahl.ItemFocused.SubItems.Add(Dateneditieren.StrGrAuswahl.Cells[2,1]);
      neuKunde:=TKunde.Create(Kunde.ID,(Dateneditieren.StrGrAuswahl.Cells[1,1]),kunde.nachname);
      neuKunde:=Tkunde(Dateneditieren.StrGrAuswahl.Cells[2,1]);
      connect.KundeTransa.StartTransaction;
      connect.KundeTransa.Commit;
      connect.KundeQuery.CommitUpdates;
    end else
    begin
    IsNegativeResult(Dateneditieren.ShowModal())
    end;
  end else
  if (rgAuswahl.ItemIndex = 1) then
  begin
    sendung:= TSendung(lvAuswahl.ItemFocused.SubItems.Objects[0]);
    Dateneditieren.giveSendungDataToGrid(Sendung);
    if IsPositiveResult(Dateneditieren.ShowModal()) then
    begin
      Sendung:= TSendung (Dateneditieren.StrGrAuswahl.Objects[1,2]);
      neuSendung:=TSendung(lvAuswahl.ItemFocused.SubItems.Objects[0]);
      Sendung:= neuSendung.Create(neuSendung.ID,neuSendung.Status,neuSendung.Rechnung);
      lvAuswahl.ItemFocused.SubItems.Add(Dateneditieren.StrGrAuswahl.Cells[1,1]);
      lvAuswahl.ItemFocused.SubItems.Add(Dateneditieren.StrGrAuswahl.Cells[2,1]);
      neuSendung:=TSendung.Create(Sendung.ID,(Dateneditieren.StrGrAuswahl.Cells[1,1]),Sendung.Rechnung);
      neuSendung:=TSendung(Dateneditieren.StrGrAuswahl.Cells[2,1]);
    end else
    begin
    IsNegativeResult(Dateneditieren.ShowModal())
    end;
SO bei der Kundenerstellung:

Code:
function TDataconnect.getKunden():TKundeList;
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;
und so beim übergeben:

Code:
procedure TDatenEditieren.giveKundeDataToGrid(AKUnde:TKunde);
Begin
  StrGrAuswahl.Cells[0,1]:= IntToStr(Akunde.Id);
  StrGrAuswahl.Cells[1,1]:= AKUnde.Vorname;
  StrGrAuswahl.Cells[2,1]:=AKunde.Nachname;
end;



ich weüß nicht habe ich noch relevante stellen nicht aufgelistet? wenn ja füge ich welche hinzu
Danil
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.659 Beiträge
 
Delphi 12 Athens
 
#2

AW: StringGrid-Problem

  Alt 6. Dez 2011, 07:58
Zitat:
Delphi-Quellcode:
if IsPositiveResult(Dateneditieren.ShowModal()) then
    begin
      Kunde:= TKunde (Dateneditieren.StrGrAuswahl.Objects[1,2]);
      neuKunde:=TKunde(lvAuswahl.ItemFocused.SubItems.Objects[0]);
      kunde:= neuKunde.Create(neuKunde.ID,neuKunde.Vorname,neuKunde.Nachname);
      lvAuswahl.ItemFocused.SubItems.Add(Dateneditieren.StrGrAuswahl.Cells[1,1]);
      lvAuswahl.ItemFocused.SubItems.Add(Dateneditieren.StrGrAuswahl.Cells[2,1]);
      neuKunde:=TKunde.Create(Kunde.ID,(Dateneditieren.StrGrAuswahl.Cells[1,1]),kunde.nachname);
      neuKunde:=Tkunde(Dateneditieren.StrGrAuswahl.Cells[2,1]);
      connect.KundeTransa.StartTransaction;
      connect.KundeTransa.Commit;
      connect.KundeQuery.CommitUpdates;
    end else
Wozu die Zuweisungen an Kunde und neukunde, wenn Du diese anschließend mit neu angelegten Instanzen überschreibst (im Falle von neukunde dann anschließend sogar noch einmal mit einer bestehenden)? Ich habe das Gefühl, dass Du Dir eine ganze Menge Speicherlecks da einprogrammiert hast.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 05:32 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