![]() |
Komisches Verhalten des Fensters
Hi
ich habe folgende Deklaration:
Delphi-Quellcode:
Jetzt fügt er immer wenn ich eine neue Komponente auf die Form ziehe oder wenn ich eine Ereignisroutine im OI erstelle die Deklarationen im Public-Teil der Form ein, und nicht direkt unter dem Namen:
type
TfSoFi = class(TForm, IDropSource) SuchEdit: TEdit; GroupBox1: TGroupBox; edTitelSuch: TEdit; Label1: TLabel; Label2: TLabel; edInterpretSuch: TEdit; Label3: TLabel; edAlbumSuch: TEdit; Label4: TLabel; Label5: TLabel; edGenreSuch: TEdit; ImageList1: TImageList; GroupBox2: TGroupBox; Label8: TLabel; Label9: TLabel; MainMenu1: TMainMenu; Datei1: TMenuItem; DBLaden: TMenuItem; DBSpeichern: TMenuItem; Schliessen: TMenuItem; Hinzufgen1: TMenuItem; AusOrdner: TMenuItem; AusDB: TMenuItem; Hilfe1: TMenuItem; Hilfe: TMenuItem; Ueber: TMenuItem; GroupBox4: TGroupBox; rbWinamp: TRadioButton; rbMediaPlayer: TRadioButton; GroupBox5: TGroupBox; rbAbspielen: TRadioButton; rbListe: TRadioButton; rbStandart: TRadioButton; rbSonstiger: TRadioButton; Edit1: TEdit; Button3: TButton; OpenDialog1: TOpenDialog; DBUeberpruefen: TMenuItem; OpenDialog2: TOpenDialog; GroupBox6: TGroupBox; Infos: TMemo; WebBrowser1: TWebBrowser; Image1: TImage; rbIntern: TRadioButton; StatusBar1: TStatusBar; frPlayer1: TfrPlayer; frGeordnet1: TfrGeordnet; Optionen: TMenuItem; pcPlayerControl: TPageControl; tsPlayer: TTabSheet; tsRadio: TTabSheet; frRadio1: TfrRadio; imli: TImageList; Updates: TMenuItem; SearchEx: TButton; procedure Button1Click(Sender: TObject); procedure SuchEditChange(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure DBLadenClick(Sender: TObject); procedure DBSpeichernClick(Sender: TObject); procedure SchliessenClick(Sender: TObject); procedure Button3Click(Sender: TObject); procedure DBUeberpruefenClick(Sender: TObject); procedure AusDBClick(Sender: TObject); procedure UeberClick(Sender: TObject); procedure SuchEditKeyPress(Sender: TObject; var Key: Char); procedure FormDestroy(Sender: TObject); procedure WebBrowser1DocumentComplete(ASender: TObject; const pDisp: IDispatch; var URL: OleVariant); procedure AusOrdnerClick(Sender: TObject); procedure OptionenClick(Sender: TObject); procedure SearchExClick(Sender: TObject); procedure UpdatesClick(Sender: TObject); function QueryContinueDrag(fEscapePressed: BOOL; grfKeyState: Longint): HResult; stdcall; function GiveFeedback(dwEffect: Longint): HResult; stdcall; procedure GetWords(s: string; woerter: TStrings); function such(Txt, Pattern: string): boolean; private const Delimiters = [#1..#47, #58..#64, #91..#96, #123..#191, #215, #216, #247, #248]; Delimiters_0 = [#0] + Delimiters; var FDragStartPos: TPoint; FInter, FAlb, FDarfListen: Boolean; FZeitBenötigt: Cardinal; procedure AppException(Sender: TObject; E: Exception); procedure WndProcAddFile(var Msg: TMessage); procedure WMDROPFILES(var Msg: TMessage); procedure LBWindowProc(var Message: TMessage); procedure BeendenPrc(Var msg: TMessage); message WM_USER + 458; procedure LoadImages; protected procedure WndProc(var Msg: TMessage); override; public property ZeitBenötigt: Cardinal read FZeitBenötigt write FZeitBenötigt; end;
Delphi-Quellcode:
Außerdem geht das automatische vervollständigen der Klasse (Umsch+Strg+C) nicht.
type
TfSoFi = class(TForm, IDropSource) // hier sollte die Deklaration erscheinen private public // hier wird deklariert ... Button1: TButton; procedure Button1Click(Sender: TObject); end; Es kommt die Fehlermeldung: Zitat:
Delphi-Quellcode:
wird gleichzeitig als fehlerhaft angezeig.
Delimiters = [#1..#47, #58..#64, #91..#96, #123..#191, #215, #216, #247, #248];
Kompilieren lässt sich das Projekt aber ohne Probleme. Dieses Problem tritt auch nur bei dieser Klasse auf... alle Forms in dem Projekt verhalten sich normal. Hat jemand eine Idee woran das liegt? mfg.Dominik |
Re: Komisches Verhalten des Fensters
Die IDE benutzt für viele Zwecke einen anderen Parser als der Compiler, und zwar einen weniger perfekten. Deshalb klappen Sachen wie Klassenvervollständigung etc. nicht, wenn du esoterische oder - wie in deinem Fall - neumodische Konstrukte verwendest. Ich hab's mittlerweile aufgegeben, in solchen Fällen mit der IDE zu streiten und weiche halt auf Syntax auf, die der Parser verdauen kann. An deiner Stelle würde ich die Deklaration der beiden Delimiter-Sets in den implementation-Teil der Unit verlegen, dann müsste eigentlich alle Probleme verschwinden. :)
HTH, Uli. |
Re: Komisches Verhalten des Fensters
toll... das funktioniert ja sogar...
danke uligerhardt für deine hilfe |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 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-2025 by Thomas Breitkreuz