AW: Gleiche Variablen-Namen
Hi zusammen
Vielen Dank, Uwe Raabe. An sowas habe ich weniger gedacht, da es mir zu wenig klar erschien. Aber klar - Self.FPathlist kann unmöglich der Parameter sein, womit klar wäre, welche der beiden Variablen an welche zugewiesen und von wem gelöscht wird. Ohne die klare Adressierung mindestens der einen Variablen ist ja auch nicht wirklich klar, wer wem zugewiesen wird. @DeddyH: FPathlist sammelt im PathfinderFrame die vom Filesearcher gefundenen Pfade. Hier im Test wird diese Liste von der Mainform abgearbeitet, soll aber in einem Datenmodul eingesetzt werden, um Daten - in diesem Fall Bilder - von der Festplatte in eine DB zu schreiben. Den Pathfinderframe hatte ich ursrünglich unter dem Namen OpenfileDialog, bzw. OpenFileFrame entwickelt. Dieses Ding hat nur den grossen Fehler, dass es ausser gefundene Files anzuzeigen, auch noch andere, programmspezifische, Aufgaben erledigt. Allgemein sind da ddie Zugriffe des Frames und anderer Projektteile nicht sauber geregelt. Na ja, das Ding hat schon einige Jährchen auf dem Buckel... Gruss Delbor |
AW: Gleiche Variablen-Namen
Und wozu brauchst Du dann eine 2. Instanz? Ich habe immer öfter den Eindruck, Du machst es Dir unnötig schwer.
|
AW: Gleiche Variablen-Namen
@DeddyH
Jap...deshalb ja auch mein Lösungsansatz. |
AW: Gleiche Variablen-Namen
Ich schieße mal kurz unsachlich dazwischen: Wenn Du schon so einen Namen wie FPathList für ein Feld wählst, warum nicht auch aPathList für ein Argument? Zumindest wäre dann die Namensverwirrung im Titel sinnvoll aufgelöst
Ansonsten, schließe ich mich immer Uwe Raabes Meinung an... ;) Sherlock |
AW: Gleiche Variablen-Namen
Hi Ghostwalker
Ja, danke. Daran habe ich auch schon gedacht, mich dann aber für dieses Vorgehen entschieden, da ich ja auch noch ein Feld FOrdner habe, in dem der Name des Parentfolders enthält. Zitat:
Ziel ist es, eine eingebettete SQLite-DB zu erstellen, die gerade mal eine Tabelle enthält,die ihrerseits nur einige wenige Felder aufweist. Die Aufgabe dieser DB wird es sein, RAWBild-Dateien und davon erstellte Bitmaps zu speichern. Diese DB soll auch Auskunft darüber geben, ob das Bitmap schon bearbeitet wurde. Im Produktiveinsatz werden aus den RAW-Bildern nebst Bitmaps auch Thumbnails erstellt. Diese werden in meiner BilderDB (12 Tabellen, MySQL) gespeichert. Gruss Delbor |
AW: Gleiche Variablen-Namen
Hi zusammen
@DeddyH: Zitat:
Zitat:
Aber jetzt fällt mir auf:
Delphi-Quellcode:
Durch das Property Pathlist lässt sich in einer Mainform oder einem Datenmodul genauso iterieren wie durch eine private Liste. Das widerspricht einzig etwas dem Schichtenmodell, wonach zwar die GUI (PathFinderFrame, Mainform) nach unten (Datenmodul) zugreifen sollen, nicht aber umgekehrt. Technisch ist es durchaus möglich.
TOnComplete = TNotifyEvent;
TPathfinderframe = Class... private fpathlist : TStringlist; fonComplete : TOnComplete; : published Property Pathlist : TStringlist read fpathlist write fpathlist; Property onComplete: TOnComplete read fonComplete write foncomplete; : end; Gruss Delbor |
AW: Gleiche Variablen-Namen
Hi zusammen
Eben hab ich versucht, Uwe Raabes Vorschlag umzusetzen. Der Empfänger des Events befindet sich bislang in der Mainform, und so wolllte ich ihn ins Datenmodul verlegen. Dazu kopierte ich die Prozedur in der Mainform, fügte sie im Datenmodul ein und liess sie per Shift/Control/C deklarieren. Anschliessend versuchte ich, die Variable FPathlist per Refactoring als privates Feld deklarieren zu lassen. Da hat Delphi aber ganz schön gemeckert! Wie, das zeigt der Anhang. Ich habe dann mal versucht, das Feld von Hand zu deklarieren. Das schien OK. So hab ich in der Empfängerprozedur einen Haltepunkt gesetzt. Aber als ich von da weitersteppen wollte, meckerte Delphi Gleich zweimal: Zitat:
Zitat:
Delphi-Quellcode:
So, wie ich das jetzt sehe, bleiben also 2 Lösungen:
procedure TDMLSQLite.DoPathListEvent(Sender: TObject;
const FOrdner: String; const FPathlist: TStringList); begin Self.FPathlist.Assign(FPathlist); end;
Gruss Delbor |
AW: Gleiche Variablen-Namen
Zitat:
Delphi-Quellcode:
class TDMLSQLite = ... private FPathlist: TStringList; end; procedure TDMLSQLite.DoPathListEvent(Sender: TObject; const AOrdner: String; const APathlist: TStringList); var Pathlist: TStringList begin FPathlist.Assign(APathlist); end; |
AW: Gleiche Variablen-Namen
Vielleicht wäre es zielführender, Delphi erstmal links liegen zu lassen, Dich mit Bleistift und Papier hinzusetzen und einmal genau zu planen, wer was erzeugen/freigeben soll und wer worauf Zugriff haben muss. Ansonsten verschlimmbesserst Du Dein Programm am Ende immer weiter, bis gar nichts mehr funktioniert.
|
AW: Gleiche Variablen-Namen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16: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