Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Listen vergleichen (https://www.delphipraxis.net/196618-listen-vergleichen.html)

EWeiss 4. Jun 2018 12:33

Listen vergleichen
 
Sorry habe irgendwie wieder was an der Waffel.

Ich erstelle eine Liste von Prozessen und eine Liste von ProzessId's
Die Prozessliste hat 55 Einträge die ich mit meine ProzessId's Liste vergleichen muss (diese hat 4 Einträge).

Habe wieder irgendwo einen Denkfehler wie vergleiche ich die liste nun mit unterschiedlichen Counter?

Ok ;) Schlagt mich ruhig.. LOL

Delphi-Quellcode:
  // prüfen ob aktiver prozess existiert
  for K := 0 to (vProcList.Count - 1) do
  begin
    if vProzessID.Find(vProcList[K].ID, proc) then
    begin
      if proc.ID = vProzessID[K].ID then
        bFound := true;
    end;
  end;
Überschreitet das Maximum logisch vProzessID hat ja nur 4 Einträge.

gruss

TiGü 4. Jun 2018 12:36

AW: Listen vergleichen
 
Du musst mit zwei geschachtelten Schleifen arbeiten.

Oder nimmst gleich ein TDictionary.


EDIT: Oder schreibst einfach:
Delphi-Quellcode:
  // prüfen ob aktiver prozess existiert
  bFound := false;
  for K := 0 to (vProcList.Count - 1) do
  begin
    if vProzessID.Find(vProcList[K].ID, proc) then
    begin
      bFound := true;
    end;
  end;
Nehme an, das es sich um TStringList handelt?

Fritzew 4. Jun 2018 12:39

AW: Listen vergleichen
 
Zitat:

Zitat von EWeiss (Beitrag 1403806)
Sorry habe irgendwie wieder was an der Waffel.

Ich erstelle eine Liste von Prozessen und eine Liste von ProzessId's
Die Prozessliste hat 55 Einträge die ich mit meine ProzessId's Liste vergleichen muss (diese hat 4 Einträge).

Habe wieder irgendwo einen Denkfehler wie vergleiche ich die liste nun mit unterschiedlichen Counter?

Ok ;) Schlagt mich ruhig.. LOL

Delphi-Quellcode:
  // prüfen ob aktiver prozess existiert
  for K := 0 to (vProcList.Count - 1) do
  begin
    if vProzessID.Find(vProcList[K].ID, proc) then
    begin
      if proc.ID = vProzessID[K].ID then
        bFound := true;
    end;
  end;
Überschreitet das Maximum logisch vProzessID hat ja nur 4 Einträge.

gruss

Emil es wäre einfacher wenn Du die notwendigen Informationen mitgeben würdest.....
Wie sind Deine Listen definiert?

EWeiss 4. Jun 2018 12:43

AW: Listen vergleichen
 
Zitat:

Emil es wäre einfacher wenn Du die notwendigen Informationen mitgeben würdest.....
Wie sind Deine Listen definiert?
Ja sorry

Delphi-Quellcode:
procedure CheckProzessID;
var
  IntI, K, M: Integer;
  vProcList: TProcesses;
  proc: TProcess;
  bFound: BOOL;
begin
  bFound := false;

  // ProcList initialisieren
  vProcList := TProcesses.Create;
  // Prozesse einlesen
  vProcList.ReadSystem;

  // prüfen ob aktiver prozess existiert
  for K := 0 to (vProcList.Count - 1) do
  begin
    if vProzessID.Find(vProcList[K].ID, proc) then
    begin
      if proc.ID = vProcList[K].ID then
        bFound := true;
    end;
  end;

  if not bFound then
  begin
    // Timer deaktivieren
    KillTimer(HSprMaster, ID_MRENDER);
    // Alle Objekte die mit diesen verbunden sind löschen
    for M := 0 to Length(AudioVolumeArr) - 1 do
    begin
      gSprSession.GD_DeleteLinkedObject(succ(ID_BVOLUME) + M);
      // TAudioVolume freigeben
      AudioVolumeArr[M].free;
    end;
    // Array löschen
    SetLength(AudioVolumeArr, 0);
    // Session erstellen
    MainClass.CreateSession;
    // Window aktualisieren
    gSprSession.GI_UpdateWindow(HSprSession, false);
    // Timer aktivieren
    SetTimer(HSprMaster, ID_MRENDER, 60, nil);
  end;
  // Prozessliste löschen
  vProcList.Clear;
  // Prozessliste freigeben
  FreeAndNil(vProcList);
