![]() |
entsprechender Delphi Code zu VB6?
Ich suche einen Befehl in Delphi, nämlich:
Welcher Befehl entspricht dem "Select Case" Befehl in VB6? Ich hoffe es kann mir jemand helfen! |
Re: entsprechender Delphi Code zu VB6?
wenn du die selektion meinst
Code:
case <value> of
number : <anweisung>; . . . numbern : <anweisung>; else <anweisung>; end; |
Re: entsprechender Delphi Code zu VB6?
Ja sowas meinte ich.
Kann ich da auch mehrere Werte zusammenfassen, etwa so:
Code:
case <value> of
number 1: <anweisung>; . . . numbern 3 to 10: <anweisung>; else <anweisung>; end; |
Re: entsprechender Delphi Code zu VB6?
Hallo,
ja, kannst Du:
Delphi-Quellcode:
case <value> of
1: <anweisung>; . . . 3..10, 25..46, 'A'..'Z': <anweisung>; else <anweisung>; end; |
Re: entsprechender Delphi Code zu VB6?
ja
Delphi-Quellcode:
Die case-Anweisung
case I of 1..5: Caption := 'Low'; 6..9: Caption := 'High'; 0, 10..99: Caption := 'Out of range'; else Caption := ''; end; |
Re: entsprechender Delphi Code zu VB6?
Kennt sich jemand mit VB besser aus?
Wenn ja wäre es nett, wenn mir jemand den folgenden VB-Code in Delphi "übersetzt", weil ich damit nicht klarkomme.
Code:
Mit dem unteren Teil komm ich nicht klar. PlayEpisodeNummer ist eine Funktion die beim klicken auf ein Menü aufgerufen wird. Wie genau mache ich das in Delphi??
Option Explicit
Public Folgennummer As Byte Private Sub mnu_01_Click() Folgennummer = 1 PlayEpisodeNummer Folgennummer End Sub Private Sub mnu_02_Click() Folgennummer = 2 PlayEpisodeNummer Folgennummer End Sub Private Sub PlayEpisodeNummer(index As Byte) Select Case index Case 1 Case 2 End Select End Sub |
Re: entsprechender Delphi Code zu VB6?
Zitat:
Delphi-Quellcode:
Statt Menü's habe ich zwei Buttons genommen. Wird wohl als Hilfestellung reichen. Oder?
var
Folgennummer: Integer; procedure PlayEpisodeNummer(Index: Integer); begin case Index of 1:; 2:; end; end; procedure TForm1.Button1Click(Sender: TObject); begin Folgennummer := 1; PlayEpisodeNummer(Folgennummer); end; procedure TForm1.Button2Click(Sender: TObject); begin Folgennummer := 2; PlayEpisodeNummer(Folgennummer); end; |
Re: entsprechender Delphi Code zu VB6?
Nochmal erklärt.
Wenn man im Menu wo rauf klickt wird zuerst die Folgennummer gesetzt. Danach soll der Befehl PlayEpisodeNummer ausgeführt werden, mit der vorher gesetzten Variabel (Folgennummer). Je nach der Folgennummer trifft dann der bestimmte Case zu. Es kommt immer folgende Fehlermeldung:
Code:
Eigentlich sollte nun der Code PlayEpisodeNummer in Kraft treten, aber das tut er nicht: PlayEpisodeNummer Undefinierter Bezeichner.
procedure TForm1.Button1Click(Sender: TObject);
begin Folgennummer := 1; PlayEpisodeNummer(Folgennummer); end; |
Re: entsprechender Delphi Code zu VB6?
Keks... PlayEpisodeNummer muss natürlich auch vorher programmiert sein... Das ist ja keine Standard-Operation die mit Delphi mit kommt :roll:.
Wir nahmen jetzt mal alle an (nehme ich mal an ;)), dass die Funktion bereits existiert. Es muss also irgendeine Funktion
Delphi-Quellcode:
her, die das macht, was sie eben machen soll. :spin:
procedure PlayEpisodeNumber(Nummer: Integer);
begin // Dein Code end; gruss, dizzy |
Re: entsprechender Delphi Code zu VB6?
wie muss ich den Befehl PlayEpisodeNummer definieren, damit er global für den ganzen Code immer gilt?
|
Re: entsprechender Delphi Code zu VB6?
erkundige dich mal über
![]() |
Re: entsprechender Delphi Code zu VB6?
Komme immer noch nicht damit klar.
Also nochmal erklärt. Zuerst mein kompletter Code:
Delphi-Quellcode:
Wenn ich nun auf einen Menüpunkt klicke soll zuerst der Integer Folgennummer auf 1 bzw. 2 gesetzt werden. Nun soll der Befehl PlayEpisodeNummer(Folgennummer); ausgeführt werden. Je nachdem ob Folgennummer 1 oder 2 ist, soll der case 1 oder 2 ausgeführt werden.
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus, Mask, ExtCtrls, ComCtrls, XPMan, CheckLst, Grids, ValEdit, Outline, DirOutln, Calendar, Spin, ColorGrd, OleCtrls, Chartfx3, OleCtnrs, jpeg, Buttons, AlignLabeledEdit, AlignEdit; type TForm1 = class(TForm) Image: TImage; edit_Drehbuch: TLabeledEdit; edit_Regie: TLabeledEdit; RichEdit: TRichEdit; Button1: TButton; Button2: TButton; MainMenu1: TMainMenu; edit_Folge: TAlignLabeledEdit; edit_ErstausstrahlungD: TAlignLabeledEdit; edit_ErstausstrahlungU: TAlignLabeledEdit; edit_Titel: TLabeledEdit; edit_OriginalTitel: TLabeledEdit; Staffel11: TMenuItem; N01NichtVonDieserWelt1: TMenuItem; N02HutungBeiVollmond1: TMenuItem; N03Feuerball1: TMenuItem; procedure N01NichtVonDieserWelt1Click(Sender: TObject); procedure N02HutungBeiVollmond1Click(Sender: TObject); procedure PlayEpisodeNummer(Folgennummer: Integer); private { Private-Deklarationen } Folgennummer: Integer; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.N01NichtVonDieserWelt1Click(Sender: TObject); begin Folgennummer := 1; PlayEpisodeNummer(Folgennummer); end; procedure TForm1.N02HutungBeiVollmond1Click(Sender: TObject); begin Folgennummer := 2; PlayEpisodeNummer(Folgennummer); end; procedure PlayEpisodeNummer(Folgennummer: Integer); begin case Folgennummer of 1:; richedit.Lines.LoadFromFile('.\episodes\01.txt'); Image.Picture.LoadFromFile('.\images\01.jpg'); 2:; richedit.Lines.LoadFromFile('.\episodes\02.txt'); Image.Picture.LoadFromFile('.\images\02.jpg'); end; end; end. Nur geht das nicht. Es kommt immer eine Fehlermeldung (ungeügende forward -oder external-deklarationen). An was kann das liegen? |
Re: entsprechender Delphi Code zu VB6?
Hi,
versuchs mal damit:
Code:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus, Mask, ExtCtrls, ComCtrls, XPMan, CheckLst, Grids, ValEdit, Outline, DirOutln, Calendar, Spin, ColorGrd, OleCtrls, Chartfx3, OleCtnrs, jpeg, Buttons, AlignLabeledEdit, AlignEdit; type TForm1 = class(TForm) Image: TImage; edit_Drehbuch: TLabeledEdit; edit_Regie: TLabeledEdit; RichEdit: TRichEdit; Button1: TButton; Button2: TButton; MainMenu1: TMainMenu; edit_Folge: TAlignLabeledEdit; edit_ErstausstrahlungD: TAlignLabeledEdit; edit_ErstausstrahlungU: TAlignLabeledEdit; edit_Titel: TLabeledEdit; edit_OriginalTitel: TLabeledEdit; Staffel11: TMenuItem; N01NichtVonDieserWelt1: TMenuItem; N02HutungBeiVollmond1: TMenuItem; N03Feuerball1: TMenuItem; procedure N01NichtVonDieserWelt1Click(Sender: TObject); procedure N02HutungBeiVollmond1Click(Sender: TObject); procedure PlayEpisodeNummer(Folgennummer: Integer); private { Private-Deklarationen } Folgennummer: Integer; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.N01NichtVonDieserWelt1Click(Sender: TObject); begin Folgennummer := 1; PlayEpisodeNummer(Folgennummer); end; procedure TForm1.N02HutungBeiVollmond1Click(Sender: TObject); begin Folgennummer := 2; PlayEpisodeNummer(Folgennummer); end; procedure PlayEpisodeNummer(Folgennummer: Integer); begin case Folgennummer of 1: begin // Hier musst du begin schreiben wenn was mehrzeiliges kommt! richedit.Lines.LoadFromFile('.\episodes\01.txt'); Image.Picture.LoadFromFile('.\images\01.jpg'); end; // und hier end 2: begin // hier genauso begin richedit.Lines.LoadFromFile('.\episodes\02.txt'); Image.Picture.LoadFromFile('.\images\02.jpg'); end; // hier ebenfalls end end; end; end. |
Re: entsprechender Delphi Code zu VB6?
PlayEpisodeNumber sollte außerhalb der TForm1-Klassendeclaration, declariert werden wenn es schon keine Methode davon ist (soll ja global vorhanden sein :freak: ).
|
Re: entsprechender Delphi Code zu VB6?
@FlorianK
Es kommt wieder eine Fehlermeldung: Undefinierter Bezeichner: 'richedit' Undefinierter Bezeichner: 'Image' |
Re: entsprechender Delphi Code zu VB6?
Jetzt müsste es klappen!!!
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus, Mask, ExtCtrls, ComCtrls, XPMan, CheckLst, Grids, ValEdit, Outline, DirOutln, Calendar, Spin, ColorGrd, OleCtrls, Chartfx3, OleCtnrs, jpeg, Buttons, AlignLabeledEdit, AlignEdit; type TForm1 = class(TForm) Image: TImage; edit_Drehbuch: TLabeledEdit; edit_Regie: TLabeledEdit; RichEdit: TRichEdit; Button1: TButton; Button2: TButton; MainMenu1: TMainMenu; edit_Folge: TAlignLabeledEdit; edit_ErstausstrahlungD: TAlignLabeledEdit; edit_ErstausstrahlungU: TAlignLabeledEdit; edit_Titel: TLabeledEdit; edit_OriginalTitel: TLabeledEdit; Staffel11: TMenuItem; N01NichtVonDieserWelt1: TMenuItem; N02HutungBeiVollmond1: TMenuItem; N03Feuerball1: TMenuItem; procedure N01NichtVonDieserWelt1Click(Sender: TObject); procedure N02HutungBeiVollmond1Click(Sender: TObject); private { Private-Deklarationen } Folgennummer: Integer; public { Public-Deklarationen } end; procedure PlayEpisodeNummer(Folgennummer: Integer); // Darf nicht in der Klasse TForm1 deklariert werden! var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.N01NichtVonDieserWelt1Click(Sender: TObject); begin Folgennummer := 1; PlayEpisodeNummer(Folgennummer); end; procedure TForm1.N02HutungBeiVollmond1Click(Sender: TObject); begin Folgennummer := 2; PlayEpisodeNummer(Folgennummer); end; procedure PlayEpisodeNummer(Folgennummer: Integer); begin case Folgennummer of 1: begin // Hier musst du 'begin' schreiben wenn was mehrzeiliges kommt! Form1.RichEdit.Lines.LoadFromFile('.\episodes\01.txt'); // Form1 muss ergänzt werden Form1.Image.Picture.LoadFromFile('.\images\01.jpg'); end; // und hier 'end' 2: begin // hier genauso 'begin' Form1.richedit.Lines.LoadFromFile('.\episodes\02.txt'); Form1.Image.Picture.LoadFromFile('.\images\02.jpg'); end; // hier ebenfalls 'end' end; end; end. |
Re: entsprechender Delphi Code zu VB6?
THX an alle für eure Geduld!
Jetzt gehts! |
Re: entsprechender Delphi Code zu VB6?
Kein Problem WIR / bzw. ich helfen / helfe gerne.
Florian K. ;-) :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz