| |
Anzeigen |
|
|
Social Bookmark Script |
|
|
|
 |
Schaltfächen einfügen ? |
nurix
Grünschnabel
Dabei seit: 18.02.2008
Beiträge: 9
 |
|
hallo leute,
ich soll ein taschenrechner in vdf erstellen, jedoch bekomme ich nicht einmal das design hin.
Ich erstelle ein normales Windwos Project, alles schön und gut, aber wieso kann ich keine buttons etc einfügen ?
In c# z.b. kann man ja auch einfach die buttons, labels. etc einfügen.
Jedesmal wenn ich was reinscheiben will bekomm ich ein Sperricon ??!
Danke im Vorraus
lg
|
|
18.02.2008 17:51 |
|
|
Raphael
Jungspund

Dabei seit: 23.09.2007
Beiträge: 17
Einsatzart von VDF: gewerblich Anwenderstatus: Programmierer Herkunft: CH Betriebssystem: Windows XP/2003/2008/7
 |
|
Du brauchst zuerst eine "View" oder etwas ähnliches wo du den Knopf reinziehen kannst.
Menu: File -> New -> View
Dann kannst du die View öffnen und darin kannst du Buttons, etc reinziehen.
__________________ Mein Blog: eSheep
Hauptprojekt: TransXpro - Übersetzungen
|
|
18.02.2008 20:34 |
|
|
Roman Köhler
Administrator
    

Dabei seit: 29.08.2007
Beiträge: 202
Einsatzart von VDF: gewerblich Anwenderstatus: VDF-Entwickler Herkunft: Mannheim Betriebssystem: Windows XP
 |
|
| RE: Schaltfächen einfügen ? |
 |
Hallo Nurix,
ich kann Dir für den Anfang nur empfehlen in der VDF-Hilfe unter Tutorials, Quick Start, Creating your first Windows Application nachzusehen. Hier ist alles, was für den schnellen Einblick in die VDF-Programmierung nötig ist, zu finden.
LG
Roman
|
|
19.02.2008 08:06 |
|
|
nurix
Grünschnabel
Dabei seit: 18.02.2008
Beiträge: 9
Themenstarter
 |
|
hi,
danke für eure Antworten, habe das Design schon fertig und Zahlen kann man auch schon eigeben und sind in er Form sichtbar.
Mein nächstes Problem ist folgende: wie lautet die korrekte Syntaxregel wenn ich z.b. + - * / rechnen will.
Also wenn ich auf Button + drücke soll er logischerweise addieren und bei "=" soll er es auch ausgeben
Leider funzt nicht, hab mit VDF noch nie was zu tun gehabt, aber durauch eine einfach gehaltene Sprache.
Habe keinerlei Plan wie ich die Rechenzeichen definieren soll
in meinem Javacode sieht es so aus
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
|
if(event.getActionCommand().equals("+"))
{
RZ = "+";
wert = Double.parseDouble(t1.getText());
t1.setText("");
}
|
|
Bloß das in VDF Sprache zu übersetzen ?!
Also wer weiterhelfen kann, darf gerne Posten
lg
|
|
19.02.2008 23:12 |
|
|
Roman Köhler
Administrator
    

Dabei seit: 29.08.2007
Beiträge: 202
Einsatzart von VDF: gewerblich Anwenderstatus: VDF-Entwickler Herkunft: Mannheim Betriebssystem: Windows XP
 |
|
Hallo Nurix,
nachdem in der Gruppe "VDF für Anfänger" nun nochmals ein Taschenrechnerproblem aufgeworfen wird, habe ich mich auch einmal damit befasst, wie ich an die Sache herangehen würde.
Klar, das Display wird ein Form, die Knöpfe des Taschenrechners werden Buttons.
Das Diesplay wird durch Druck auf die Buttons gefüllt, indem in der onClick-Prozedur des Buttons zuerst mit "get Value of oDisplay to ..." der aktuelle Wert ermittelt wird, dann mit der append-Funktion der String des entsprechenden Buttons angehängt wird und mit "Set value" wieder ins Display geschrieben wird. Beim Druck auf die = Taste wird der Wert des Displays mit get Value ermittelt und mit der eval-Funktion ausgewertert.
Soweit, so gut. Nachdem im anderen Thread probleme mit Nachkommastellen aufgetreten sind, habe ich das mal nachvollzogen. "1/2" ergibt nach der Berechnung einfach "0". "1,0/2,0" ergibt aber den richtigen Wert von "0,5". Und genau hier komme ich eigentlich auch nicht weiter. Man kann von keinem Nutzer eines Taschenrechners verlangen, dass er unsinnigerweise nicht vorhandene Nachkommastellen einkibt um VDF mitzuteilen, dass das Ergebmis kein Integer sondern eine Number ist.
Kommt hier jemand weiter?
LG
Roman
PS: Warum programmiert eigentlich alle Welt auf einmal Taschenrechner?
|
|
20.02.2008 08:36 |
|
|
Roman Köhler
Administrator
    

