AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Probleme mit dem Freigeben von TabSheets
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit dem Freigeben von TabSheets

Offene Frage von "r2c2"
Ein Thema von r2c2 · begonnen am 11. Jun 2005 · letzter Beitrag vom 16. Jun 2005
Antwort Antwort
Seite 2 von 2     12   
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#11

Re: Probleme mit dem Freigeben von TabSheets

  Alt 15. Jun 2005, 10:13
Zitat von marabu:
Hallo Christian,

deine Groups property hast du als read-only festgelegt, instanziierst immer fleißig neu und gibst nie frei. Ich fürchte da sind noch andere Schwachstellen.

Grüße vom marabu
Hm, ich glaub da hast du Recht. Ich produzier da Scheicherlöcher ohne Ende und merks nicht.
Wie blöd kann man nur sein?!

Ich bin Momentan in der Schule, kann also nicht an mein Prog. Heute Mittag werd ich aber alles nochmal prüfen und diverse Fehler verbessern.

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#12

Re: Probleme mit dem Freigeben von TabSheets

  Alt 15. Jun 2005, 18:38
Ich hab mir das mit den Speicherlöchern mal angeguckt. Waren doch keine drin(glaub/hoff ich zumindest):

1. Groups is read-only, weil nie schreibend darauf zugegriffen wird. Groups ermittelt nur die Ordnernamen und somit die "Gruppen"
2. beim instanzieren wird den TabSheets und ShellListViews parent zugewiesen, somit gibts
3. auch keine Probleme mit dem freigeben, weil das PageControl das erledigt.

Weitere Schwachstellen hab ich nicht gefunden.

Zum eigentlichen Problem: Ich hab noch was herausgefunden:
Wenn ich den Ordner gelöscht hab, bleibt er noch ewig lange bestehen(bis zur Exception). Allerdings, wenn ich ihn zwischendurch mit dem Explorer löschen will, bekomme ich "Zugriff verweigert". Das könnte(auch wenn ich mir nicht denken kann wie) die Problemquelle sein, nur warum is der ordner noch da? der sollte doch eigentlich nach RemoveDir weg sein...?

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#13

Re: Probleme mit dem Freigeben von TabSheets

  Alt 15. Jun 2005, 19:31
Schau nochmal genauer:

Delphi-Quellcode:
function TGroups.GetGroups: TStrings;
...
begin
  ...
  Result := TStringList.Create;
  ...
end;

procedure TGroups.CreateGroups;
...
begin
  ...
  for i := 0 to GetGroups.Count - 1 do
    CreateTab(Groups[i]);
end;
Abgesehen von diesem Problem rate ich dir zu einer Abstraktions-Ebene für deine Abbildung Gruppe-nach-Ordner. Es ist einfach zu verwirrend, wenn du an unterschiedlichen Stellen immer versuchst die TabSheets mit den Ordnern im Verzeichnis zu synchronisieren. Kapsel die Ordnerzugriffe so, dass sie für die Gruppen-Aktionen transparent sind und teste das getrennt aus.

marabu
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#14

Re: Probleme mit dem Freigeben von TabSheets

  Alt 16. Jun 2005, 21:10
Zitat von marabu:
Abgesehen von diesem Problem rate ich dir zu einer Abstraktions-Ebene für deine Abbildung Gruppe-nach-Ordner. Es ist einfach zu verwirrend, wenn du an unterschiedlichen Stellen immer versuchst die TabSheets mit den Ordnern im Verzeichnis zu synchronisieren. Kapsel die Ordnerzugriffe so, dass sie für die Gruppen-Aktionen transparent sind und teste das getrennt aus.
Hm...
Jetzt fragt sich nur: wie? Ich greife mehrmals auf die Ordner zu:
- beim Start zum ermitteln der Gruppen: GetGroups
- beim Erstellen einer Gruppe: NewGroup
- beim Umbenennen einer Gruppe: RenameGroup
- beim Löschen der Gruppe: DeleteGroup

Dabei sind die Gruppen in den Ordnern "gespeichert" und werden durch die TabSheets angezeigt. Du meinst also, ich sollte ne neue Klasse TSyncDir oder sowas erstellen, die die Ordner in den genannten Fällen syncronisiert.

Dann hätte ich jeweils nur den Aufruf SyncDirs und nicht mehr DeleteDir, RenameDir, ForceDirectories...

Man bekommt also im Quelltext nur mit, dass die Ordner syncronisiert werden, wie das passiert nicht. Ob das übersichtlicher wird...

Ich glaub ich hab den Sinn da noch nicht ganz erfasst, oder hab ich dich nur falsch verstanden?

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#15

Re: Probleme mit dem Freigeben von TabSheets

  Alt 16. Jun 2005, 21:26
Ich hab ne funktionierende Lösung *freu*.
Allerdings würde ich das nicht unbedingt "schön" nennen.

Ich hab ne StringList FDirsToDel eingeführt. In DeleteGroup wird dann der zu löschende Ordner eingetragen und im Destuctor dann wirklich gelöscht. Damit kommts nicht mehr zur AV.

Jetzt stellt sich nur die Frage: Geht das nicht besser? Und vor allem: Warum "dauert" das Löschen so lange. Darin sehe ich nämlich momentan das eigentliche Problem. Ich bekomme "Zugriff verweigert"(auch wenn ich nicht weiß, wo ich denn nochmal auf den Ordner zugreife) und das führt zur AV.

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 07:47 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