end;
Delphi-Quellcode:
vProzessID: TProcesses;
Im Anhang die *.pas mit ihren Möglichkeiten (ist nicht von mir)

gruss

EWeiss 4. Jun 2018 12:52

AW: Listen vergleichen
 
Zitat:

Zitat von TiGü (Beitrag 1403807)
Du musst mit zwei geschachtelten Schleifen arbeiten.

Oder nimmst gleich ein TDictionary.


EDIT: Oder schreibst einfach:
Delphi-Quellcode:
  // prüfen ob aktiver prozess existiert
  bFound := false;
  for K := 0 to (vProcList.Count - 1) do
  begin
    if vProzessID.Find(vProcList[K].ID, proc) then
    begin
      bFound := true;
    end;
  end;
Nehme an, das es sich um TStringList handelt?

Dann bekomme ich nie den Status false.
Und wenn dann ist er falsch.

gruss

Fritzew 4. Jun 2018 13:00

AW: Listen vergleichen
 
So wie ich das sehe hat TiGü recht,
sein Code sollte reichen, könnte man sogar noch etwas beschleunigen wenn man nach dem Finden abbricht.

Delphi-Quellcode:
 // prüfen ob aktiver prozess existiert
  bFound := false;
  for K := 0 to (vProcList.Count - 1) do
  begin
    if vProzessID.Find(vProcList[K].ID, proc) then
    begin
      bFound := true;
      break;  // Abbrechen da wir den Process haben
    end;
  end;

TiGü 4. Jun 2018 13:02

AW: Listen vergleichen
 
vProzessID wird von wem mit was befüllt?

EWeiss 4. Jun 2018 13:05

AW: Listen vergleichen
 
Zitat:

Zitat von Fritzew (Beitrag 1403817)
So wie ich das sehe hat TiGü recht,
sein Code sollte reichen, könnte man sogar noch etwas beschleunigen wenn man nach dem Finden abbricht.

Delphi-Quellcode:
 // prüfen ob aktiver prozess existiert
  bFound := false;
  for K := 0 to (vProcList.Count - 1) do
  begin
    if vProzessID.Find(vProcList[K].ID, proc) then
    begin
      bFound := true;
      break;  // Abbrechen da wir den Process haben
    end;
  end;

Ich habe es versucht und das Ergebnis ist leider negativ.
Wenn ich nur so prüfe ist bFound immer true und das Ergebnis wäre mein Task mit der ID die nicht mehr existiert wird nicht beendet.

gruss

Fritzew 4. Jun 2018 13:08

AW: Listen vergleichen
 
Wenn es so ist steht der Process in vProcessID.
Dein Problem ist in diesem Fall ein anderes......
Wie wäre es mit Debuggen?

EWeiss 4. Jun 2018 13:09

AW: Listen vergleichen
 
Zitat:

Zitat von TiGü (Beitrag 1403818)
vProzessID wird von wem mit was befüllt?

Wenn ich die Session addiere dann werden die ProcId's addiert

Delphi-Quellcode:
vProzessID.Add(ProcId, MainClass.DeviceName);


Wenn mein Control entfernt wird und CreateSession wird erneut auf gerufen wird die Liste geleert.

Addiere ich eine Session zur Laufzeit dan nwird die Liste nicht geleert aber die neue ID zur Liste addiert.

