AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi PageControl , Ereignis wenn neue TabSheet angeklickt wurde
Thema durchsuchen
Ansicht
Themen-Optionen

PageControl , Ereignis wenn neue TabSheet angeklickt wurde

Ein Thema von shareholder · begonnen am 3. Mai 2004 · letzter Beitrag vom 3. Mai 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von shareholder
shareholder

Registriert seit: 1. Nov 2003
Ort: Denmark, Lolland, Marielyst
280 Beiträge
 
Delphi 7 Enterprise
 
#1

PageControl , Ereignis wenn neue TabSheet angeklickt wurde

  Alt 3. Mai 2004, 19:24
Bei folgendem Code tritt eine AV (Access Violation) auf.

Delphi-Quellcode:
procedure TMainForm.PageControl1Chang(ing/e)(Sender: TObject;
  var AllowChange: Boolean);
begin
  // Funktion zum Löschen der ListView;
  LoeschenLV;
end;
Wie würdet Ihr das anstellen ?

edit: Das Ereignis soll für alle TabSheets sein!
Mastdarmpapillenentzündung ist cool
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: PageControl , Ereignis wenn neue TabSheet angeklickt wur

  Alt 3. Mai 2004, 20:12
Ich würds im OnChange machen. Und was macht eigentlich deine LoeschenLV? Vielleicht löst diese die AV aus?
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von shareholder
shareholder

Registriert seit: 1. Nov 2003
Ort: Denmark, Lolland, Marielyst
280 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: PageControl , Ereignis wenn neue TabSheet angeklickt wur

  Alt 3. Mai 2004, 20:15
ja, das ist ja das problem!

sofern die prozedur LoeschenLV; im OnChange - Event steht,
wird eine AV ausgelöst.

Edit: Die Prozedur löscht den Inhalt und alle Spalten.
Mastdarmpapillenentzündung ist cool
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: PageControl , Ereignis wenn neue TabSheet angeklickt wur

  Alt 3. Mai 2004, 20:16
Ohne code wirst du hier nicht viel erreichen...poste mal die Prozedur LoeschenLV, dann kann ich vielleicht auch sagen, wo das Problem ist.
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von shareholder
shareholder

Registriert seit: 1. Nov 2003
Ort: Denmark, Lolland, Marielyst
280 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: PageControl , Ereignis wenn neue TabSheet angeklickt wur

  Alt 3. Mai 2004, 20:19
Delphi-Quellcode:
procedure TMainForm.ResetLV;
begin
    if (LVExts.ViewStyle = vsReport) then
      LVExts.Columns.Clear;

    if (LVExts.LargeImages.Count > 0) then
      LVExts.LargeImages.Clear;
    if (LVExts.SmallImages.Count > 0) then
      LVExts.SmallImages.Clear;

    LVExts.Clear;
end;
danke!
Mastdarmpapillenentzündung ist cool
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#6

Re: PageControl , Ereignis wenn neue TabSheet angeklickt wur

  Alt 3. Mai 2004, 20:22
Hmm, sieht ganz ok aus, wobei der Name da was vermuten lässt...handelt es sich sicher um die richtige Prozedur? Versuche mal, einzeln die if-Blöcke zu aktivieren, und den Rest auszukommentieren. Vielleicht funktioniert das..
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

Re: PageControl , Ereignis wenn neue TabSheet angeklickt wur

  Alt 3. Mai 2004, 20:25
Hallo,

mich wundert etwas, dass Du die Images löscht?

Vielleicht könnte statt

Delphi-Quellcode:
...
LVExts.Clear
...
folgendes helfen:

if (LVExts.Items.Count>0) then LVExts.Items.Clear;
  Mit Zitat antworten Zitat
Benutzerbild von shareholder
shareholder

Registriert seit: 1. Nov 2003
Ort: Denmark, Lolland, Marielyst
280 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: PageControl , Ereignis wenn neue TabSheet angeklickt wur

  Alt 3. Mai 2004, 20:26
ok, danke. das war eine gute idee !

hier dran liegt's:

Delphi-Quellcode:
if (LVExts.LargeImages.Count > 0) then
  LVExts.LargeImages.Clear;
if (LVExts.SmallImages.Count > 0) then
  LVExts.SmallImages.Clear;
aber was genau ist falsch?

edit: Ok, Gollum war schneller ! Danke Euch beiden!
edit2: Ich habe Gollum's Variante genommen.

Problem gelöst
Mastdarmpapillenentzündung ist cool
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9

Re: PageControl , Ereignis wenn neue TabSheet angeklickt wur

  Alt 3. Mai 2004, 20:36
Hallo,

da ich nicht genau weiss, wie Du die Liste füllst, kann ich nur raten:

Du weist Deinen ListItems über ImageIndex einen Index der ImageList zu. Wenn Du nun die Einträge der Imagelist vor den Einträgen der Listview löscht, ist die Referenz nicht mehr gegeben.

U.U. könnte zuerst ein löschen der Listvieweinträge und daran anschließend ein löschen der Imagelisteinträge klappen.
  Mit Zitat antworten Zitat
Benutzerbild von shareholder
shareholder

Registriert seit: 1. Nov 2003
Ort: Denmark, Lolland, Marielyst
280 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: PageControl , Ereignis wenn neue TabSheet angeklickt wur

  Alt 3. Mai 2004, 20:56
kann es sein, das mit ListView.Clear; auch gleich die imagelists mitgelöscht werden?

edit: nein, das kann nicht sein. hab nach dem löschen der Elemente die Index der Images aus der ImageList im memo ausgegeben.
Mastdarmpapillenentzündung ist cool
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:37 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