Einzelnen Beitrag anzeigen

Benutzerbild von Alucard
Alucard

Registriert seit: 9. Jan 2015
4 Beiträge
 
#9

AW: Unterschiedliche Darstellung mit und ohne laufendem Delphi

  Alt 25. Jan 2025, 10:50
Erstmal sorry für die arg verspätete Antwort und vielen Dank für euren Input. Leider habe ich hier im Forum ständig Login- und Passwort-Probleme. Eigentlich hatte ich die gleich folgende Antwort direkt nach Uwes Post abgesetzt, aber die hatte es irgendwie zerhagelt und ich hatte seitdem keine Zeit mehr.


Alright, das ist jetzt peinlich

Kurzfassung: Der Fehler lag gänzlich woanders und - was wichtiger ist - in meiner Verantwortung


Die Listen werden aus zwei Text-Dateien gelesen (je eine für die obere und die untere Box) und im Falle der unteren noch nach einigen Kriterien geprüft. Bei bestandener Prüfung wird das Element angezeigt, sonst halt nicht. Da ich seit der Umstellung ausschließlich Probleme im Zusammenhang mit High-DPI hatte, bin ich blöderweise betriebsblind geworden und habe übersehen, dass in dieser Prüfung der Name des Rechners auf Übereinstimmung mit einer (hart-codierten) Liste untersucht wird - ggf. schaut diese Prüfung auch, ob Delphi läuft

Delphi-Quellcode:
procedure LadenWebTools;
var User : string;
    Delphi : boolean;
    Data : TStringList;
   i : integer;
const EntryLength : integer = 6;
begin
User := GetEnvironmentVariable('Computername');
Delphi := FindWindow('TAppBuilder', nil) <> 0;

Data := TStringList.Create;
Data.LoadFromFile('WebTools.txt');

i := 0;
SetLength(WebTools, 0);

While i <= Data.Count - 1 do
      begin
      SetLength(WebTools, Length(WebTools) + 1);

      With WebTools[High(WebTools)] do
           begin
           Name := Data[i];
           { mehr Daten... }
           Tag := Data[i + 4];
           { mehr Daten... }

           Inc(i, EntryLength);

           { Eintrag wieder löschen, wenn
              -- kein Icon gefunden
              -- keine User Übereinstimmung
              -- bei laufendem Delphi User ignorieren }

           If (FileExists('WebTools\' + Name + '.png') = false) Or
              ( (Tag = 'Home') And (Delphi = false) And (User <> 'User_Home_1')
                                                    And (User <> 'User_Home_2')
                                                    And (User <> 'User_Home_n') ) Or
              ( (Tag = 'Work') And (Delphi = false) And (User <> 'User_Work'  ) )
              then SetLength(WebTools, Length(WebTools) - 1);
           end;
      end;

Data.Free

For i := 0 to High(WebTools) do
    begin
    WebTools[i].Panel := TPanel.Create(Self);
    WebTools[i].Image := TImage.Create(Self);
    WebTools[i].Text := TPanel.Create(Self);
    WebTools[i].BtnOpen := TButton.Create(Self);
    WebTools[i].BtnSearch := TButton.Create(Self);

    { Design... }
    end;
end;

Geändert von TBx (25. Jan 2025 um 12:50 Uhr) Grund: Code-Tags durch Delphi-Tags ersetzt
  Mit Zitat antworten Zitat