Autor Beitrag
JacFab
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 111



BeitragVerfasst: Mo 14.10.02 10:13 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Mo 14.10.02 10:18 
Nein :!: Delphi ist eben nicht VB (zum Glück :mrgreen:)

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 111



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mo 14.10.02 10:40 
Hallo,

das geht in Delphi auch, du musst nur den DatenTyp Variant verwenden.

ausblenden 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
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 111



BeitragVerfasst: 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.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1481

WIN2k, WIN XP
D6 Personal, D2005 PE
BeitragVerfasst: 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:

_________________
Patrick
im zweifelsfall immer das richtige tun!!!
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: 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:

ausblenden 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:

ausblenden 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:

ausblenden 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:

ausblenden 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.


Zuletzt bearbeitet von Popov am Mo 14.10.02 19:32, insgesamt 1-mal bearbeitet
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: 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