-
Content Count
888 -
Joined
-
Last visited
-
Days Won
7
Everything posted by Stano
-
No, I have Delphi Professional.
-
Not for me. The SQL has "0 AS X". The actual field type in DB is Float. Therefore, I always define the MemTable structure for each use. As I was explained, Pointer is passed to CopyDataSet. Field type data is lost. X will be ftInteger. I don't have to deal with performance. These are just a few records / rows.
-
There was no other option than FDBatchMove. It already works for me. Thanks for the response.
-
Using translations in unit Consts with Delphi 10.4 VCL
Stano replied to Dirk Janssens's topic in VCL
I have the Slovensky.pas file quoted only in * .dpr. I'm not setting anything anywhere. I use TSM. I'm bypassing the OS dialogs. I can't say more about that. -
Using translations in unit Consts with Delphi 10.4 VCL
Stano replied to Dirk Janssens's topic in VCL
Yes. -
Using translations in unit Consts with Delphi 10.4 VCL
Stano replied to Dirk Janssens's topic in VCL
I once found it on the internet. It never disappointed me. unit slovensky; interface implementation uses System.Classes, Vcl.Forms, Vcl.Consts, Vcl.Dialogs; resourcestring SMsgDlgCZWarning = 'Výstraha'; SMsgDlgCZError = 'Chyba'; SMsgDlgCZInformation = 'Informácia'; SMsgDlgCZConfirm = 'Potvrdiť'; // Otázka SMsgDlgCZYes = 'Án&o'; SMsgDlgCZNo = '&Nie'; SMsgDlgCZOK = 'OK'; SMsgDlgCZCancel = 'Zruš'; SMsgDlgCZHelp = 'Nápoveď'; // SMsgDlgCZHelpNone = 'Nápoveď nie je'; // SMsgDlgCZHelpHelp = 'Nápoveď'; SMsgDlgCZAbort = '&Zrušiť'; SMsgDlgCZRetry = 'Opakovať'; SMsgDlgCZIgnore = '&Ignorovať'; SMsgDlgCZAll = '&Všetko'; SMsgDlgCZNoToAll = 'Nie všetkým'; SMsgDlgCZYesToAll = 'Ano všetkýmm'; SMsgDlgCZClose = 'Zavrieť'; const Captions: array[TMsgDlgType] of Pointer = (@SMsgDlgCZWarning, @SMsgDlgCZError, @SMsgDlgCZInformation, @SMsgDlgCZConfirm, nil); ButtonCaptions: array[TMsgDlgBtn] of Pointer = ( @SMsgDlgCZYes, @SMsgDlgCZNo, @SMsgDlgCZOK, @SMsgDlgCZCancel, @SMsgDlgCZAbort, @SMsgDlgCZRetry, @SMsgDlgCZIgnore, @SMsgDlgCZAll, @SMsgDlgCZNoToAll, @SMsgDlgCZYesToAll, @SMsgDlgCZHelp, @SMsgDlgCZClose); {$WARN SYMBOL_PLATFORM OFF} procedure _ChangeCaptions(List: TPointerList; Last: Pointer); const Two = 2; var I, Max: Integer; IsFind: Boolean; begin {$R-} try Max := (Integer(Last)-Integer(List)) div SizeOf(Pointer); IsFind := False; for I := 0 to Max - Two do if (List[I] = @SMsgDlgWarning) and (List[I + Two] = @SMsgDlgInformation) then begin IsFind := True; break; end; if IsFind then Move(Captions, List[I], SizeOf(Captions)); IsFind := False; for I := I to Max - Two do if (List[I] = @SMsgDlgYes) and (List[I + Two] = @SMsgDlgOK) then begin IsFind := True; break; end; if IsFind then Move(ButtonCaptions, List[I], SizeOf(ButtonCaptions)); finally {$R+} end; end; initialization // _ChangeCaptions(@DebugHook, @Application); end. -
Parnassus Bookmarks for Delphi 11 Alexandria?
Stano replied to PeterPanettone's topic in Delphi IDE and APIs
Unlike me. -
Parnassus Bookmarks for Delphi 11 Alexandria?
Stano replied to PeterPanettone's topic in Delphi IDE and APIs
11.1. it's november 1? In this case, it does not look like this for the foreseeable future Thanks! -
I hope they fix it.
-
This forum works weird. I had exactly the same problem. I wrote in support. They fixed the problem. I reported a problem with cleaning uses. They don't respond. I wasn't alone. Here you have an email at Liu Xiao liuxiao@cnpack.org
-
The Curiously Recurring Generic Pattern
Stano replied to Erik@Grijjy's topic in Tips / Blogs / Tutorials / Videos
It happens to me too. In that case, I run the build. I have small projects. Suddenly everything is fine. Up to two I don't know if this is your case either. -
For me, a layman, yes. The argument was made: why do you want to solve something that other DBs have solved? That decided.
-
I do not know and do not use SQLite. I know one thing. All values are always stored in the DB as string / VarChar. Remember that and look for a mistake here. Defining the field type is only to make your work easier. As far as I know, this will not ensure that you write incorrect data to table. When I found SQLite and found how complicated it was to work with dates, I quickly rejected it.
-
So use that AbsoluteIndex.
-
You can also use the internal order numbering. Although not highly recommended. AbsoluteIndex.
-
I personally always use amInsertBefore. The user quickly finds out and arranges accordingly. Of course, the problem is when the row has to go to the end. Then he must move two rows. Sender.MoveTo(Sender.FocusedNode, Sender.DropTargetNode, amInsertBefore, False);
-
begin ... const MaxInfo = 3; var FInfo: AnsiString; for var I := 0 to MaxInfo do It bothers a little.
-
I use two ways: Text - I will copy it to another application. Text editor, Excel, Word ... The reason for Word is the fact that I have a line length of 120 characters. This will fit in one line in Word. When I copy a block, I lose the line numbering. That usually doesn't matter Screenshot - I will edit the given image (negative). I'm not used to printing from the IDE. It kind of doesn't suit me.
-
I agree and join
-
I think of only one possibility. The DataSource has been physically deleted or relocated. Which is basically the same.
-
I do not agree. The reasons were written by Anders Meland. Read them a few times. This section is not designed correctly. SendAPMsg.SQL.Text := 'select s.*, j.JobNo, j.CustomerRef, j.ConsumerName, j.ConsumerPhoneNo, j.ConsumerEmail, j.Manufacturer, j.Model, j.ESN, j.ConsumerName, c.Name,'; SendAPMsg.SQL.Text := SendAPMsg.SQL.Text + 'c.ContactName, c.ServiceEmail, c.ServiceEmailName, c.CCEmailAddress, c.SvcContactName from APJobTickets s, JobTickets j, Company c'; SendAPMsg.SQL.Text := SendAPMsg.SQL.Text + 'where (j.buscode = :BusCode) and (j.JobNo = s.JobNo) and (c.BusCode = j.BusCode) and ((Current_Date - Cast(s.DateSent as Date)) >= :iAPUpdateDays) and (Trim(BOTH '' '' from j.ConsumerEmail) <> '''')'; SendAPMsg.SQL.Text := SendAPMsg.SQL.Text + 'order by s.JobNo'; Be aware that after each event SendAPMsg.SQL.Text := SendAPMsg.SQL.Text + something the correctness of SQL.Text is always evaluated. Compose the Text correctly first and assign it entirely to SendAPMsg.SQL.Text. If you do it right, the whole SQL.Text will be nicely readable. Now it's a cluster of some letters. Remember to have the right line length. They must be fully visible. I have 120 characters
-
How to get ThisFormClass (TForm1) from Form1
Stano replied to Qasim Shahzad's topic in Algorithms, Data Structures and Class Design
I have it this way (only for VCL). In the manner of Attila Kovacs. I only hide the main form by placing it off the screen. procedure NewForm(ATypeForms: TTypeForm); const Position = 200; var BasalFormClass: TBasalFormClass; LeftMainForm, TopMainForm: Integer; BasFrm: TBasalForm; begin ServeMainForm(LeftMainForm, TopMainForm); BasalFormClass := GetForm(ATypeForms); try BasFrm := BasalFormClass.CreateBasalForm(nil); BasFrm.Position := poDesigned; SupObjJson.ReadForm(BasFrm); BasFrm.ShowModal; finally if (oGlobVar.ActualForm = Application.MainForm) then begin if (LeftMainForm < 0) then begin LeftMainForm := Position; TopMainForm := Position; Application.MainForm.Left := LeftMainForm; Application.MainForm.Top := TopMainForm; end; end; end; end;- 20 replies
-
- form creation
- refactoring
-
(and 3 more)
Tagged with:
-
I can't move on with my problem. So I adjusted one unit as part of the relaxation. I used automatic text formatting I inserted blank lines to increase readability I did not deal with unnecessary and missing begin-end pairs I personally use a 120-character line. I didn't apply it here. In Word, it fits on one side. The number of rows has increased, which I do not consider to be a mistake. rumengut.pas
-
Such a small insignificant thing. Typical for me. I only meant formatting/refactoring published files.