Klasse aus einer Datei laden ?
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Klasse aus einer Datei laden ?
Hallo,
für mein paint2 Projekt würde ich gerne Die Komponenten leiste in einer Datei auslgaern mit folgenden aufbau:
[Standart]
33=Trechteck
das Lesen der Datei ist nicht mein Problem.
Wenn ich das jetzt so mache und ich klicke auf meine Paintbox(nagut in wirklichkeit ist es ein Panel auf was ich Zeichne *G*) .
erstelle ich je nach ID eine komponente:
if tag = 1 then TRechteck.Create
if Tag = 2 then TLine.Create
und so weiter
mein Ziel ist ist es den wert zu nehmen der in der INI Datei steht... ich hoffe ihr versteht wie ich das meine .
Mein Ziel ist es nur noch diese eine Datei zu ändern und schon soll alles laufen...
für mein paint2 Projekt würde ich gerne Die Komponenten leiste in einer Datei auslgaern mit folgenden aufbau:
[Standart]
33=Trechteck
das Lesen der Datei ist nicht mein Problem.
Wenn ich das jetzt so mache und ich klicke auf meine Paintbox(nagut in wirklichkeit ist es ein Panel auf was ich Zeichne *G*) .
erstelle ich je nach ID eine komponente:
if tag = 1 then TRechteck.Create
if Tag = 2 then TLine.Create
und so weiter
mein Ziel ist ist es den wert zu nehmen der in der INI Datei steht... ich hoffe ihr versteht wie ich das meine .
Mein Ziel ist es nur noch diese eine Datei zu ändern und schon soll alles laufen...
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Zwei Stringlisten, eine mit Ini.ReadSection(...) und eine mit IniReadSectionValues(...) einlesen.
Und dann kannst du ja deine Schalftächen in ner for-Schleife erstellen, und ihnen über den Index der beiden Stringlisten gleich den Tag und die Bezeichnung zuordnen.
Aber wahrscheinlich lieg ich mit meiner Interpretation völlig daneben
Und dann kannst du ja deine Schalftächen in ner for-Schleife erstellen, und ihnen über den Index der beiden Stringlisten gleich den Tag und die Bezeichnung zuordnen.
Aber wahrscheinlich lieg ich mit meiner Interpretation völlig daneben

-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
ja. ich schriebt ja schon das das einlesen der INI Datei nicht das Problem ist !
Das bekomme ich locker hin(den ersten teil) nur der zweite teil...
mir geht es darum:
beim klicken auf das Zeichen Panel prüfe ich ja ob welche wert eine variabel hat !
Diese variable wird gesetzt wenn ich ein Speedbutton anklicke.
Variable:=(Sender as TSpeedbutton).tag
und jetzt muss ich jedesmal prüfen beim hinzufügen:
if Variable = 0 then Erstelle ein Rechteck
if Variable = 1 then Erstelle eine Line
und soweiter !
Das einlesen der Datei bekomme ich hin !
nur der zweite teil bekomme ich nicht hin !
ich hoffe jetzt verstehst du was ich meine !
Das bekomme ich locker hin(den ersten teil) nur der zweite teil...
mir geht es darum:
beim klicken auf das Zeichen Panel prüfe ich ja ob welche wert eine variabel hat !
Diese variable wird gesetzt wenn ich ein Speedbutton anklicke.
Variable:=(Sender as TSpeedbutton).tag
und jetzt muss ich jedesmal prüfen beim hinzufügen:
if Variable = 0 then Erstelle ein Rechteck
if Variable = 1 then Erstelle eine Line
und soweiter !
Das einlesen der Datei bekomme ich hin !
nur der zweite teil bekomme ich nicht hin !
ich hoffe jetzt verstehst du was ich meine !
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg
Neue Methode ReadFromFile einführen.
Code: Alles auswählen
procedure TMyObject.ReadFromFile;
var
f: file;
paramname,
param: string;
c: char;
begin
// file öffnen
paramname:= '';
param:= '';
while not(eof(f)) do begin
read(f, c);
if not(c in ['=',' ',';']) then paramname:= paramname + c
else begin
case c of
'=':{blabla};
' ':{blabla};
';':{blabla};
end; // of case
end;
end;
end;
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.
(Ringelnatz)
(Ringelnatz)
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg
Ich komm auch nicht ganz mit. Oder meinst du etwa sowas in dieser Art:
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
var AClass:TControlClass;
AControl:TControl;
begin
AClass:=TControlClass(GetClass('TButton'));
if AClass<>nil then
begin
AControl:=AClass.Create(Self);
AControl.Name:='ButtonX';
AControl.Caption:='OK';
AControl.Parent:=Self;
end;
end;
initialization
{$I unit1.lrs}
RegisterClasses([TButton, TMemo]);
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg
@theo
Geht in meine Richtung. ReadFromFile könnte auch als Utility gebaut werde:
Geht in meine Richtung. ReadFromFile könnte auch als Utility gebaut werde:
Code: Alles auswählen
function GetObjectFromFile(AClassName, AFileName: string; AObject: TObject): boolean;
begin
Result:= (AFileName <> '') and FileExists(AFileName);
if Result then begin
end;
end;
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.
(Ringelnatz)
(Ringelnatz)
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
ja theo sowas meinte ich !
Ich kann das nicht verstehen das ihr das nicht versteht !
also.
ich möchte gerne in meine Paint2 Projekt eine funktion einbauen mit der ich die PageControl aus einer Dateiladen kann also die komponenten leiste !
Um dies zu tuen muss ich die Klassen namen aus einer Datei lesen also TRECHTECK, TVIERECK, TKREIS und soweiter !
weil ich möchte nur noch dise eine Datei verändern weil beim hinzufügen wird dann geprüft was gewünscht wird ! und das möchte ich vereinfachen !
Ich kann das nicht verstehen das ihr das nicht versteht !
also.
ich möchte gerne in meine Paint2 Projekt eine funktion einbauen mit der ich die PageControl aus einer Dateiladen kann also die komponenten leiste !
Um dies zu tuen muss ich die Klassen namen aus einer Datei lesen also TRECHTECK, TVIERECK, TKREIS und soweiter !
weil ich möchte nur noch dise eine Datei verändern weil beim hinzufügen wird dann geprüft was gewünscht wird ! und das möchte ich vereinfachen !
MFG
Michael Springwald
Michael Springwald