Wenn ich nun die Prozessliste mit den vorhandenen ID's vergleiche und ein Prozess wurde beendet soll das entsprechende Control entfernt werden.
Das mache ich auf einfachem Wege indem ich alle lösche und aktive neu erstelle.

gruss

EWeiss 4. Jun 2018 13:13

AW: Listen vergleichen
 
Zitat:

Zitat von Fritzew (Beitrag 1403820)
Wenn es so ist steht der Process in vProcessID.
Dein Problem ist in diesem Fall ein anderes......
Wie wäre es mit Debuggen?

Das nutzt mir nichts und ja habe ich schon.
Ich muss alle Prozesse mit den ID's in der Liste vergleichen und auf dem wege geht es nicht
weil beim ersten vergleich ich schon dein "Beispiele" mit break.. aus der Liste rausspringe.

False wird nie auftreten.

gruss

Fritzew 4. Jun 2018 13:18

AW: Listen vergleichen
 
Emil dann steht das auch da drin,


Delphi-Quellcode:
var
   k, i: integer;
begin
   bFound := false;
   for k := 0 to (vProcList.Count - 1) do
      begin
         for i := 0 to vProzessID.Count do
               vProcList[k].ID = vProzessID[i].ID then
               begin
                  bFound := true;
                  break;
               end;

        if bfound then break;

      end;
end;

Das ist jetzt das gleiche ohne die Find function.....

EWeiss 4. Jun 2018 13:27

AW: Listen vergleichen
 
Danke werde es gleich mal versuchen..

Nur nochmal zur vorherigen Version.. mit deinem Break

Bilder sagen mehr als worte.

Beim ersten prüfen durchlauf ich die Liste und wenn der erste Eintrag gefunden wurde schaltest du auf true und springst raus
aus der Funktion es wird also niemals auf die anderen Einträge hin in meiner Liste geprüft.

Deshalb wird false niemals eintreten.
Was ist dann mit der ID 2260 und der 4932 ? die werden in deinem Fall niemals geprüft.

Deine neue Version werde ich mal testen Danke.

EDIT:
vProcList[k].ID hat nur lese Eigenschaft.
deshalb der Umweg über Find

gruss

Fritzew 4. Jun 2018 13:30

AW: Listen vergleichen
 
Ok dann fassen wir zusammen, Du willst überprüfen ob einer der einträge in vProzessID in vProcList ist?
Dann lass das break einfach weg.

EWeiss 4. Jun 2018 13:36

AW: Listen vergleichen
 
Zitat:

Zitat von Fritzew (Beitrag 1403827)
Ok dann fassen wir zusammen, Du willst überprüfen ob einer der einträge in vProzessID in vProcList ist?
Dann lass das break einfach weg.

Wie ich schon sagte es tritt niemals der False Status ein glaube es mir ich habe es debuggt und sehe es auch weil mein Control niemals entladen wird.

Es sei denn ich mache es so.. aber dann ist der False Status falsch weil er immer auf False gesetzt wird wenn nichts gefunden.

Delphi-Quellcode:
  for K := 0 to (vProcList.Count - 1) do
  begin
    if vProzessID.Find(vProcList[K].ID, proc) then
      bFound := true
    else
    bFound := false
  end;
gruss

Fritzew 4. Jun 2018 13:39

AW: Listen vergleichen
 
Emil wir reden wieder mal aneinander vorbei...
Bei meiner Version wird das bfound nur true wenn etwas gefunden wurde. bfound wird ja vor der Schleife auf false gesetzt.
Ich versteh echt nicht was Du eigentlich erreichen willst.

EWeiss 4. Jun 2018 13:47

AW: Listen vergleichen
 
Zitat:

Zitat von Fritzew (Beitrag 1403829)
Emil wir reden wieder mal aneinander vorbei...
Bei meiner Version wird das bfound nur true wenn etwas gefunden wurde. bfound wird ja vor der Schleife auf false gesetzt.
Ich versteh echt nicht was Du eigentlich erreichen willst.

