Autor Beitrag
kabizolis
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 86



BeitragVerfasst: Fr 01.04.05 13:10 
ich habe ein problem...

ich lasse in eine listbox befehle generieren...
diese will ich dann ausführen wie kann ich das tun?

ein beispiel dazu:

in der listbox stehen jetzt da befehle wie zum beispiel

k3.caption := 'hallo';
form3.width := 220;
...

wie kann ich diese befehle ausführen lassen?


Moderiert von user profile iconGausi: Topic aus Dateizugriff verschoben am Fr 01.04.2005 um 14:05
maveric
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 54


D7
BeitragVerfasst: Fr 01.04.05 13:42 
Ist das jetzt auch ein Aprilscherz ????

Was hast du denn davon wenn du deine Anweisungen in die listbox reinschreibst??? Probiers mal mit einem button !?!? eventuell procedure ,..... !?!?
kabizolis Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 86



BeitragVerfasst: Fr 01.04.05 13:51 
nein, das ist kein aprilscherz!

das hat schon einen sinn... meine kentnisse in delphi halten sich in grenzen.... es gäbe sicher eine bessere lösung.

ich habe buttons, die ich folgendermassen benannt habe:
b1, b2, b3, b4,....

dass ich nicht für jeden button einen eigenen roman schreiben muss, habe ich einen timer gesetzt, der je nach dem welchen knopf ich drücke eine ausgabe in eine listbox zwischenspeichert....

nun will ich diesen erzeugten text ausführen lassen und zum beispiel.
abhängig vom gedrückten knopf... soll unter anderem eine form die farbe wechseln.

die bezeichnungen der form
f1, f2, f3, f4,...

ich hoffe, du weist wie ich meine...

der erzeugte text soll nun ausgeführt werden.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 01.04.05 13:56 
Eigenschaften kannst du zur Laufzeit setzen. Das ist eine einfache zuweisung. Code ausführen wird wohl nur mit einer Script-Komponente möglcih sein, es sei denn du willst das selber schreiben.
maveric
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 54


D7
BeitragVerfasst: Fr 01.04.05 14:03 
user profile iconkabizolis hat folgendes geschrieben:

nun will ich diesen erzeugten text ausführen lassen .
.


Soll das ne Anweisung sein ??

Also, du fügt in listbox1 (listbox1.items.add ({dein Inhalt});) etwas hinzu. Richtig?

Und diesen Text z.B. k3.caption:= .... möchtest du jetzt ausgeführt haben ?

Dann schreib doch im Timer den Befehl mitrein.

Button-->timer---> 1. Anweisung ausführen (k3.caption:=...)
2. listbox1.items.add ({Anweisung als Text ??});

_________________
s´Leben ist kein Ponyhof...
kabizolis Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 86



BeitragVerfasst: Fr 01.04.05 14:16 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
 listbox2.Items[0] := 'b' + inttostr(variable) + '.Caption := Anzeige.Text;';
 listbox2.Items[1] := 'listbox1.Items['+ inttostr(5*variable-4) +'] := Anzeige.Text;';
 //Farbe
 listbox2.Items[2] := 'h'+ inttostr(variable) +'.Brush.Color := Farbe.Selected;';
 listbox2.Items[3] := 'listbox1.Items['+ inttostr(5*variable-3) +'] := colortostring(Farbe.Selected);';
 //Fequenz
 listbox2.Items[4] := 'listbox1.Items['+ inttostr(5*variable-2) +'] := Empfang.Text;';
 listbox2.Items[5] := 'Empfang.Text := '+ chr(39) + chr(39) +';';
 listbox2.Items[6] := 'Knopf.Enabled := false;';

so sieht der quelltext aus....

und so das ergebnis...
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
//...für knopf 1...
b1.caption := Anzeige.Text;
listbox1.Items[1] := Anzeige.Text;
h1.Brush.Color := Farbe.Selected;
listbox1.Items[2] := colortostring(Farbe.Selected);
listbox1.Items[3] := Empfang.Text;
Empfang.Text := '';
Knopf.Enabled := false;

//...für knopf 2...

b2.caption := Anzeige.Text;
listbox1.Items[6] := Anzeige.Text;
h2.Brush.Color := Farbe.Selected;
listbox1.Items[7] := colortostring(Farbe.Selected);
listbox1.Items[8] := Empfang.Text;
Empfang.Text := '';
Knopf.Enabled := false;

...u.s.w

das will ich dann ausführen lassen

Moderiert von user profile iconGausi: Code- durch Delphi-Tags ersetzt und weitere hinzugefügt.
kabizolis Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 86



BeitragVerfasst: Fr 01.04.05 15:40 
oder vielleicht einfacher....

wie kann ich das ausführen?
ausblenden Delphi-Quelltext
1:
'b' + inttostr(variable) + '.Caption := Anzeige.Text'					


wäre wirklich sehr dankbar für eine brauchbare antwort, ich muss bis nächste woche damit fertig sein.

Moderiert von user profile iconGausi: Code- durch Delphi-Tags ersetzt.
WeBsPaCe
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2322
Erhaltene Danke: 1

FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
BeitragVerfasst: Fr 01.04.05 15:48 
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Fr 01.04.05 15:50 
user profile iconkabizolis hat folgendes geschrieben:
oder vielleicht einfacher....

wie kann ich das ausführen?
ausblenden Delphi-Quelltext
1:
'b' + inttostr(variable) + '.Caption := Anzeige.Text'					


wäre wirklich sehr dankbar für eine brauchbare antwort, ich muss bis nächste woche damit fertig sein.

Moderiert von user profile iconGausi: Code- durch Delphi-Tags ersetzt.


Du kannst sowas nicht ausführen. Wie Luckie schon sagte, bräuchtest du dafür eine Scriptsprache. Delphi ist aber eine Compilersprache. Bevor du irgendwas ausführen kansnt muss es kompiliert werden, und das geht logischerweise nur mit compiler.

Die einzige Möglichkeit die dir bleibt ist die Eingabe anzuschauen und dann dementsprechend zu handeln, mit If-abfragen o.ä.

also z.B.


ausblenden Delphi-Quelltext
1:
2:
3:
begin
 if listbox1.items[i] = 'form1.width := 500' then form1.width := 500;
end;


Anders gehts nicht. Aber es gibt vereinfachungen. Siehe Suche in: Delphi-Forum, Delphi-Library FINDCOMPONENT.
Hack Gott
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 409

Windows Vista
Delphi 2005 Personal, Delphi 7
BeitragVerfasst: Fr 01.04.05 15:52 
Titel: Nochmal?!
Also soll jetzt Beispielsweise in deiner Datei die du dann in eine Listbox lädst
timer1.enabled := true stehen. Das Programm wird gestartet, die Datei in der das steht wird in eine Listbox geladen, und der Befehl wird ausgeführt, egal was drinne steht (natürlich gültiger delphi code)??

_________________
"Je mehr Käse, desto mehr Löcher; Je mehr Löcher, desto weniger Käse. Daraus folgt: Je mehr Käse desto weniger Käse!"
kabizolis Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 86



BeitragVerfasst: Fr 01.04.05 16:02 
erstmal dankefür die raschen und kompetenten antworten!

jetzt hab' ich mich aber wohl schlecht ausgedrückt....
mein problem, die alte version lassen wir sein, ist folgendes;
ich will diesen code einfach ausführen, diesmal ohne listbox, also ganz normal:
ausblenden Delphi-Quelltext
1:
'b' + inttostr(variable) + '.Caption := Anzeige.Text'					

also b1, b2, b3, b4,.... sind buttons. ich will nicht jedesmal den gesamten text für jeden button schreiben wollen.

eigentlich würde es heissen müssen:
b1.Caption := Anzeige.Text;
oder
ausblenden Delphi-Quelltext
1:
b19.Caption := Anzeige.Text;					

ist das möglich?
Moderiert von user profile iconGausi: Code- durch Delphi-Tags ersetzt, ein paar Absätze entfernt
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Fr 01.04.05 16:05 
Ja, das ist möglich. Der Tip wurde bereits gegeben Suche in: Delphi-Forum, Delphi-Library FINDCOMPONENT.

_________________
We are, we were and will not be.