Einzelnen Beitrag anzeigen

Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#1

Komponente entwickelt aber nicht sichtbar..?!

  Alt 12. Mai 2007, 19:41
Hallo,

also habe jetzt mal Version 0.1 Beta meine Kompo soweit fertig... doch jetzt der Schock... Wenn ich sie auf Form ziehen will wird sie nicht angezeigt... außerdem heißt es nach dem 2. Versuch, dass der Arbeitsspeicher voll ist....???

Delphi-Quellcode:
unit Stringverwaltung;

interface

uses
  SysUtils, Classes, Dialogs;

type
  TStringVarverwaltung = class(TComponent)
  private
    { Private-Deklarationen }
    cFehler:Boolean;
    type TVariable = record
    Name:String;
    Programm:String;
    Inhalt:String;
    Free:Boolean;
    end;
    var Variablen: array [1..9999999] of TVariable;
    function GetFree():integer;
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
    constructor Create (AOwner : TComponent) ; override ;
  published
    { Published-Deklarationen }
    property Fehlermeldungen : Boolean read CFehler write CFehler;
    public Procedure NewVar(Name,Programm,Inhalt:String);
    public Procedure DelVar(Name,Programm:String);
    public Procedure DelVarbyProg(Programm:String);
    public Function GetInhalt(Name,Programm:String):String;
  end;



procedure Register;


implementation


procedure Register;
begin
  RegisterComponents('BlueRain', [TStringVarverwaltung]);
end;

constructor TStringVarverwaltung.Create(AOwner : TComponent);
var i:integer;
begin
for i := 1 to 9999999 do begin
Variablen[i].Free:=True;
end;

end;

Function TStringVarverwaltung.GetInhalt(Name,Programm:String):String;
var i:integer;
begin
for i := 1 to 9999999 do begin
  if (Variablen[i].Name=Name) and (Variablen[i].Programm=Programm) then begin
  Result:=Variablen[i].Inhalt;
  end;
end;

end;


function TStringVarverwaltung.GetFree():integer;
var i, ergebnis:integer;
begin
Ergebnis:=-1;
for I := 1 to 9999999 do begin
  if Variablen[i].Free=true then begin
  ergebnis:=i;
  break;
  end;

end;
if ergebnis=-1 then begin
 if cFehler=true then Messagedlg('Speicherüberlauf bei 9999999+1 -TStringVarVerwaltung-',mterror,[mbok],0);
end;
 Result:=Ergebnis;
end;


Procedure TStringVarVerwaltung.DelVarbyProg(Programm:String);
var i:integer;
begin
for i := 1 to 9999999 do begin
  if Variablen[i].Programm=Programm then begin
  Variablen[i].Name:='';
  Variablen[i].Programm:='';
  Variablen[i].Inhalt:='';
  Variablen[i].Free:=true;
  end;
end;

end;


Procedure TStringVarVerwaltung.DelVar(Name,Programm:String);
var i:integer;
begin
for i := 1 to 9999999 do begin
  if (Variablen[i].Name=Name) and (Variablen[i].Programm=Programm) then begin
  Variablen[i].Name:='';
  Variablen[i].Programm:='';
  Variablen[i].Inhalt:='';
  Variablen[i].Free:=true;
  end;
end;

end;



Procedure TStringVarverwaltung.NewVar(Name,Programm,Inhalt:String);
var index:integer;
begin
index:=Getfree();
Variablen[index].Name:=Name;
Variablen[index].Programm:=Programm;
Variablen[index].Inhalt:=Inhalt;
Variablen[index].Free:=False;

end;


end.
Bitte schaut es Euch mal durch .... ich weiß dass das Ding nicht perfekt ist aber ich will jetzt mal für den Anfang nur dass es funct...

Danke!
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat