![]() |
AW: Während Programm läuft
@Finki:
Und ich habe auch noch eine Bitte :stupid: Sei doch bitte so gut und passe den Titel dieses Threads an. "Während Programm läuft" ist nicht besonders konkret. Danke Dir. |
AW: Während Programm läuft
OK, Ich habe es kapiert! Ist es so jetzt besser? :D
@Daniel: Ja, werde ich, in Zukunft, machen! |
AW: Während Programm läuft
Zitat:
|
AW: Während Programm läuft
ähm, ich hab da noch so eine frage:
ich versteh das doch noch nicht, wie soll des gehen das ich auf den move button drücke, wie soll der button dann "wissen" auf welches Objekt gedrückt wurde |
AW: Während Programm läuft
Zitat:
|
AW: Während Programm läuft
Dann kommt bei mir der fehler
newformframe.pas(94,36) Error: Wrong number of parameters specified for call to "MeinEigenesOnClick" und das ist der Code
Delphi-Quellcode:
txtzahl:=txtzahl+1;
Edit1 :=TEdit.Create(Form3); Edit1.Parent := Form3; Edit1.AutoSize:=true; Edit1.SetBounds(mausx,mausy,50,32); Edit1.Refresh; Edit1.Visible:=true; Edit1.Enabled:=true; Edit1.Caption:=Form4.Edit1.Text; with Edit1 do begin OnClick := MeinEigenesOnClick; //der liegt angeblich in dieser Zeile end; Edit1.Name:='txtFeld' + inttostr(txtzahl); Form4.Memo1.Lines.Text:='0'; |
AW: Während Programm läuft
Wie hast du denn die procedure
Delphi-Quellcode:
deklariert?
MeinEigenesOnClick
Bei der Deklaration muss ein Sender als TObject übergeben werden.
Delphi-Quellcode:
procedure MeinEigenesOnClick(Sender: TObject); // Deklaration im Interface Teil
... Edit1.OnClick := MeinEigenesOnClick; // Zuweisung des Ereignisses |
AW: Während Programm läuft
Delphi-Quellcode:
...
public procedure MeinEigenesOnClick(Sender: TObject); end; var Form3: TForm3; { TForm3 } procedure TForm3.MeinEigenesOnClick(Sender: TObject); var meinControl: TWinControl; begin if (Sender is TWinControl) then meinControl := (Sender as TWinControl) else Exit; meinControl.Left := meinControl.Left - 2; end; |
AW: Während Programm läuft
Du darfst dein Ereignis nicht im public Bereich sondern nur im "globalen" Bereich deklarieren. Also auch dort, wo deine ganzen Komponenten aufgelistet werden.
Beispiel:
Delphi-Quellcode:
type
TAdvancedSettingsFrm = class(TForm) SettingsTree: TJvSettingsTreeView; procedure SaveBtnClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; |
AW: Während Programm läuft
immer noch der gleiche Fehler
newformframe.pas(94,40) Error: Wrong number of parameters specified for call to "MeinEigenesOnClick"
Delphi-Quellcode:
und Hier mal der Quellcod der ganzen Unit
type
{ TForm3 } TForm3 = class(TForm) Button1: TButton; Memo1: TMemo; procedure Button1Click(Sender: TObject); procedure FormChangeBounds(Sender: TObject); procedure FormClick(Sender: TObject); procedure FormClose(Sender: TObject; var CloseAction: TCloseAction); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure MeinEigenesOnClick(Sender: TObject); private { private declarations } public end;
Delphi-Quellcode:
unit NewFormFrame;
{$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, ComCtrls, Buttons, ExtCtrls; type { TForm3 } TForm3 = class(TForm) Button1: TButton; Memo1: TMemo; procedure Button1Click(Sender: TObject); procedure FormChangeBounds(Sender: TObject); procedure FormClick(Sender: TObject); procedure FormClose(Sender: TObject; var CloseAction: TCloseAction); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure MeinEigenesOnClick(Sender: TObject); private { private declarations } public end; var Form3: TForm3; txtzahl : integer; lblzahl : integer; absetzen : boolean; implementation uses FormularFrame, newformframetools; { TForm3 } procedure TForm3.meineigenesOnClick(Sender: TObject); var meinControl: TWinControl; begin if (Sender is TWinControl) then meinControl := (Sender as TWinControl) else Exit; meinControl.Left := meinControl.Left - 2; end; procedure TForm3.FormClose(Sender: TObject; var CloseAction: TCloseAction); begin Form4.Close; end; procedure TForm3.FormCreate(Sender: TObject); begin txtzahl :=0; lblzahl :=0; Memo1.Lines.Clear; absetzen :=false end; procedure TForm3.FormClick(Sender: TObject); var toolmemo1i : integer; mausx, mausy : integer; Edit1 : TEdit; Label1 : TLabel; begin toolmemo1i:=strtoint(Form4.Memo1.Lines[0]); mausx:=Mouse.CursorPos.x-Form3.Left-3; mausy:=Mouse.CursorPos.y-Form3.Top-50; case toolmemo1i of 0: begin end; 1: begin txtzahl:=txtzahl+1; Edit1 :=TEdit.Create(Form3); Edit1.Parent := Form3; Edit1.AutoSize:=true; Edit1.SetBounds(mausx,mausy,50,32); Edit1.Refresh; Edit1.Visible:=true; Edit1.Enabled:=true; Edit1.OnClick:=MeinEigenesOnClick; Edit1.Caption:=Form4.Edit1.Text; Edit1.Name:='txtFeld' + inttostr(txtzahl); Form4.Memo1.Lines.Text:='0'; Memo1.Lines.Add('1'); Memo1.Lines.Add(Edit1.Name); Memo1.Lines.Add(Edit1.Text); Memo1.Lines.Add(inttostr(Edit1.BoundsRect.Left)); Memo1.Lines.Add(inttostr(Edit1.BoundsRect.Top)); Memo1.Lines.Add(inttostr(Edit1.Width)); Memo1.Lines.Add(inttostr(Edit1.Height)); Memo1.Lines.Add(''); // Memo1.Lines.Text:=inttostr(Form4.txtSize.Caption); Form3.Refresh; end; 2: begin lblzahl:=lblzahl+1; Label1 :=TLabel.Create(Form3); Label1.Parent := Form3; Label1.AutoSize:=true; Label1.SetBounds(mausx,mausy,50,32); {if lblzahl>1 then begin for j:=1 to lblzahl do lblFeld end;} Label1.Refresh; Label1.Visible:=true; Label1.Enabled:=true; Label1.Font.Size:=strtoint(Form4.txtSize.Text); Label1.Caption:=Form4.Edit1.Text; Label1.Name:='lblFeld' + inttostr(lblzahl); Form4.Memo1.Lines.Text:='0'; Form3.Refresh; Memo1.Lines.Add('2'); Memo1.Lines.Add(Label1.Name); Memo1.Lines.Add(Label1.Caption); Memo1.Lines.Add(inttostr(Label1.BoundsRect.Left)); Memo1.Lines.Add(inttostr(Label1.BoundsRect.Top)); Memo1.Lines.Add(inttostr(Label1.Width)); Memo1.Lines.Add(inttostr(Label1.Height)); Memo1.Lines.Add(''); end; 3: begin end; end; end; procedure TForm3.FormChangeBounds(Sender: TObject); begin Form4.SetBounds(Form3.Left-125,Form3.Top,115,201); end; procedure TForm3.Button1Click(Sender: TObject); begin button1.Caption:=boolToStr(move); end; procedure TForm3.FormShow(Sender: TObject); begin Form3.Caption:='Formular Editor'; Form4:= TForm4.Create(Form3); Form4.ShowOnTop; Form4.Caption:='Tools'; Form4.SetBounds(Form3.Left-125,Form3.Top,115,296); end; {$R *.lfm} end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:41 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