Dabei seit: 29.08.2007
Beiträge: 202
Einsatzart von VDF: gewerblich Anwenderstatus: VDF-Entwickler Herkunft: Mannheim Betriebssystem: Windows XP
 |
|
Hallo Nurix,
da dieser Tschenrechner ein Teil eines Einstellungstests ist, kann und werde ich natürlich nicht die komplette Lösung hier ins Forum stellen. Dumm gelaufen, nicht?
Aber Tipps kann ich Dir ja trotzdem geben.
Was mir zu Deiner onClick-Prozedur auffällt:
- Wo belegst Du in dieser Proz. die Variablen sWert nRZ sWert2?
- Die Eval-Funktion wertet den String aus und rechnet sofort. In diesem Fall wird die komplette Rechnung auf dem Display nicht mehr sichtbar sein, sondern immer nur das Ergebnis.
Rechnungen, in denen nur Integervariablen vorkommen, bekommen als Ergebnis auch einen Integer zugewiesen. Du musst also irgendwie eine Nummernvariable in Deine Rechnung reinbringen, dann klappts.
LG
Roman
|
|
20.02.2008 10:20 |
|
|
Roman Köhler
Administrator
    

Dabei seit: 29.08.2007
Beiträge: 202
Einsatzart von VDF: gewerblich Anwenderstatus: VDF-Entwickler Herkunft: Mannheim Betriebssystem: Windows XP
 |
|
Hallo Nurix,
es gibt in VDF auch globale Variablen. Es kommt lediglich auf den Ort der Deklaration an. Definierst Du die Variable in einem Objekt, ist sie automatisch global. Definierst Du sie innerhalb einer Prozedur, ist sie lokal. Du kannst globale Variablen auch mit dem Command "Global_Variable" definieren.
Global bedeutet in VDF aber auch wirklich "für das gesamte Programm". D.h. in keiner einzigen View, die im SRC-Code implementiert ist, darf diese Variable mehr vorkommen.
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
|
Object View1 is a dbView
// --> Global: In keiner View, SRC, PKG usw. darf diese Variable mehr vorkommen
number Summe
Object oDisplay is a Form
...
End_Object
Object oButton is a Button
procedure onClick
// Lokal: --> Dieser Variablenname kann in jedem Objekt benutzt werden // (Kapselung) und hält in jedem Objekt einen eigenen Wert
number Gesamtsumme
string Nachname Vorname Name_gesamt Display
// Belegung mit move
move "Köhler" to Nachname
move "Roman" to Vorname
move (Nachname +"," * Vorname) to Name_gesamt // "Köhler, Roman"
// Belegung mit calc
calc (1+2) to Gesamtsumme
// Belegung mit get
get Value of oDisplay to Display
...
|
|
Zusätzlich kann ich Dir nur noch die Online-Hilfe ans Herz legen. Unter "Understanding Visual Dataflex" / "Language Guide" / "Data Types, Variables, Constants" / - "Declaring Variables" oder "Expressions" findest Du hier nahezu alles, was Du brauchst.
LG
Roman
PS: Wie hast Du denn die Einrückungen im Code hinbekommen? (Leerzeichen und Tabs werden bei mir hartnäckig ignoriert)
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Roman Köhler: 20.02.2008 13:56.
|
|
20.02.2008 13:48 |
|
|
Roman Köhler
Administrator
    

Dabei seit: 29.08.2007
Beiträge: 202
Einsatzart von VDF: gewerblich Anwenderstatus: VDF-Entwickler Herkunft: Mannheim Betriebssystem: Windows XP
 |
|
Sag mal, Nurix, gibst du immer so schnell auf? Klar, das System ist neu und von der Sprache her anders als Java und C++. (Gott sei dank, muss ich sagen, denn was Du als logisch und einfach lesbar erachtest, sind für mich immer nur böhmische Dörfer, wenn ich mal ein C-Programm sehe.)
Bis wann musst Du denn das Programm fertig haben?
| Zitat: |
if gedrückt button "=" dann nimm display + wert
setze display auf wert
|
Das läuft in VDF ganz ähnlich. Du definierst das Objekt, in dem Fall den Button und baust den benötigten Code in die Prozedur onClick ein. Hier definierst Du die lokalen Variablen, die Du benötigst und belegst sie mit dem aktuellen Wert aus dem Displayform. Dann fügst Du Deine Rechenoperation hinzu und schreibst das ganze wieder ins Display. Erst beim Druck auf den "="-Button wird die auswertung des Strings mit eval gestartet. Dann hast Du einen Taschenrechner, bei dem sich die Rechnung noch nachvollziehen und auch vor der endgültigen Berechnung auch noch manuell verändern lässt.
Ich weiß, ich wiederhole mich, aber nutze die online-Hilfe, die ist mit ihrer Suchfunktion richtig genial und auch das Einsteigerutorial ist nicht zu lang und nicht zu kurz. Ich arbeite nun schon seit Jahren mit VDF und nutze die Hilfe immer noch täglich. Selbst bei relativ einfachen Sachverhalten, sieht man dort, wie andere Programmierer an ein Problem herangehen.
Gib nicht so schnell auf, du willst doch schließlich den Ausbildungsplatz, oder?
PS: Willst Du meine ehrlich Meinung hören? Wer C kapiert hat, kapiert VDF mit Sicherheit auch.
|
|
21.02.2008 08:18 |
|
|
Ditte
Foren As
   

Dabei seit: 23.07.2007
Beiträge: 77
Einsatzart von VDF: gewerblich Anwenderstatus: Programmierprofi Herkunft: Berlin Betriebssystem: XP,Win7,Win Serv2003,2008
 |