Hmmm also ich versuche es mal anders.

Vier einträge 0, 1, 2, 3
50 Einträge in der Prozessliste.

Wenn du alle durchgehst und diese ID's gefunden hast wird bfound auf true gesetzt.
Jetzt beende ich eine Anwendung habe aber immer noch meine ID's dann wird neu geprüft.

Du prüfst 0, 1, 2, 3
0,1,2 wird gefunden also ist bfound = true.

Nun was ist mit dem vierten! ja er ist false weil nicht gefunden.
Aber nirgends wird dann der Status bfound in dem Fall auf false gesetzt du verstehst was ich meine ?

Also ist bfound immer true und wird niemals false.

Ich prüfe danach auf
Delphi-Quellcode:
  if not bFound then
   begin
da es nie eintritt kann ich mein Control nicht entladen.

gruss

Fritzew 4. Jun 2018 13:57

AW: Listen vergleichen
 
Sowas
Delphi-Quellcode:
procedure TForm11.DoProcessloop;
var
   loop, indexInList: integer;
begin
   for i := vProzessID.Count - 1 downto 0 do
      begin
         indexInList := vProcList.IndexOf(vProzessID[loop].ID);

         if indexInList >= 0 then
            begin
            // Wir haben den Procces gefunden
            // Mach was damit

            end
         else
            begin
         // Der Process ist nicht mehr in der Processlist
         // Mach was
         // zb Löschen
        // vProzessID.delete(loop);
            end;

      end;
end;

EWeiss 4. Jun 2018 14:06

AW: Listen vergleichen
 
Ja so geht's vielen Danke ;)

Delphi-Quellcode:
   for K := vProzessID.Count - 1 downto 0 do
   begin
     IntI := vProcList.IndexOf(vProzessID[K].ID);
     if IntI >= 0 then
       bFound := true
     else
     begin
       bFound := false;
       break; // damit es nicht wieder auf true springt hier raus.
     end;
   end;
gruss

Fritzew 4. Jun 2018 14:18

AW: Listen vergleichen
 
Dann fassen wir zusammen:
Es geht eigentlich darum herauszufinden ob vProzessID komplett in vProcList enthalten ist.
Wenn ja true sonst false.

Mit der richtigen Frage hättest Du auch gleich die richtige Antwort bekommen :-)

EWeiss 4. Jun 2018 14:21

AW: Listen vergleichen
 
Zitat:

Zitat von Fritzew (Beitrag 1403843)
Dann fassen wir zusammen:
Es geht eigentlich darum herauszufinden ob vProzessID komplett in vProcList enthalten ist.
Wenn ja true sonst false.

Mit der richtigen Frage hättest Du auch gleich die richtige Antwort bekommen :-)

Wie du sagst ;)
Beide Listen vergleichen :)
Danke auch an @TiGü

gruss

KodeZwerg 4. Jun 2018 17:11

AW: Listen vergleichen
 
Ist bestimmt offtopic, ich nutze eine ListView für so etwas, verteilt über sub-items kann man sich vieles Speichern und easy wiederfinden da alles über den gleichen Index erreichbar ist, ob Visuell dargestellt oder nur Intern, ich mag die in beiden Fällen.

EWeiss 4. Jun 2018 17:52

AW: Listen vergleichen
 
Was soll ich mit einem ListView? Wenn ich genau für meinen Fall die richtige Klasse habe.
Zudem war das Thema schon erledigt.

Man muss doch nicht in jeden Thema und zu allen Fragen eine Antwort geben.
Hmm... :roll:

gruss

jaenicke 4. Jun 2018 18:16

AW: Listen vergleichen
 
Zitat:

Zitat von KodeZwerg (Beitrag 1403859)
ob Visuell dargestellt oder nur Intern, ich mag die in beiden Fällen.

