Entwickler-Ecke
Sonstiges (Delphi) - Variablen mit Showmessage!
JacFab - Mo 14.10.02 10:13
Titel: Variablen mit Showmessage!
Ich bin kürzlich von Visual basic auf delphi umgestiegen und es gibt nur eine sache, die mich bisher an delphi nervt:
bei vb war es möglich JEDE variable mit Messagebox (variable) anzuzeigen! und deshalb find ich es saumäßig umständlich, dass ich bei delphi die variablen immer erst in einen string umwandeln muss, bis ich sie mit showmessage anzeigen kann!
kann man das irgentwie umgehen?
LCS - Mo 14.10.02 10:18
Nein :!: Delphi ist eben nicht VB (zum Glück :mrgreen:)
Gruss Lothar
Delete - Mo 14.10.02 10:22
Ja, ganz meine Meinung, LCS.
@JacFab: schau dir einfach mal in der Delphi-Hilfe die Funktion "Format" an. Ich denke, dir dürfte dir in vielen Fällen weiterhelfen.
JacFab - Mo 14.10.02 10:33
ja, ich bin ja auch voll begeistert von delphi im vergleich zu vb!!
das wäre dann halt noch das nonplusultra gewesen!
[quote]schau dir einfach mal in der Delphi-Hilfe die Funktion "Format" an[/quote]
ja ich würds gerne, aber ich habe die hilfe nicht!
ich kann sie auch nicht installieren, weil meine cd an der stelle kaputt ist!
Klabautermann - Mo 14.10.02 10:40
Hallo,
das geht in Delphi auch, du musst nur den DatenTyp Variant verwenden.
Quelltext
1: 2: 3: 4: 5: 6: 7:
| procedure TForm1.Button1Click(Sender: TObject); VAR Zahl : Variant; begin Zahl := 5; ShowMessage(Zahl); end; |
Dann macht Delphi alle Konvertierungen für dich, und wandelt den eigentlichen Datentyp auch für dich um. Du kannst also Zahl := 'fünf' zuweisen.
Der Hacken an der Sache ist, das dadurch dein Programm langsammer wird und mehr Speicher benötigt. Das ist in VB übrigens nicht anders, die Micro$oft Philosophie besagt nur "Komfort vor Leistung", bei den Borlandern ist es mehr "Komfort und Leistung" und da wird dan jeder Kompromis genau abgewogen oder dem Entwickler selbst die Entscheidung überlassen. Die meisten Entwickler entscheiden sich in diesen Fall für die Leistung und machen die Konvertierungen per Hand.
Gruß
Klabautermann
Delete - Mo 14.10.02 10:51
| JacFab hat folgendes geschrieben: |
ja ich würds gerne, aber ich habe die hilfe nicht!
ich kann sie auch nicht installieren, weil meine cd an der stelle kaputt ist! |
Du weißt aber schon, dass du Anspruch auf Garantie hast? Nur wenn es eine, aus dem Netz gezogene PE-Version auf einer selbstgebrannten CD ist, dann hast du ein bisschen Pech und musst -sofern du keine Kopie auf der HD hast- den Download u.U. noch mal machen.
JacFab - Mo 14.10.02 11:23
ich hab die messagebox von vb auch hauptsächlich dafür genutzt, um zu testen welche variable an welcher stelle welcher wert zugewiesen wird!
das ist immer sehr praktisch um übersicht zu bewahren.
Delete - Mo 14.10.02 11:43
Das gibt es in Delphi IMHO auch. Ich glaube, das müsste "Einzelschritt" gewesen sein. Jedenfalls gab´s dann eine Funktion, die dir die Werte von Variablen anzeigte, wenn du mit der Maus im Editorfenster drauf gegangen bist. - Ähem, merkt man, dass ich diese Funktion nie benutzt habe? :roll:
Ich freue mich immer bei Beta- und anderen Testversionen, wenn plötzlich eine Messagebox erscheint, in der "0x1234a" drin steht. Oder gar nichts. Da weiß ich dann immer:
"Ah ja, hier hat ein Entwickler eine MessageBox eingebaut, um irgendeinen Wert zu kontrollieren." :wink:
patrick - Mo 14.10.02 17:53
zur varialbe variant
sie hat zwar den vorteil das du dich nicht mit formatierungen rumschlagen musst,
sie baucht aber erheblich mehr speicher als alle anderen variablen was das programm besonders bei umfangreichen projekten stark ausbremsen kann :cry:
Anonymous - Mo 14.10.02 18:54
Ich kann dir sagen wie ich das mache. Delphi hat die "Programierhilfe". Zu ereichen über das Menü Tools>Umgebungsoptionen. Dort kann man ein Code eingeben und ein Kürzel für den Code. Da gibt es schon einige vorgefertigte Kürzel, jedoch nichts für dein Problem. Ich hab diese Programmierhilfen um follgenden Code erwietert:
Quelltext
1:
| ShowMessage( IntToStr( | ) ); |
Das Kürzel dafür ist "smi" (für ShowMessageInteger).
Wie rufe ich das auf? Ganz einfach. "smi" schreiben und STRG+J drücken. Es erscheint:
Quelltext
1:
| ShowMessage( IntToStr( | ) ); |
Der Cursor ist an der Stelle an dem das | Zeichen eingetragen war.
Ist zwar nicht das was du wolltest, dafür aber besser ;)
/Edit
Ich sehe gerad, daß es noch besser geht:
Quelltext
1:
| ShowMessage( Variant( | ) ); |
Könnte man als "smv" in der Programierhilfe eintragen. So wie ich gerade sehe kann man das für alle Variablentypen benutzen (Integer, Real, String usw.).
Oder du erstellst dir bei jedem Programm eine kleine Prozedur:
Quelltext
1: 2: 3: 4:
| procedure MBox(V: Variant); begin ShowMessage( V ); end; |
Funktioniert jetzt fast wie bei VB: MBox(ZahlOderString);. Nachteil gegenuber der Programmierhilfe ist, daß du das bei jedem Programm vorher neu eingeben müßtest. Allerdings kannst du den Code auch in der Programmierhilfe eintragen unter "mbox".
Kannst auch eine Unit schreiben und diese in deine Vorlage einbinden. Dann ist sie bei jeder neuen Unit automatisch drinn.
Ich hör jetzt am besten auf. Ich hab zwar noch einige Ideeen, aber irgendwann muß Schluß sein.
Anonymous - Mo 14.10.02 19:12
| Klabautermann hat folgendes geschrieben: |
| ... Das ist in VB übrigens nicht anders, die Micro$oft Philosophie besagt nur "Komfort vor Leistung", bei den Borlandern ist es mehr "Komfort und Leistung" und da wird dan jeder Kompromis genau abgewogen oder dem Entwickler selbst die Entscheidung überlassen... |
An dieser Stelle würde ich dir gerne wiedersprechen. Das ist nicht typisch VisualBasic, sondern Basic. Ich hab schon mit einigen Basic Dialekten gearbeitet und keiner
mit denen ich gearbeitet habe verlangte eine Variablendeklaration. Ist eben typisch Basic. Allerdings arbeiten nicht alle Basic's mit Variant. Wenn nichts anderes vereinbart wurde, dann gehen einige Dialekte bei bei Zahlen von einer Realzahl aus. Allerdings akzeptert VB Script nur Variants. Eine Deklaration ist garnicht möglich.
Klabautermann - Di 15.10.02 09:50
Hallo,
| Popov hat folgendes geschrieben: |
| Das ist nicht typisch VisualBasic, sondern Basic. |
da hast du recht. Das ist wirklich typisch Basic. Ändert aber nichts an den Auswirkungen von Variants.
| Popov hat folgendes geschrieben: |
| Allerdings arbeiten nicht alle Basic's mit Variant. Wenn nichts anderes vereinbart wurde, dann gehen einige Dialekte bei bei Zahlen von einer Realzahl aus. |
Allerdings wird es spätestens dan Variant-Artig wenn du einen String zuweißt, was zumindest in den Basic-Dialekten die ich kenne auch kein Problem ist.
Aber du hast recht in diesem Fall hat nicht M$ die Schuld, mal abgesehen davon das die das fast Ausgestorbene Basic wiederbelebt haben.
Gruß
Klabautermann
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!