Welchen code willste denn sehen? Die Formulare habe ich mit der
IDE und dem
OI erstellt,
also nichts Dynamisches oder so.
Das ganze wird ne kleine verwaltung mit
mySql. Ich habe einmal eine Procedure mit der ich
mein ListView fülle.
Delphi-Quellcode:
// ausschnitt aus unit funktionen
procedure ListMedien(ListView: TListView);
var q:
String;
ex: boolean;
i: integer;
begin
if fMySql.Connect
then begin
if assigned(FResult)
then begin
if FMysql.Status<>MYSQL_STATUS_READY
then
FreeAndNil(FResult);
end;
q := '
SELECT * FROM medien';
fResult := fMySql.query(q,true,ex);
ListView.Clear;
// Liste leeren hier passiert jedoch nichts wenn ich das ganze aus Form2 aufrufe
i := -1;
fResult.First;
while not fResult.Eof
do begin
i := i+1;
ListView.Items.Add;
ListView.Items[i].Caption := fResult.FieldValueByName('
id');
ListView.Items[i].SubItems.Add(fResult.FieldValueByName('
name'));
ListView.Items[i].SubItems.Add(fResult.FieldValueByName('
type'));
ListView.Items[i].SubItems.Add(fResult.FieldValueByName('
gerne'));
ListView.Items[i].SubItems.Add(fResult.FieldValueByName('
lager'));
ListView.Items[i].SubItems.Add(fResult.FieldValueByName('
verliehen'));
fResult.Next;
end;
end;
ListView.Refresh;
FreeAndNil(fResult);
end;
Die
unit funktionen ist einfach nur eine
Unit in dennen ich verschiedene proceduren und funktionen auslager.
Greife ich von meiner Form1 darauf zu, funktioniert das ganze.
Jedoch von Form2 aus passiert nichts. Also habe ich mir den TestButton Button1 erstellt und einfach mal folgendes
probiert.
Delphi-Quellcode:
// auch hiermit keinen erfolg
procedure TForm2.Button1Click(Sender: TObject);
begin
Label1.Caption := Form1.ListView.Items.Caption; // wahlweise im code beim 2. Buttonklick kommt eben der Fehler vom Thread anfang (siehe Zugriffsverletzung)
Form2.ListView.Items.Clear;
Form2.ListView.Refresh;
end;