Delphi-PRAXiS
Seite 2 von 2     12   

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 TListBox zugriffs Problem (https://www.delphipraxis.net/31968-tlistbox-zugriffs-problem.html)

Gruber_Hans_12345 16. Okt 2004 17:23

Re: TListBox zugriffs Problem
 
Du rufst in deiner Klasse TClerkBox (procedure TClerkBox.InsertEntry) die Funktion LoadClerks; auf.

Aber wo sagst du ihm was das für eine Funktion ist ?
Eigentlich dürfter er in dieser Klasse die LoadClerks gar nicht kennen :gruebel: (und müßte beim kompilieren einen Fehler zeigen)

entweder hast du da noch ein wichtiges Code Stück unterschlagen, oder ....

rudi_ 16. Okt 2004 17:26

Re: TListBox zugriffs Problem
 
sorry
war ein wenig ungeschickt
ich hatte zwischendurch mal in der TClerkBox quasi zwei kopien der prozeduren LoadClerks und ClearClerks angelegt
um zu testen, ob das was ändert, wenn die in der eigenen klasse vorhanden sind
das hatte ich nicht gerade wieder vollständig zurückgeändert
beeinflusst das verhalten des programms aber in keiner weise

Gruber_Hans_12345 16. Okt 2004 17:29

Re: TListBox zugriffs Problem
 
Dann poste mal den aktuellen Code.

rudi_ 16. Okt 2004 17:32

Re: TListBox zugriffs Problem
 
Delphi-Quellcode:
procedure TClerkBox.BeforeDestruction;
begin
if FChanged then
begin
  if FDataSetID <> -1 then
    UpdateEntry
  else
    InsertEntry;
end;
  inherited BeforeDestruction;
end;

procedure TClerkBox.UpdateEntry;
begin
if FChanged then
begin
  FMySQL.Query('UPDATE staff SET name='''+txt_clerkname.Text+''' WHERE id='+inttostr(FDataSetID));
  if FMysql.LastErrorNo <> 0 then
    showmessage(FMySQL.LastErrorMsg);
  FMySQL.FreeResult(FMySQL.LastResultID);
  FChanged := false;
  Caption := 'Information:';
  SchedClerks.LoadClerks;
end;
end;

procedure TClerkBox.InsertEntry;
begin
if FChanged then
begin
  FMySQL.Query('INSERT INTO staff (name) VALUES('''+txt_clerkname.text+''')');
  if FMysql.LastErrorNo <> 0 then
    showmessage(FMySQL.LastErrorMsg);
  FMySQL.FreeResult(FMySQL.LastResultID);
  FChanged := false;
  Caption := 'Information:';
  SchedClerks.LoadClerks;
end;
end;
wie gesagt, es hat sich im grunde nichts geändert
das ganze läuft nach wie vor nicht

Gruber_Hans_12345 16. Okt 2004 17:39

Re: TListBox zugriffs Problem
 
und was ist die Eigenschaft/Funktion/Variabel "SchedClerks" ? Wo wird die gesetzt ?

(Die Klasse TClerkBox hat ja keine Eigenschaft SchedClerks)

rudi_ 16. Okt 2004 17:46

Re: TListBox zugriffs Problem
 
SchedClerks ist vom typ TSchedClerks und damit eine Instanz der Formklasse
wie immer von delphi als globale variable in der unit angelegt

darüber kann ich also auf die methoden und komponenten der TSchedClerks zugreifen (siehe oben bei der Dekleration von TSchedClerks)

Gruber_Hans_12345 16. Okt 2004 17:48

Re: TListBox zugriffs Problem
 
... na dam ham a se ja !!!

du verwendest die globale variabel ABER erzeugst das Fromular hier dynamisch !!!!

Das geht natürlich NICHT !!!

Zitat:

Zitat von rudi_
bevor ich jetzt erstmal weg muss, sollte man ggf. noch erwähnen, dass diese Form aus einer anderen Form heraus mit ShowModal erzeugt wird; falls das wichtig ist:

Delphi-Quellcode:
  ClerkWindow := TSchedClerks.Create(nil,SchedConfig);
  with ClerkWindow do
  begin
    top := (screen.Height div 2) - (height div 2);
    left := screen.Width div 2 - width div 2;
    ShowModal;
  end;
  ClerkWindow.Free;
(das nur am rande)


rudi_ 16. Okt 2004 17:50

Re: TListBox zugriffs Problem
 
ahh
ich glaub ich kann dir folgen *g*

soviel zur betriebsblindheit :shock: :shock:

ich versuchs gleich mal zu ändern


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:08 Uhr.
Seite 2 von 2     12   

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