![]() |
Firemonkey, Create -> App Freeze
Ich finde nicht herraus warum er in der TContextMenue.Create(Self) Zeile einfach stehen bleibt. Habe Stunden damit zugebracht...
Delphi-Quellcode:
type
TContextMenue = class(TForm) var ConMenue : TContextMenue; begin ConMenue := TContextMenue.Create(Self); |
AW: Firemonkey, Create -> App Freeze
Was kommt denn danach?
|
AW: Firemonkey, Create -> App Freeze
Delphi-Quellcode:
Aber er bleibt in der ersten Zeile Stehen... auch wenn der Rest ausgeklammert ist.
begin
ConMenue := TContextMenue.Create(MainForm); ConMenue.Top := Trunc(Platform.GetMousePos.Y); ConMenue.Left := Trunc(Platform.GetMousePos.X); ConMenue.FBB := TBarButton(Sender); ConMenue.ShowModal; ConMenue.Free; end; Das Create ist nicht überschrieben. (Also noch das von TForm) Hab statt mainform auch Self / Nil versucht... |
AW: Firemonkey, Create -> App Freeze
Firemonkey?
Ich hoffe mal TForm ist nicht das der "alten" VCL. |
AW: Firemonkey, Create -> App Freeze
Denke nein, habe HD Formular ausgewählt, hier die ganze Form:
Delphi-Quellcode:
unit ButtonMenu;
interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, BarButton, Winapi.ShellAPI; type TContextMenue = class(TForm) procedure btnSetCaptionClick(Sender : TObject); procedure btnSetShortCutClick(Sender : TObject); public FBB : TBarButton; end; var ContextMenue : TContextMenue; implementation {$R *.fmx} procedure TContextMenue.btnSetCaptionClick(Sender : TObject); var S : String; begin if InputQuery('New button name.', 'Enter a new name.', S) then begin FBB.Text := S; end; end; procedure TContextMenue.btnSetShortCutClick(Sender : TObject); var openDlg : TOpenDialog; begin openDlg := TOpenDialog.Create(self); if (openDlg.Execute) then begin ShowMessage('File : ' + openDlg.FileName); FBB.Shortcut := openDlg.FileName; FBB.Text := ExtractFileName(OpenDlg.FileName); end else begin ShowMessage('Assigning file was cancelled'); end; openDlg.Free; end; end. |
AW: Firemonkey, Create -> App Freeze
Das Event ruft die Form auf: (bzw eine erstellt eine Instanz davon)
Delphi-Quellcode:
procedure TMainForm.MClick(Sender : TObject; Button : TMouseButton; Shift : TShiftState; X, Y : Single);
var ConMenue : TContextMenue; begin if (Sender is TBarButton) then begin if (ssRight in Shift) then begin ConMenue := TContextMenue.Create(MainForm); ConMenue.Top := Trunc(Platform.GetMousePos.Y); ConMenue.Left := Trunc(Platform.GetMousePos.X); ConMenue.FBB := TBarButton(Sender); ConMenue.ShowModal; ConMenue.Free; end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 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