Das ist aber sehr schlechter Programmierstil. Normalerweise speichert man Daten gar nicht in visuellen Elementen, auch wenn diese sichtbar sind, sondern nutzt diese nur zur Anzeige und ggf. Änderung einer dahinterliegenden Datenmenge. Aber solche visuellen Komponenten dann noch unsichtbar als Datenspeicher zu verwenden...

Wenn du so etwas machst, obwohl es sehr viel einfachere, schnellere und sauberere Möglichkeiten gibt, bitte. Aber bitte gib doch so etwas nicht auch noch anderen als Tipp... :shock:

EWeiss 4. Jun 2018 19:40

AW: Listen vergleichen
 
Zitat:

Das ist aber sehr schlechter Programmierstil.
Das kannst du so pauschal nicht sagen.
Wenn du mit der VCL arbeitest mag es bessere und effektivere Möglichkeiten geben wie TStringList und Konsorten.

Aber es ist durchaus legitim seine Daten in eine ListBox zu speichern ohne das diese sichtbar sein muss.
Das ist allemal besser als im Code mit 100 von Arrays rum zu sortieren.

Alle meine Propertys meiner Library werden in eine Listbox gespeichert um sie beim beenden der Anwendung freigeben zu können.
Da ist nichts verwerfliches dran und mit Sicherheit kein schlechter Programmierstil.

gruss

Zacherl 4. Jun 2018 19:48

AW: Listen vergleichen
 
Zitat:

Zitat von EWeiss (Beitrag 1403871)
Alle meine Propertys meiner Library werden in eine Listbox gespeichert um sie beim beenden der Anwendung freigeben zu können.
Da ist nichts verwerfliches dran und mit Sicherheit kein schlechter Programmierstil.

Was heißt "schlecht"? Es ist einfach sehr unüblich und widerspricht einigen elementaren Konzepten. Von Performance-Nachteilen bzw. sonstigen Overhead (z.B. Threading Problematik) mal gar nicht erst zu sprechen. Aber wie immer führen auch hier viele Wege nach Rom und solange du glücklich bist mit deiner Lösung und niemand anderes an deinem Code arbeiten muss, ist das schon okay. Trotzdem bin auch ich der Meinung, dass man ein solches Vorgehen auf gar keinen Fall allgemein in einem Forum (öffentlich einsehbar auch für Anfänger) empfehlen sollte.

KodeZwerg 4. Jun 2018 19:49

AW: Listen vergleichen
 
Ich setze meine LV dann falsch ein. Unsichtbar ist meine LV Caption, da steht das Prozess-Handle drinn, sichbar ist Sub-Item, da steht der Titel drinnen.
Ich mag beides zusammen haben und habe so immer das exakte Handle zum Eintrag ohne weitere Probleme oder mit anderen StringLists oder Arrays oder oder oder. Wenn dies schlechter Stil ist dann will ich nichts gesagt haben. Kann ja jeder dutzende anderer Listen intern füllen und verwalten, für das simple was ich mache, da finde ich so eine Funktion Klasse um sich eben nicht für jeden Eintrag dutzende Zweitlisten zu erstellen und abzuarbeiten. Ich pers. sehe daran nichts verwerfliches da eine LV sich alleine entleert kann es auch Vorteilhaft sein.

EWeiss 4. Jun 2018 19:55

AW: Listen vergleichen
 
Was hat eine TStringList in einer NonVCL Anwendung zu suchen?
Ehrlich jetzt.

Und welche Möglichkeiten bleiben dann noch?
Richtig so etwas wie eine ListBox gleichzusetzen mit TStringList NUR und das ist es ich brauche die unit Classes nicht einzubinden.
Das sind die kleinen Feinheiten und um vom Overhead zu sprechen zeig mir einen wenn ich meine liste nur als Zwischenspeicher verwende.
Zitat:

Es ist einfach sehr unüblich und widerspricht einigen elementaren Konzepten
Ach dann sind alle C++ Programmierer mit denen ich zu tun habe Dumme Leute.
Und ja es machen viele von denen weil am einfachsten, sinnvollsten und bequemsten.
Aber das sind Leute die noch in der Lage sind Anwendungen in 45K zu schreiben wo du vielleicht 2MB und up benötigst.

