![]() |
Re: Von fremder Form auf ListView zugreifen
Richtisch, einfach noch
Delphi-Quellcode:
aufrufen und schon sollte es gehen
Listview.Refresh;
hmmm ruf einfach mal das refresh auf, ma schaun was passiert... |
Re: Von fremder Form auf ListView zugreifen
Nichts passiert. :(
|
Re: Von fremder Form auf ListView zugreifen
kann doch gar nicht sein!! Wenn du das clear aufrufst muss das teil doch leer sein
zeig doch mal was du genau machst!! Hast du die abfrage von Deddy mit eingebaut?!? |
Re: Von fremder Form auf ListView zugreifen
Und bei
Delphi-Quellcode:
?
Form1.ListView1.Items.Clear;
|
Re: Von fremder Form auf ListView zugreifen
Auch hier leider kein erfolg.
Habe jetzt folgende Sachen ausprobiert. Form1.ListBox.Clear; Form1.ListBox.Items.Clear; das ganze mit und ohne Form1.ListBox.Refresh; Kann mir das ganze irgendwie nicht erklären. Habe jetzt auch schonmal einfach nen Test Projekt mit 2 Formen ausprobiert, dort funktioniert alles einwandfrei. Kann mir nur noch erklären, dass es irgendwo mit zusammen hängt das ich aus ner anderen Unit halt drauf zugreifen will. |
Re: Von fremder Form auf ListView zugreifen
zeig doch einfach mal den code!! Lässt du die formulare automatisch erstellen oder übernimmst du das?!?
|
Re: Von fremder Form auf ListView zugreifen
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:
Die unit funktionen ist einfach nur eine Unit in dennen ich verschiedene proceduren und funktionen auslager.
// 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; 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; |
Re: Von fremder Form auf ListView zugreifen
Das Form2 ist richtig?
|
Re: Von fremder Form auf ListView zugreifen
Ähh ne , Form1 gehört dahin. Habs nur schnell hier hin getippt.
|
Re: Von fremder Form auf ListView zugreifen
oben machst du
Delphi-Quellcode:
und unten
Listview.Clear;
Delphi-Quellcode:
ändere das untere mal...
Listview.Items.Clear;
ich hab das bei mir auch mal getestet und es klappt |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:55 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