|
Hi,
stimme Roman in allem zu.
Das das Problem gut und "einfach" zu lösen geht haben andere bewiesen.
Beiss Dich durch nutrix.
Kleine Hilfe am Rande (NG --> suche nach FKCALC.PKG von Albright und letze Änderungen von Martinko (03.31.2007).
Kannst Du ne Menge lernen und alle Deine Frage sind beantwortet.
__________________ Dittmar
|
|
21.02.2008 09:42 |
|
|
Raphael
Jungspund

Dabei seit: 23.09.2007
Beiträge: 17
Einsatzart von VDF: gewerblich Anwenderstatus: Programmierer Herkunft: CH Betriebssystem: Windows XP/2003/2008/7
 |
|
Ich seh im Moment nicht wie du das Programm mit C(++) / Java einfacher lösen willst... Die Grundlegenden Dinge sind ja die selben... Aktueller Wert in einer (globalen) Variable Speichern, Operations-Zeichen Speichern und gegebenenfalls den neu eingegebenen Wert mit den gespeicherten verrechnen.
Dies kannst du nun auf unterschiedliche (schöne und weniger schöne, einfache und teils sehr komplizierte) Arten realisieren...
Ich finde die Idee mit VDF und dem Taschenrechner gut. Da wohl eher wenige Programmierer VDF kennen (wenn Sie sich für eine Ausbildungsstelle bewerben), ist so eine Aufgabe recht gut um zu prüfen wie schnell sich jemand in eine neue Sprache einarbeiten kann. Insbesondere wenn eine Firma VDF einsetzt wird auch ein Interesse vorhanden sein bei den Bewerbenden diese Sprache zu lernen.
__________________ Mein Blog: eSheep
Hauptprojekt: TransXpro - Übersetzungen
|
|
21.02.2008 18:20 |
|
|
nurix
Grünschnabel
Dabei seit: 18.02.2008
Beiträge: 9
Themenstarter
 |
|
hi, danke für die antworten,
es gibt keinen Termindruck..
die logik verstehe ich schon, bloß blick ich in der syntax nicht durch und wie ich das rechenzeichen belegen soll
sprich die snytax und schreibweise, aber ich versuchs sowieso weiterhin mal sehen..
ich habe schon gemerkt das vdf einfach ist, keine ";" und "{}"
ist halt ungewohnt und neu, deshalb wahrscheinlich etwas schwieriger..
MfG nurix
|
|
21.02.2008 22:34 |
|
|
nurix
Grünschnabel
Dabei seit: 18.02.2008
Beiträge: 9
Themenstarter
 |
|
hallo,
danke für das gezeigte interesse, ja ich verstehe euch schon und eure Haltung.
Ich bastel nicht mehr so intensiv damit rum, es hängt halt immer noch da wo es nicht hängen soll^^
es durchaus eine einfach erlernbare sprache.
Viele hier sagen was zu der logik, die verstehe ich schon, bloß die syntax etc.
die hilfe bringt mir immer wieder das selbe,
get value
set value aber ich brauch glaubich mehr als nur das get set...etc.
da ich selbstverständlich auch andere bewerbungen laufen habe, und die firma mit dieser aufgabe auch nicht gerade Favorit ist, sitz ich nicht nur an diesem ding fest
mfg nurix
|
|
27.02.2008 19:19 |
|
|
Roman Köhler
Administrator
    

Dabei seit: 29.08.2007
Beiträge: 202
Einsatzart von VDF: gewerblich Anwenderstatus: VDF-Entwickler Herkunft: Mannheim Betriebssystem: Windows XP
 |
|
Hallo Nurix,
ich finde es immer wieder schade, wenn auf Grund von recht geringen Verständnisproblemen Projekte aufgegeben werden. Da ich sehe, dass bei Dir bereits bei recht grundsätzlichen Sachen Probleme bestehen, hier eine kleine Erklärung, wie VDF funzt.
VDF ist objektorientiert. Das heißt, dass Dein Programm aus lauter einzelnen Objekten besteht, die Eigenschaften (properties), Variablen und Methoden (Funktionen und Prozeduren) besitzen.
Properties: Properties bleiben, so lange das Objekt besteht, auch belegt. Properties werden nicht in Methoden definiert. Belegt werden sie mit set Propertyname to Propertywert. Abgefragt werden sie mit get Propertyname to Variablenname. Bsp.: Das Objekt oForm (abgeleitet von der Form-Klasse) besitzt die Property Value. Dies ist der Wert, der in dem Eingabeform gerade sichtbar ist. Du kannst nun in jeder beliebigen Methode mit set value to 1 das Form mit dem Wert 1 füllen. Genauso kannst Du mit get Value to Variablenname den Wert des Forms in eine Variable auslesen. Soll die Abfrage/Belegung von einem anderen Objekt aus abgefragt werden, muss noch der Objektname mit angegeben werden, dessen Properties Du abfragen/setzen willst. In unserem Beispiel heißt dies: Set Value of oForm to 1 bzw. Get Value of oForm to Variablenname.
Globale Variablen: Wird innerhalb eines Objektes, jedoch außerhalb einer Methode eine Variable definiert (z.B.: mit Integer iCounter), so ist sie global. D.h. in keiner weiteren Zeile deines Quellcodes darf mehr die Variable iCounter definiert werden. Sie kann allerdings von jeder Stelle im Programm abgefragt und belegt werden. So kann man sehr bequem Parameter zwischen einzelnen Views austauschen. Die Belegun und Abfrage von Variablen erkläre ich Dir dann weiter unten.
Methoden: Die Arbeit wird in den Programmen innerhalb von Methoden (Funktionen / Prozeduren) getan. Es gibt für jedes Objekt bereits vordefinierte Methoden. Du kannst allerdings problemlos auch eigene Methoden hinzufügen. Funktionen unterscheiden sich von Prozeduren dadurch, dass sie einen Wert zurücküberliefern. Prozeduren arbeiten nur Vorgänge ab. Bsp.: In einem Button-Objekt existiert die Methode onClick. Diese wird ausgelöst, wenn der Button gedrückt wird. In Verbindung mit dem Objekt oForm von oben kann man mit dem folgenden Code den wert von oForm abfragen und verändern
Anbei habe ich Dir eine kleine beschriftete View gelegt. Die sollte relativ viel Deiner Probleme erklären
Viel Erfolg
LG
Roman
|
|
28.02.2008 10:42 |
|
|
|
|
|
 |
|