EDIT:
Ohne den neumodischen schnick, schnack den niemand braucht um eine funktionstüchtige Anwendung zu schreiben.
Alte Schule halt.

gruss

jaenicke 4. Jun 2018 20:56

AW: Listen vergleichen
 
Zitat:

Zitat von EWeiss (Beitrag 1403874)
Richtig so etwas wie eine ListBox gleichzusetzen mit TStringList NUR und das ist es ich brauche die unit Classes nicht einzubinden.

Eine TListBox benötigt selbst die Unit Classes, insofern bindest du mit einer TListBox implizit nicht nur die Unit Classes, sondern noch jede Menge anderer Units ein...

Eine TStringList ist dagegen ein reiner schlanker Datenspeicher.

Zacherl 4. Jun 2018 20:58

AW: Listen vergleichen
 
Zitat:

Zitat von jaenicke (Beitrag 1403879)
Zitat:

Zitat von EWeiss (Beitrag 1403874)
Richtig so etwas wie eine ListBox gleichzusetzen mit TStringList NUR und das ist es ich brauche die unit Classes nicht einzubinden.

Eine TListBox benötigt selbst die Unit Classes

Emil bezieht sich denke ich auf ein per Windows-API erzeugtes ListBox Control.

Zitat:

Zitat von EWeiss (Beitrag 1403874)
Was hat eine TStringList in einer NonVCL Anwendung zu suchen? [...] Und welche Möglichkeiten bleiben dann noch?

Sehe ich keinen Widerspruch. Du schreibst allerdings ebenfalls NonRTL. In dem Falle gibt es dennoch andere Möglichkeiten - wie z.B. dynamische Arrays.

Zitat:

Zitat von EWeiss (Beitrag 1403874)
Das sind die kleinen Feinheiten und um vom Overhead zu sprechen zeig mir einen wenn ich meine liste nur als Zwischenspeicher verwende.

Kannst du ja mal testen, wie performant deine ListBox im Vergleich zu einer
Delphi-Quellcode:
TStringList
ist. Bin mir recht sicher, dass sich da schon deutliche Unterschiede zeigen.

Zitat:

Zitat von EWeiss (Beitrag 1403874)
Zitat:

Es ist einfach sehr unüblich und widerspricht einigen elementaren Konzepten
Ach dann sind alle C++ Programmierer mit denen ich zu tun habe Dumme Leute.
Und ja es machen viele von denen weil am einfachsten, sinnvollsten und bequemsten.
Aber das sind Leute die noch in der Lage sind Anwendungen in 45K zu schreiben wo du vielleicht 2MB und up benötigst.

Ich programmiere seit Jahren selbst primär mit C/C++. Dummheit will ich deinen Leuten sicherlich nicht unterstellen, aber unter C++ gibt es
Delphi-Quellcode:
std::vector
,
Delphi-Quellcode:
std::list
und etliche weitere extrem einfach zu verwendende (sogar generische) Container-Typen, die in der Standard-Lib enthalten sind. Auf diese zu verzichten und stattdessen eine Windows ListView zu missbrauchen, macht ehrlich gesagt wenig Sinn.

Wie gesagt, jeder soll machen, wie er will, aber unüblich ist dieses Verfahren allemale :)

EWeiss 4. Jun 2018 21:00

AW: Listen vergleichen
 
Zitat:

Zitat von jaenicke (Beitrag 1403879)
Zitat:

Zitat von EWeiss (Beitrag 1403874)
Richtig so etwas wie eine ListBox gleichzusetzen mit TStringList NUR und das ist es ich brauche die unit Classes nicht einzubinden.

Eine TListBox benötigt selbst die Unit Classes, insofern bindest du mit einer TListBox implizit nicht nur die Unit Classes, sondern noch jede Menge anderer Units ein...

