-
Forum: Object-Pascal / Delphi-Language
Delphi
by Benmik,
18. Dez 2018
Eine weitere Fundstelle ist AsyncCalls von Andreas Hausladen, und zwar die dortige Funktion LocalVclCall:procedure TFormMain.MainProc;
procedure DoSomething;
procedure UpdateProgressBar(Percentage: Integer);
begin
ProgressBar.Position := Percentage;
Sleep(20); // This delay does not affect the time for the 0..100 loop
// because...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Benmik,
11. Dez 2018
Sí, Señor! Es steht aber auch drin, wie man das mit Assembler austrickst. Ein Vorgehen, das David Heffernan immer mit hochrotem Kopf als "filthy hack" geißelt.
Für mich lehrreich, weil ich ja im Leben nicht auf solche Hintergründe gekommen wäre. Es gibt halt mehr zwischen Himmel und Erde, als sich unserer Schulweisheit träumen lässt. Tröstlicherweise gilt das aber auch für die Experten.
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Benmik,
10. Dez 2018
Hier noch ein Codesplitter, der in den Bereich des ursprünglichen Themas fällt.
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Benmik,
8. Dez 2018
Da hast du recht. Ich hatte in letzter Zeit auch viel mit VBA zu tun, und da gilt die Überwachung einer Variable nur für eine Routine, oder sie muss global sein. Tatsächlich wertet der Debugger alles aus, was so heißt, wie man es mit F5 eingetragen hat. Wundert mich eigentlich, wo Pascal doch sonst so kleinlich ist.
Ich fürchte aber, ich bin nur schwer auf den Pfad der Tugend zu bringen. Zum...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Benmik,
8. Dez 2018
Das ist doch mal ein klares Wort.
Das führe ich mir jetzt mal gedankendurchdringend zu Gemüte. Vielen Dank für deine Mühe und die Zeit, die du mir gewidmet hast.
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Benmik,
8. Dez 2018
Vielen Dank. Da mache ich mich mal dran. TFindeDateiRM kann ich ohne Weiteres anpassen.
Es ist so, dass ich - hier:) - eigentlich allem folgen kann, was du sagst, aber es nicht zu meinem aktiven Wissen gehört, so dass ich darüber nicht einfach verfügen und die Zusammenhänge erkennen kann.
Falls du an diesem trüben Samstag die Zeit aufbringen kannst, würdest du mal die "hässlichen" Lösungen...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Benmik,
8. Dez 2018
Das ist jetzt harter Stoff, aber das würde mich wirklich freuen, das mal zu kapieren.
Ich habe mich vertan: TFindeDateienRM = procedure(const Verzname:string;const Data:_WIN32_FIND_DATAW;var Abbr:Boolean); stdcall; steht im Interface-Teil. Ich dachte, ich brauche das, damit ich das als Variable übergeben kann. Die Prozedur procedure FindeDateiRM(const BasisVerz:string;const...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Benmik,
8. Dez 2018
FindeDateiRM steht bereits im interface-Teil einer Unit.
Lasse ich das @ weg, kommt (wenig überraschend): Lokale Prozedur wurde Prozedurenvariable zugewiesen.
Ich verstehe auch nicht, warum das @ fehlen darf. Es wird doch die Adresse einer Prozedurenvariable übergeben?!
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Benmik,
8. Dez 2018
Ganz herzlichen Dank! Ich ahnte, dass da Dinge im Spiel sind, auf die ich selbst nicht kommen kann.
Der ist gut. Wenn wir hier alles lassen würden, was sich für dich von selbst erklärt, dann können wir die DP eigentlich zumachen.
Ich muss das jetzt erstmal geistig durchdringen. Die Sache mit TFindeDateienRMist allerdings nicht auf meinem Mist gewachsen, das habe ich irgendwoher. Das mit dem...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Benmik,
8. Dez 2018
@jaenicke
Dein Ratschlag ist sicher analog zu dem, wenn irgend möglich keine globalen Variablen zu verwenden. Dinglistewäre dann praktisch eine globale Variable für die Unterroutinen von "Test". Es ist aber doch auch so, dass dies ein Design-Ratschlag ist und keinerlei technische Nachteile hat? (Delphi lässt ja diese Konstruktion explizit zu!)
@Uwe Raabe: Könntest du das kurz erläutern?
...
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Benmik,
8. Dez 2018
Oouuh, jetzt fällt mir eine mögliche Antwort selber ein.
Die Routine "HierKnallts" ist eine Callback-Routine, deren aufrufende Routine von einer weiteren Unterprozedur von "Test" aufgerufen und mit @HierKnallts übergeben wird.
Obwohl man im Debugger die Variable ohne weiteres sieht, erinnere ich mich, dass es da mit der Sichtbarkeit Probleme gab. Daher funktioniert auch die globale Variable.
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Benmik,
7. Dez 2018
Habe ich auch grad mal nachgebastelt, bei mir auch nicht. Dürfte ja auch gar nicht sein.
Woran könnte das theoretisch liegen?
-
Forum: Object-Pascal / Delphi-Language
Delphi
by Benmik,
7. Dez 2018
In einem Modul deklariere ich:
type
TDing = class(TObject)
Nr: integer;
end;
TDingliste = class(TObjectList<TDing>)
...
...
end;
In einem anderen Modul verwende ich das: