Hallo;
ich habe hier ein problem, das bereits in diesem Forum erwähnt wurde, da ging es aber darum, einer Komponente während der Laufzeit einen Namen mit Punkt drinnen zu geben, was sich zwar kompilieren ließ, aber dann abstürzte.
Bei meinem Programm hole ich zuerst den Benutzernamen:
Delphi-Quellcode:
function username: string;
var res: string;
begin
if GetEnvironmentVariable(pchar('username'), buf, SizeOf(buf)) <> 0 then
res := buf
else
res := 'fehler';
result:=lowercase(res);
end;
und dann überprüfe ich, ob das Programm von jemandem gestartet wird, den ich kenne oder nicht.
Das Problem: die Benutzernamen auf dem Computer hier haben alle Punkte drinnen, z.B. max.mustermann!
Ausschnitt aus dem Programm:
Delphi-Quellcode:
// [...]
var name: string;
// [...]
name:=username; // Funktion username siehe oben
if (name<>'max.mustermann') and (name<>'donald.duck') and (name<>'mickey.maus') then showmessage('Hallo Fremder!') else showmessage('Hallo Freund!');
// [...]
Wenn ich das Programm als max.mustermann starte, dann kommt eine Fehlermeldung:
[quote=Mein Programm]
exception class : EComponentError
exception message : ''max.mustermann'' ist kein gültiger Komponentenname.[/delphi]
Wieso ist 'max.mustermann' nicht gültig? Ich vergebe doch keinen Namen an eine Komponente, sondern arbeite einfach mit einem String!
Wo ist da das Problem?
Tubos