function TAspSTDForm.MessageDlgEx(Text, Titel: string; msgType: integer): integer; begin Result := ExMessageBox.MessageDlgEx(Text, Titel,msgType); end;
function TAspSTDForm.ShowQuestion(Text, Titel: string): integer; begin Result := ExMessageBox.ShowQuestion(Text, Titel); end;
function TAspSTDForm.ShowWarning(Text, Titel: string): integer; begin Result := ExMessageBox.ShowWarning(Text, Titel); end;
procedure TAspSTDForm.CMDialogKey(var Msg: TCMDialogKey); begin if (GetParentForm(Self).ActiveControl is TButtonControl) then inherited else if (Msg.CharCode = VK_RETURN) and self.FEnterAsTab then begin GetParentForm(Self).Perform(CM_DIALOGKEY, VK_TAB, 0); Msg.Result := 1; end else inherited; end;
Jeg er ikke lige helt klar over hvad du mener, men hvis i vil have en standard grund form er det så ikke bare et spørgsmål om at lade alle jeres forme arve fra TAspSTDForm formen?
procedure OpretForm(aForm : TClass) var UndeterminedForm : TForm; begin UndeterminedForm := aForm.Create(self); // Måske MakeInstance eller sådan noget
Kan ikke lige huske om jeg rent faktisk skriver aForm.Create eller om der er en anden metode til at instantiere via en TClass. Har noget kode derhjemme.
Ikke på en pæn måde. Det må være noget med at gøre følgende der hvor du opretter objekterne:
if aClass is TMyClass1 then MyObj := aClass.Create(nn,22,33,..) else aClass is TMyClass2 then MyObj := aClass.Create(xx,yy,aa)
osv.
Mener ikke at syntaksen er helt korrekt, men vil prøve at kigge i noget af det gamle kode derhjemme - hvis jeg får tid. Der er ferie i luften og det betyder som regel alt andet end afslapning hos os.
det vil fungere - men jeg faktisk gerne have det således at det er mere dynamisk - her er point til dig. vil være glad og rundhåndet med point hvis du vil bruge lidt tid på at se din gamle kode igennem.
Jeg ledte lidt rundt, men hold fast hvor der hober sig kode op. Fandt noget kode som blev brugt i en forrige ansættelse. Det virker, men det eksempel jeg ledte var altså mere i Borlands ånd.
// Kunne ligeså godt bare bruge TForm function CreateAndShowFormModal(aFormType: TFormType): integer; type TBaseFormType = class of TBaseForm1; TBmpFormType = class of TBmpForm; var AForm: TForm; begin // Create form - finder ud af om der er en speciel constructor if AFormType.InheritsFrom(TBaseForm1) then AForm := TBaseFormType(AFormType).Create(Application, 'Karla er med') else if AFormType.InheritsFrom(TBmpForm) then AForm := TBmpFormType(AFormType).Create(Application, 'Hanneglad Mandeglad') else // Eller bare en almindelig form AForm := AFormType.Create(Self);
result := ShowFormModal(AForm); end;
function ShowFormModal(aForm: TForm; const aFreeForm : boolean = true) : integer; begin // Opdater form med theme if ThemeServices.ThemesEnabled then LastGridHeaderColor := UpdateFormTheme(AForm, DefaultGridHeaderColor);
try Result := AForm.ShowModal; finally if AFreeForm then AForm.Free; // Eller Release om du synes end; end;
Jeg fandt desværre ikke det jeg selv havde skruet sammen - desværre forsvundet da jeg ikke kan komme på hvad jeg skal søge efter.
I ShowFormModal bliver der opdateret nogle farver efter det valgte windows-tema. De tre linier skulle egentlig ikke (Ellers en ret avanceret funktion der blev kaldt).
function ShowFormModal(aForm: TForm; const aFreeForm : boolean = true) : integer; begin try Result := AForm.ShowModal; finally if AFreeForm then AForm.Free; // Eller Release om du synes end; end;
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.