Autor Beitrag
Nano-Ware
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 7



BeitragVerfasst: Di 03.04.12 11:26 
Hey,

in diesem Thread habe ich mich geäußert, dass in Delphi alles kompliziert währe und bekam eine sehr kurze und einfache Form des Codes, den ich vorher vergeblich gesucht habe. Ich habe in Google nach "Delphi laufwerke" und "Delphi laufwerke ausgeben" usw gesucht und bekam unter anderem sowas:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
procedure LoadLogicalDrives(Strings: TStrings);
var
  S: DWORD;
  AllStrings, CurrentString: PChar;
begin
  S := 255;
  GetMem(AllStrings, Succ(S));
  GetLogicalDriveStrings(S, AllStrings);
  try
    if AllStrings <> nil then
    begin
      CurrentString := AllStrings;
      while True do
      begin
        Strings.Add(StrPas(CurrentString));
        Inc(CurrentString, Succ(StrLen(CurrentString)));
        if CurrentString[0] = #0 then
          Break;
      end;
    end;
  finally
    FreeMem(AllStrings);
  end;
end;


gleiche Funktionalität hat aber Folgendes:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var
  s : String;
begin

  for s in TDirectory.GetLogicalDrives do
    ShowMessage(s);

end;


Nur wo finde ich das? Diese Art ist wohl relativ neu, sollte aber doch trotzdem irgendwo zu finden sein.

Nur wo?
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 03.04.12 11:33 
Moin!

user profile iconNano-Ware hat folgendes geschrieben Zum zitierten Posting springen:
Nur wo finde ich das? Diese Art ist wohl relativ neu, sollte aber doch trotzdem irgendwo zu finden sein.
Wie wäre es mit der Delphi-Hilfe? Sowas sollte doch wohl bei jeder Version dabei sein (auch wenn die neueren Hilfen eher... bescheiden... ausgefallen sind). ;) :les:

user profile iconNano-Ware hat folgendes geschrieben Zum zitierten Posting springen:
gleiche Funktionalität hat aber Folgendes:
Wenn du in den Quelltext schaust, wirst du vermutlich sehr ähnlichen Code finden, denn das läuft immer irgendwie auf die WinAPI hinaus, nur dort kommt man an diese Informationen. :nixweiss: Und bei neuen Delphi-Versionen haben die Entwickler halt schon wieder eine Menge mehr an "Komfort" integriert. Im Netz finden sich aber vermutlich deshalb mehr Beispiele für ältere Versionen, weil die Beispiele zum einen schon älter sind und zum anderen unter mehr Versionen laufen, als Code, der nur in sehr neuen Ausgeben funktioniert. :idea:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Di 03.04.12 11:46 
Das Beispiel kam von mir. Ich wusste auch nicht, dass es konkret diese Funktion gibt, hab sie aber innerhalb von 5 Minuten gefunden, nachdem Du sagtest, Du hättest das nicht hinbekommen.

Mir war bekannt, dass Delphi viele "solche" Funktionen jetzt in IOUtils für mich als Entwickler gekapselt hat. Also hab ich als erstes in den IOUtils nach irgendwas gesucht, was TDrives oder so ähnlich heißen könnte. Sowas habe ich nicht gefunden. Also habe ich nach dem gesucht, was dem logisch am nächsten ist. Also hab ich mir TDirectory vorgenommen und einfach nach "driv" durchsucht. Und siehe da, eine Funktion "GetLogicalDrives". Das könnte doch sein, was ich suche.... kurz in der Hilfe nachgelesen. Japp, das ist es.

Also, es ist von Vorteil, wenn man die grobe Struktur des Frameworks kennt, mit dem Arbeitet. Ob das jetzt die VCL, RTL oder auch das DotNET-Framework ist dabei egal, das trifft für alle Frameworks zu. Und so kann man einigermaßen zügig das finden, was man sucht.
Datumsfunktionen sucht man in DateUtils. Alles was mit Dateien zu tun hat in IOUtil. Strings? -> StrUtils. Basics in SysUtils. Usw.
Aber wie gesagt, das ist nicht delphispezifisch, sondern gilt für jedes Framework das man benutzt. Und wenn man 8 Stunden am Tag mit der VCL arbeitet, hat man das natürlich eher verinnerlicht, als wenn man nur 2 Stunden in der Woche ein bisschen mit Delphi rumspielt.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Di 03.04.12 12:04 
user profile iconNersgatt hat folgendes geschrieben Zum zitierten Posting springen:
Ob das jetzt die VCL, RTL oder auch das DotNET-Framework ist dabei egal, das trifft für alle Frameworks zu.
In diesem Fall sogar im doppelten Sinne, denn IOUtils ist quasi 1:1 .NETs System.IO entnommen ;) .

_________________
>λ=
Nano-Ware Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 7



BeitragVerfasst: Di 03.04.12 12:12 
Ja. Nur ich wusste nichteinmal, dass die Unit IOUtils existiert. Dass man mit dem Namen auch an eventuelle Funktionen kommt hab ich schon selbst erfahren. Nur wo bitte finde ich generell die Units? Gibt es eventuell eine komplette Liste + Beschreibung der Units?
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Di 03.04.12 12:41 
user profile iconNano-Ware hat folgendes geschrieben Zum zitierten Posting springen:
Nur wo bitte finde ich generell die Units? Gibt es eventuell eine komplette Liste + Beschreibung der Units?

Generell die Onlinehilfe... aber da sind so viele Units drin, die werden Dich schlichtweg erschlagen.
Arbeite mit Delphi. Versuch Deinen Weg nach Rom zu finden. Irgendwann wirst Du feststellen, dass Du viele Umwege nach Rom gegangen bist. Dann wirst Du Deinen Code umstellen. Und wieder ein Jahr später wirst Du feststellen, dass Du immer noch Umwege gehst. Das passiert mir auch täglich. Dann führt man halt ein Refactoring durch und ist hinterher zufrieden mit sich, weil der Code wieder ein Stück sauberer ist.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Perlsau
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 03.04.12 12:50 
user profile iconNano-Ware hat folgendes geschrieben Zum zitierten Posting springen:
Nur wo bitte finde ich generell die Units?

Im Source-Ordner deiner Delphi-Installation.

user profile iconNano-Ware hat folgendes geschrieben Zum zitierten Posting springen:
Gibt es eventuell eine komplette Liste + Beschreibung der Units?

Nicht daß ich wüßte. Vielleicht erstellt irgendwann mal jemand eine ...
SvenAbeln
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 334
Erhaltene Danke: 3



BeitragVerfasst: Di 03.04.12 15:47 
user profile iconPerlsau hat folgendes geschrieben Zum zitierten Posting springen:

user profile iconNano-Ware hat folgendes geschrieben Zum zitierten Posting springen:
Gibt es eventuell eine komplette Liste + Beschreibung der Units?

Nicht daß ich wüßte. Vielleicht erstellt irgendwann mal jemand eine ...

Natürlich gibt es so eine Liste: Embarcadero DocWiki
Ansonsten findet dies auch in der Hilfe, je nach Delphi Version z.B. unter "RAD Studio / Bibliotheken-Referenz" oder auch "RAD Studio / RAD Studio VCL Referenz"