Eine TStringList ist dagegen ein reiner schlanker Datenspeicher.

Wer spricht hier von einer TListBox also liebe Leute!
Ihr immer mit euren "T" zu beginn. ;)

Meine ListBox, nix mit T und nix mit Classes.
Delphi-Quellcode:
    hLISTFNAME := CreateWindowEx(0, 'LISTBOX', nil, UseStyle, 0, 0, 0, 0, ParentHandle,
      ID_LISTFNAME, skInstance, nil);
Die frage ist doch immer der Anwendungsbereich.
Nicht was schön beliebt oder angeblich schlechter Programmierstil ist.

Zitat:

Kannst du ja mal testen, wie performant deine ListBox im Vergleich zu einer TStringList ist. Bin mir recht sicher, dass sich da schon deutliche Unterschiede zeigen.
Kein Widerspruch und ja mit VCL verwende ich sie auch und keine TListBox an dieser stelle.
Das wäre ein Nonsens.

Zitat:

Ich programmiere seit Jahren selbst primär mit C/C++.
Und ich weis das du sehr gut bist.
Aber habe Verständnis dafür das es Menschen gibt die halt sowenig wie möglich Lib's verlinken wollen wenn es nicht nötig ist.
Denn diese bauschen den Code unnötig auf.

Ja ich weis! Ist doch egal ob das Compilat 5 oder mehr an MB benötigt. Nun aber einigen Leuten eben nicht.
Zitat:

In dem Falle gibt es dennoch andere Möglichkeiten - wie z.B. dynamische Arrays.
Richtig. Aber der Aufwand den ich dann betreiben müsste um diese Arrays zu verwalten steht in keinem Verhältnis zu einer simplen ListBox.

Aber unter VCL TListView, TListBox als Datenspeicher zu missbrauchen ja da gebe ich euch recht ist ein Nonsens.

gruss

Zacherl 4. Jun 2018 21:23

AW: Listen vergleichen
 
Zitat:

Zitat von EWeiss (Beitrag 1403881)
Aber habe Verständnis dafür das es Menschen gibt die halt sowenig wie möglich Lib's verlinken wollen wenn es nicht nötig ist.
Denn diese bauschen den Code unnötig auf.

Nein, wie gesagt, ist auch gar keine Kritik :) Gibt aber auch im Standard - also ohne weitere Libs - definitiv noch andere Optionen, was aber mal dahingestellt sei, da ich es wie gesagt auch vollkommen in Ordnung finde, wenn jeder seinen eigenen, für sich am besten passenden Weg wählt.

Finde es aber auch wichtig darauf hinzuweisen, dass es sagen wir mal weiter verbreitete, etabliertere Wege bzw. Konventionen gibt, die zu verwenden die Arbeit in Teams deutlich erleichtern. Deshalb wollte ich die Aussage von KodeZwerg an dieser Stelle nicht unkommentiert stehenlassen.

EWeiss 4. Jun 2018 21:28

AW: Listen vergleichen
 
Zitat:

Zitat von Zacherl (Beitrag 1403885)
Zitat:

Zitat von EWeiss (Beitrag 1403881)
Aber habe Verständnis dafür das es Menschen gibt die halt sowenig wie möglich Lib's verlinken wollen wenn es nicht nötig ist.
Denn diese bauschen den Code unnötig auf.

Finde es aber auch wichtig darauf hinzuweisen, dass es sagen wir mal weiter verbreitete, etabliertere Wege bzw. Konventionen gibt, die zu verwenden die Arbeit in Teams deutlich erleichtern. Deshalb wollte ich die Aussage von KodeZwerg an dieser Stelle nicht unkommentiert stehenlassen.

Dito..
Deshalb habe ich auch diesen Satz noch hinzugefügt.
Zitat:

Aber unter VCL TListView, TListBox als Datenspeicher zu missbrauchen ja da gebe ich euch recht ist ein Nonsens.
Wie gesagt es kommt auf den Anwendungsbereich an. ;)

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:02 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