Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Firemonkey, Create -> App Freeze (https://www.delphipraxis.net/167044-firemonkey-create-app-freeze.html)

Jonas Shinaniganz 10. Mär 2012 20:29

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);

newmusicslamer 10. Mär 2012 20:31

AW: Firemonkey, Create -> App Freeze
 
Was kommt denn danach?

Jonas Shinaniganz 10. Mär 2012 20:35

AW: Firemonkey, Create -> App Freeze
 
Delphi-Quellcode:
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;
Aber er bleibt in der ersten Zeile Stehen... auch wenn der Rest ausgeklammert ist.

Das Create ist nicht überschrieben. (Also noch das von TForm) Hab statt mainform auch Self / Nil versucht...

himitsu 10. Mär 2012 20:36

AW: Firemonkey, Create -> App Freeze
 
Firemonkey?

Ich hoffe mal TForm ist nicht das der "alten" VCL.

Jonas Shinaniganz 10. Mär 2012 20:40

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.

Jonas Shinaniganz 10. Mär 2012 20:44

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 18:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz